feat: Orin CAN bus bridge — CANable 2.0 (Issue #674) #675
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-jetson/issue-674-can-bus-orin"
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
Test plan
Generated with Claude Code
Adds slcan setup script and saltybot_can_bridge ROS2 package implementing full CAN bus integration between the Orin and the Mamba motor controller / VESC motor controllers via a CANable 2.0 USB dongle (slcan interface). - jetson/scripts/setup_can.sh: slcand-based bring-up/tear-down for slcan0 at 500 kbps with error handling (already up, device missing, retry) - saltybot_can_bridge/mamba_protocol.py: CAN message ID constants and encode/decode helpers for velocity, mode, e-stop, IMU, battery, VESC state - saltybot_can_bridge/can_bridge_node.py: ROS2 node subscribing to /cmd_vel and /estop, publishing /can/imu, /can/battery, /can/vesc/{left,right}/state and /can/connection_status; background reader thread, watchdog zero-vel, auto-reconnect every 5 s on CAN error - config/can_bridge_params.yaml: default params (slcan0, VESC IDs 56/68, Mamba ID 1, 0.5 s command timeout) - test/test_can_bridge.py: 30 unit tests covering encode/decode round-trips and edge cases — all pass without ROS2 or CAN hardware Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>8bc2f9eeacto5e82878083