Servos are not detected with arbotix-m controller board ??

98 views
Skip to first unread message

Abdulrahman Alshanoon

unread,
Oct 14, 2017, 6:00:40 PM10/14/17
to ros-by-example
Hi all


I am using Phantomx Pincher arm and arbotix-m board which is connected with five servos (dynamixel ax-12a).

I want to control the robotic arm based on colour object by using webcam, (object tracking) based on X-offset 

with the following codes, I could detect the object and publish it's position, I could see in the terminal the object's position. 


roslaunch rbx1_vision usb_cam.launch



roslaunch rbx1_vision camshift.launch



roslaunch rbx1_apps object_tracker.launch



rostopic echo /roi



My plan is to subscribe with the published topic /roi, in order to control the servo id 1, move left or right, and keep the detected object in the centre of view. 

I am following the ros-by-example book volume 1. I reached Tracking a Visual Target. The problem is, the book uses USB2Dynamixel controller, while I use arbotix-m controller board. When I run 

roslaunch rbx1_dynamixels dynamixels.launch


I get the following error, 

Is there another method to startup the servos, ???  

NOTE/ I could detect and move my servos by using arbotix_terminal and arbotix_gui


imr@IMR-PC:~$ roslaunch rbx1_dynamixels dynamixels.launch
... logging to /home/imr/.ros/log/965baddc-b12a-11e7-95bb-002219055f3a/roslaunch-IMR-PC-29047.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://localhost:49710/

SUMMARY
========

PARAMETERS
 * /dynamixel_manager/namespace: turtlebot_dynamix...
 * /dynamixel_manager/serial_ports/dynamixel_ax12/baud_rate: 115200
 * /dynamixel_manager/serial_ports/dynamixel_ax12/max_motor_id: 5
 * /dynamixel_manager/serial_ports/dynamixel_ax12/min_motor_id: 1
 * /dynamixel_manager/serial_ports/dynamixel_ax12/port_name: /dev/ttyUSB0
 * /dynamixel_manager/serial_ports/dynamixel_ax12/update_rate: 20
 * /head_pan_joint/controller/module: joint_position_co...
 * /head_pan_joint/controller/package: dynamixel_control...
 * /head_pan_joint/controller/type: JointPositionCont...
 * /head_pan_joint/joint_name: head_pan_joint
 * /head_pan_joint/joint_speed: 2.0
 * /head_pan_joint/motor/id: 1
 * /head_pan_joint/motor/init: 512
 * /head_pan_joint/motor/max: 1024
 * /head_pan_joint/motor/min: 0
 * /head_tilt_joint/controller/module: joint_position_co...
 * /head_tilt_joint/controller/package: dynamixel_control...
 * /head_tilt_joint/controller/type: JointPositionCont...
 * /head_tilt_joint/joint_name: head_tilt_joint
 * /head_tilt_joint/joint_speed: 2.0
 * /head_tilt_joint/motor/id: 2
 * /head_tilt_joint/motor/init: 512
 * /head_tilt_joint/motor/max: 800
 * /head_tilt_joint/motor/min: 300
 * /joints: ['head_pan_joint'...
 * /robot_description: <?xml version="1....
 * /robot_state_publisher/publish_frequency: 20.0
 * /rosdistro: indigo
 * /rosversion: 1.11.21
 * /use_sim_time: False

NODES
  /
    dynamixel_controller_spawner_ax12 (dynamixel_controllers/controller_spawner.py)
    dynamixel_joint_states_publisher (rbx1_dynamixels/dynamixel_joint_state_publisher.py)
    dynamixel_manager (dynamixel_controllers/controller_manager.py)
    odom_front_wheel_broadcaster (tf/static_transform_publisher)
    odom_left_wheel_broadcaster (tf/static_transform_publisher)
    odom_right_wheel_broadcaster (tf/static_transform_publisher)
    relax_all_servos (rbx1_dynamixels/relax_all_servos.py)
    robot_state_publisher (robot_state_publisher/state_publisher)

auto-starting new master
process[master]: started with pid [29062]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 965baddc-b12a-11e7-95bb-002219055f3a
process[rosout-1]: started with pid [29075]
started core service [/rosout]
process[robot_state_publisher-2]: started with pid [29087]
process[dynamixel_manager-3]: started with pid [29093]
process[dynamixel_controller_spawner_ax12-4]: started with pid [29095]
process[dynamixel_joint_states_publisher-5]: started with pid [29103]
process[relax_all_servos-6]: started with pid [29108]
process[odom_left_wheel_broadcaster-7]: started with pid [29109]
process[odom_right_wheel_broadcaster-8]: started with pid [29111]
process[odom_front_wheel_broadcaster-9]: started with pid [29120]
[INFO] [WallTime: 1508018214.945659] dynamixel_ax12 controller_spawner: waiting for controller_manager turtlebot_dynamixel_manager to startup in global namespace...
[INFO] [WallTime: 1508018215.013592] Starting Dynamixel Joint State Publisher at 20Hz
[INFO] [WallTime: 1508018215.774542] dynamixel_ax12: Pinging motor IDs 1 through 5...
[FATAL] [WallTime: 1508018216.189219] dynamixel_ax12: No motors found.
================================================================================REQUIRED process [dynamixel_manager-3] has died!
process has died [pid 29093, exit code 1, cmd /home/imr/catkin_ws/src/dynamixel_motor/dynamixel_controllers/nodes/controller_manager.py __name:=dynamixel_manager __log:=/home/imr/.ros/log/965baddc-b12a-11e7-95bb-002219055f3a/dynamixel_manager-3.log].
log file: /home/imr/.ros/log/965baddc-b12a-11e7-95bb-002219055f3a/dynamixel_manager-3*.log
Initiating shutdown!
================================================================================
[odom_front_wheel_broadcaster-9] killing on exit
[odom_right_wheel_broadcaster-8] killing on exit
[odom_left_wheel_broadcaster-7] killing on exit
[relax_all_servos-6] killing on exit
[dynamixel_controller_spawner_ax12-4] killing on exit
[dynamixel_manager-3] killing on exit
[robot_state_publisher-2] killing on exit
[dynamixel_joint_states_publisher-5] killing on exit
Traceback (most recent call last):
  File "/home/imr/catkin_ws/src/rbx1/rbx1_dynamixels/nodes/relax_all_servos.py", line 80, in <module>
    Relax()
  File "/home/imr/catkin_ws/src/rbx1/rbx1_dynamixels/nodes/relax_all_servos.py", line 47, in __init__
    rospy.wait_for_service(torque_service)  
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 159, in wait_for_service
    raise ROSInterruptException("rospy shutdown")
rospy.exceptions.ROSInterruptException: rospy shutdown
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Patrick Goebel

unread,
Nov 3, 2017, 9:54:23 AM11/3/17
to ros-by-...@googlegroups.com
Hi Abdulrahman,

I see from your later message that you solved your problem by switching to a USB2Dynamixel controller.  That's the solution I would have suggested also since I don't have any experience with the arbotix-m board but perhaps others have a solution using the arbotix-m.

--patrick

Abdulrahman Alshanoon

unread,
Nov 3, 2017, 10:06:44 AM11/3/17
to ros-by-...@googlegroups.com
Thanks for reply 

Could you please show me where the motion commands (that mention here http://www.pirobot.org/blog/0008/ ) are documented in which files. One more thing, I am wondering if there are publications that may show the mathematical model and vision model of your system. 

Thanks 

--
You received this message because you are subscribed to a topic in the Google Groups "ros-by-example" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ros-by-example/TBjIvUJPSXA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ros-by-example+unsubscribe@googlegroups.com.

Patrick Goebel

unread,
Nov 3, 2017, 11:10:50 AM11/3/17
to ros-by-...@googlegroups.com

Hi Abdulrahman,

That blog post was made before I started using ROS so all the math you see is all there is.  Also, I was using RoboRealm for vision at the time which is a Windows program you can find out more about at roborealm.com.

--patrick

Abdulrahman Alshanoon

unread,
Nov 3, 2017, 1:01:10 PM11/3/17
to ros-by-...@googlegroups.com
Thanks Mr Patrick

I am using visual head tracking rbx1 https://github.com/pirobot/rbx1 , I use ubuntu and ros indigo, it works fine with me, but I want to understand the mathematical model behind that. I checked all the files but I could't know what are the codes that responsible for motion commands.

Could you please help me with this ??

Thanks in advance  

Patrick Goebel

unread,
Nov 5, 2017, 9:12:16 AM11/5/17
to ros-by-...@googlegroups.com

Hi Abdulrahman,

The code you want to look at is in the head_tracker.py script under rbx1_dynamixels/nodes.   A description of how this node works can be found in ROS By Example Volume 1, Chapter 12.11.2.

--patrick

Reply all
Reply to author
Forward
0 new messages