ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I've used differential_drive in Indigo and Jade. You cannot install via rpm but can get the source from GitHub and add to your catkin_src. The original code was for Groovy, but the author has incorporated some changes I supplied to make the package more ROS-up-to-date and remove compile warnings for Hydro and above. (https://github.com/jfstepha/differential-drive)

That said, I no longer use differential_drive for these reasons:

  • I intended to use differential_drive together with rosserial_python to talk to an Arduino-based robot controller. However, rosserial proved unreliable on Arduino-class devices with only 2kb RAM, so I had to abandon that approach.

  • I shifted to using ros_arduino_bridge, which incorporates the functionality that differential_drive supplies, so I no longer needed it.

If you decide to use differential_drive, a few observations:

  • differential_drive incorporates a PID controller in Python to send motor controls via ROS messages. However, the author of differential_drive doesn't recommend that method any more. (From email communication.) He recommends instead putting the PID controller closer to the motor control hardware.

  • differential_drive mixes units at times. For example, motor commands sent by the node are in m/s, while odometry returned from the motor control system is in encoder ticks per second.