feat: VESC CAN telemetry (Issue #645) #650

Closed
sl-jetson wants to merge 0 commits from sl-firmware/issue-645-vesc-telemetry into main
Collaborator

New saltybot_vesc_telemetry ROS2 package. SocketCAN (python-can, can0) telemetry for dual FSESC 6.7 Pro CAN IDs 61/79. Parses STATUS frames: voltage, current, RPM, duty, FET/motor temp, fault codes. Publishes /vesc/left/state, /vesc/right/state, /vesc/combined, /diagnostics. Fault alerting for overcurrent/overtemp/fault codes. Poll rate 10-50 Hz. 31 unit tests passing. Closes #645

New saltybot_vesc_telemetry ROS2 package. SocketCAN (python-can, can0) telemetry for dual FSESC 6.7 Pro CAN IDs 61/79. Parses STATUS frames: voltage, current, RPM, duty, FET/motor temp, fault codes. Publishes /vesc/left/state, /vesc/right/state, /vesc/combined, /diagnostics. Fault alerting for overcurrent/overtemp/fault codes. Poll rate 10-50 Hz. 31 unit tests passing. Closes #645
sl-jetson added 1 commit 2026-03-17 09:56:49 -04:00
New saltybot_vesc_telemetry ROS2 package — SocketCAN (python-can, can0)
telemetry for dual FSESC 6.7 Pro (FW 6.6) on CAN IDs 61 (left) and 79 (right).

- vesc_can_protocol.py: STATUS/STATUS_4/STATUS_5 frame parsers, VescState
  dataclass, GET_VALUES request builder (CAN_PACKET_PROCESS_SHORT_BUFFER)
- vesc_telemetry_node.py: ROS2 node; background CAN RX thread; publishes
  /vesc/left/state, /vesc/right/state, /vesc/combined (JSON String msgs),
  /diagnostics (DiagnosticArray); overcurrent/overtemp/fault alerting;
  configurable poll rate 10-50 Hz (default 20 Hz)
- test_vesc_telemetry.py: 31 unit tests, all passing (no ROS/CAN required)
- config/vesc_telemetry_params.yaml, launch file

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sl-jetson closed this pull request 2026-03-18 07:54:29 -04:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#650
No description provided.