ROS2 driver for the Roboteq SDC21xx, HDC24xx family of motor controllers in a differential-drive configuration. Initially developed for SDC21xx and HDC24xx, but could work with other roboteq dual-channel motor drivers.
Subscribes to cmd_vel, publishes to odom
Does not require any MicroBasic script to operate.
Clone to src directory of ros2 workspace, then colcon build
Requires serial package, which is not available as deb in ROS2. If not already installed, install ros2 branch of serial:
Get the code:
git clone -b ros2 https://github.com/SunnyApp-Robotics/serial.git
Build:
make
Install:
make install
Sample launch files in roboteq_ros2_driver/launch, or run ros2 run roboteq_ros2_driver roboteq_ros2_driver
This driver assumes right motor is connected to channel 1 (M1) of motor controller, and left motor is connected to channel 2 (M2). It also assumes a positive speed command will result in forward motion of each motor. Best to test motor directions using the roboteq utility software.
- Initial ROS2 release with motor commands and odometry stream
- Implement transform broadcasting with tf2
- Add roboteq/voltage, roboteq/current, roboteq/energy, and roboteq/temperature publishers
- Make topic names and frames configuration parameters configurable at runtime.
- Make robot configuration parameters configurable at runtime.
- Make motor controller device configuration parameters configurable at runtime.
- Make miscellaneous motor controller configuration parameters configurable at runtime.
- Implement dynamically enabled self-test mode to verify correct motor power and encoder connections and configuration.
- Chad Attermann - Initial work - Ecos Technologies
- Chase Devitt - ROS2 Migration