feat: VESC CAN odometry (Issue #646) #649
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-perception/issue-646-vesc-odometry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implements differential drive odometry from dual VESC CAN motors (CAN IDs 61/79) for Nav2.
New:
diff_drive_odom.pyinvert_rightflag for physically-mirrored motor mountingNew:
vesc_odometry_bridge.py(replaces single-motor version)VESCCANOdometryNodesubscribes to/vesc/can_61/stateand/vesc/can_79/state(std_msgs/String JSON)/odom(nav_msgs/Odometry) for Nav2 / slam_toolbox/saltybot/wheel_odomfor saltybot_pose_fusion EKFodom → base_linkNew:
config/vesc_odometry_params.yamlwheel_radius,wheel_separation,motor_poles,invert_rightUpdated:
pose_fusion_node.pywheel_odom_topicsubscriber → feeds EKF viaupdate_vo_velocitysigma_wheel_vel_m_s,sigma_wheel_omega_r_sTests:
test/test_vesc_odometry.pyTest plan
pytest jetson/ros2_ws/src/saltybot_nav2_slam/test/test_vesc_odometry.py -vodometry_bridge.launch.pyand verify/odompublishes at 50Hz/saltybot/wheel_odomreceived bypose_fusionnoderos2 run tf2_ros tf2_echo odom base_linkconfirms TF🤖 Generated with Claude Code
eb3c9d40cfto06101371ff