A ROS 2 Humble python driver for a Jetson connected RoboClaw rover
Specifically designed for:
- one RoboClaw for the left wheel pair
- one RoboClaw for the right wheel pair
- one RoboClaw for two independent bucket drums
- subscribes to
/cmd_velfor skid steer drive commands - subscribes to
/bucket_front/cmd_veland/bucket_back/cmd_velfor the bucket drums - publishes
/odom - publishes
/joint_states - publishes
/carve_rc/statusasdiagnostic_msgs/msg/DiagnosticArray - provides
/stop_motorsasstd_srvs/srv/Trigger - stops motors on command timeout and on shutdown
- probes configured controllers at startup and after reconnects
- can optionally publish
odom -> base_linkTF
python3 configure.pysource /opt/ros/humble/setup.bash
colcon build --base-paths ~/carve_rc
source install/setup.bashsource /opt/ros/humble/setup.bash
source install/setup.bash
ros2 launch carve_rc carve_rc.launch.pyEnable TF publishing if needed:
ros2 launch carve_rc carve_rc.launch.py --ros-args -p publish_tf:=trueSubscriptions:
/cmd_vel(geometry_msgs/msg/Twist)/bucket_front/cmd_vel(std_msgs/msg/Float64)/bucket_back/cmd_vel(std_msgs/msg/Float64)
Publications:
/odom(nav_msgs/msg/Odometry)/joint_states(sensor_msgs/msg/JointState)/carve_rc/status(diagnostic_msgs/msg/DiagnosticArray)
Services:
/stop_motors(std_srvs/srv/Trigger)
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.2}, angular: {z: 0.0}}"
ros2 topic pub /bucket_front/cmd_vel std_msgs/msg/Float64 "{data: 1.0}"
ros2 topic pub /bucket_back/cmd_vel std_msgs/msg/Float64 "{data: 1.0}"
ros2 service call /stop_motors std_srvs/srv/Trigger "{}"