ClamArm using Dynamixel Motors: No Motors Found
For those of you who are brave enough to try to help me solve this problem, I will grant you 3 wishes. Here we go.
I'm using an arm called the ClamArm
Seen here
http://www.roadnarrows-store.com/clam-arm-servo-kit.html
I just got done building the arm. All motors are powered up. I plugged in both Dynamixel2USB cables from the arm into my computer's USB ports and I run the lowlevel launch file to connect to the arm. (7 motors on the arm total, 3 motors to 1 USB, 4 motors to the other).
Seen here (lowlevel.launch)
<!-- -*- mode: XML -*- -->
<launch>
<!-- debug capability -->
<arg name="debug" default="false" />
<arg unless="$(arg debug)" name="launch_prefix" value="" />
<arg if="$(arg debug)" name="launch_prefix" value="gdb --ex run --args" />
<!-- chmod the usb ports -->
<node name="change_usb_port_permissions" pkg="clam_bringup" type="change_usb_port_permissions.sh" />
<!-- Startup the arm controller, dynamixel manager, hardware interface, etc -->
<include file="$(find clam_controller)/launch/clam_controller.launch">
<arg name="debug" value="$(arg debug)" />
</include>
<!-- Send robot XML description to param server -->
<param name="robot_description" command="cat $(find clam_description)/urdf/clam.urdf" />
<!-- Publish the robot state -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
</launch>
I get this error. Apparently, no motors are found!
setting /run_id to 389151fa-13fb-11e3-ae2c-20c9d0bd73cd
process[rosout-1]: started with pid [4772]
started core service [/rosout]
process[change_usb_port_permissions-2]: started with pid [4784]
process[dynamixel_manager-3]: started with pid [4790]
[ INFO] [1378145546.539716442]: port_rs485: Pinging motor IDs 0 through 7...
[change_usb_port_permissions-2] process has finished cleanly
log file: /home/lucid/.ros/log/389151fa-13fb-11e3-ae2c-20c9d0bd73cd/change_usb_port_permissions-2*.log
process[clam_controller_spawner_ttl-4]: started with pid [4820]
process[clam_controller_spawner_rs485-5]: started with pid [4821]
process[arm_trajectory_controller_spawner-6]: started with pid [4824]
process[joint_state_aggregator-7]: started with pid [4827]
**[ WARN] [1378145546.941467380]: port_rs485: No motors found.**
process[clam_gripper_controller-8]: started with pid [4854]
[ INFO] [1378145547.037642567]: ClamGripperCommand action server ready
[dynamixel_manager-3] process has died [pid 4790, exit code -11, cmd /home/lucid/ros/clam/devel/lib/dynamixel_hardware_interface/controller_manager __name:=dynamixel_manager __log:=/home/lucid/.ros/log/389151fa-13fb-11e3-ae2c-20c9d0bd73cd/dynamixel_manager-3.log].
log file: /home/lucid/.ros/log/389151fa-13fb-11e3-ae2c-20c9d0bd73cd/dynamixel_manager-3*.log
[INFO] [WallTime: 1378145547.097725] clam_controller_spawner_ttl: waiting for controller_manager clam_controller_manager to startup in / namespace...
process[robot_state_publisher-9]: started with pid [4887]
[INFO] [WallTime: 1378145547.140146] clam_controller_spawner_rs485: waiting for controller_manager clam_controller_manager to startup in / namespace...
[INFO] [WallTime: 1378145547.173755] arm_trajectory_controller_spawner: waiting for controller_manager clam_controller_manager to startup in / namespace...
No Motors found on port_rs485. I look at the launch file and see that it has an embedded launch file called clam_controller.launch that is actually responsible for connecting to the motors.
Seen here (clam_controller.launch)
<!-- -*- mode: XML -*- -->
<launch>
<!-- Debug Info -->
<arg name="debug" default="false" />
<arg unless="$(arg debug)" name="launch_prefix" value="" />
<arg if="$(arg debug)" name="launch_prefix" value="gdb --ex run --args" />
<!-- Start the Dynamixel motor manager to control all clam servos -->
<node name="dynamixel_manager" pkg="dynamixel_hardware_interface" type="controller_manager"
launch-prefix="$(arg launch_prefix)" output="screen" >
<!-- Load all the servo properties -->
<rosparam file="$(find clam_controller)/config/dynamixel_ports.yaml" command="load"/>
</node>
<!-- Load joint controller configuration from YAML file to parameter server -->
<rosparam file="$(find clam_controller)/config/clam_controller_configuration.yaml" command="load"/>
<!-- Start all ClamArm ...
Sorry for the off-topic comment but I'm building the clamarm and the road narrows kit doesn't exist anymore:
http://www.roadnarrows-store.com/clam...
I think I have found all the servos but am unsure on the brackets - if you have a chance could you let me know what you ordered?
Hey there, I'm the creator the ClamArm website. I don't have time to maintain the project anymore, but if any of you guys figured out problems or made improvements, I'd be happy to improve the documentation.