Roboclaw is an extensible series of Roboclaw nodes for ROS
- The base node "roboclaw_node" supports up to 8 Roboclaw controllers using packet serial mode
- Drive systems and odometry are decoupled from the base Roboclaw node
- A differential drive node is supported out of the box
- Written in roscpp for effecient memory usage and performance
- ROS Kinetic/Lunar/Melodic
Param | Type | Description |
---|---|---|
serial_port | string | Path to the serial port to use |
baudrate | int | Baudrate of the serial port |
roboclaws | int | Number of Roboclaw controllers in packet serial mode |
Action | Topic | Type |
---|---|---|
publish | motor_enc_steps | roboclaw/RoboclawEncoderSteps |
subscribe | motor_cmd_vel | roboclaw/RoboclawMotorVelocity |
- When using one Roboclaw controller, configure it in packet serial mode with address 0x80. This will be motor index 0 in RoboclawEncoderSteps and RoboclawMotorVelocity.
- When using more than one Roboclaw controller, configure them in packet serial mode with 0x80 being motor index 0, 0x81 being motor index 1, and so on.
Param | Type | Description |
---|---|---|
steps_per_meter | string | Number of encoder steps per meter |
base_width | int | Diameter of the robots base from the center of each wheel |
swap_motors | bool | Swap motor1 with motor2 |
invert_motor_1 | bool | Invert drive and odometry for motor1 |
invert_motor_2 | bool | Invert drive and odometry for motor2 |
Action | Topic | Type |
---|---|---|
publish | odom | Odometry |
subscribe | cmd_vel | Twist |
- Support for the NASA JPL Open Source Rover's drive system
- Exposing more of the Roboclaw's functionality via messages / services