Remote monitor: all CAN sensors visible (VESC telemetry + IMU + balance state) #681

Closed
opened 2026-03-17 22:34:59 -04:00 by seb · 0 comments
Owner

Goal

Remote monitor at port 9091 should display all live sensor data from CAN bus and FC.

Required data sources

VESC telemetry (via CAN → vcan0 → saltybot_vesc_driver)

  • Left/right motor RPM, current (A), duty cycle, temperature
  • Battery voltage, total current draw
  • Fault codes
  • Publish on /saltybot/vesc/left and /saltybot/vesc/right (VescStatus msg)

FC telemetry (via UART bridge → saltybot_bridge)

  • Pitch, roll, yaw (degrees)
  • Motor command output (-1000..+1000)
  • Balance state (DISARMED/ARMED/ESTOP)
  • IMU calibration status
  • Publish on /saltybot/imu and /saltybot/balance_state

Remote monitor panels needed

  • ATTITUDE — live R/P/Y with 3D robot tilt visualization (Three.js)
  • MOTORS — L/R RPM, current, temp per VESC
  • BATTERY — voltage, current, estimated SoC
  • BALANCE — state, motor cmd, PID error, integral
  • IMU STATUS — calibrated/uncalibrated badge, recal button
  • SYSTEM — node health, last update timestamps

Dependencies

  • Fix UART bridge UnboundLocalError bug (lines variable scope)
  • VESC driver needs to publish telemetry topics (currently only subscribes to /cmd_vel)
  • saltybot_vesc_driver: add CAN RX handler for VESC status frames (0x900+id group), publish VescStatus

Notes

  • Remote monitor uses WebSocket on port 9091
  • vcan0 + CAN bridge (/tmp/can_bridge.py) must be running
  • ttyACM0 = CANable 2.0, ttyACM1 = Mamba CDC
## Goal Remote monitor at port 9091 should display all live sensor data from CAN bus and FC. ## Required data sources ### VESC telemetry (via CAN → vcan0 → saltybot_vesc_driver) - Left/right motor RPM, current (A), duty cycle, temperature - Battery voltage, total current draw - Fault codes - Publish on `/saltybot/vesc/left` and `/saltybot/vesc/right` (VescStatus msg) ### FC telemetry (via UART bridge → saltybot_bridge) - Pitch, roll, yaw (degrees) - Motor command output (-1000..+1000) - Balance state (DISARMED/ARMED/ESTOP) - IMU calibration status - Publish on `/saltybot/imu` and `/saltybot/balance_state` ### Remote monitor panels needed - **ATTITUDE** — live R/P/Y with 3D robot tilt visualization (Three.js) - **MOTORS** — L/R RPM, current, temp per VESC - **BATTERY** — voltage, current, estimated SoC - **BALANCE** — state, motor cmd, PID error, integral - **IMU STATUS** — calibrated/uncalibrated badge, recal button - **SYSTEM** — node health, last update timestamps ## Dependencies - Fix UART bridge `UnboundLocalError` bug (lines variable scope) - VESC driver needs to publish telemetry topics (currently only subscribes to /cmd_vel) - saltybot_vesc_driver: add CAN RX handler for VESC status frames (0x900+id group), publish VescStatus ## Notes - Remote monitor uses WebSocket on port 9091 - vcan0 + CAN bridge (/tmp/can_bridge.py) must be running - ttyACM0 = CANable 2.0, ttyACM1 = Mamba CDC
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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