Skip to main content

Channel Compatibility (PCAN + slcan + Damiao Serial Bridge)

  • Linux SocketCAN uses interface names directly: can0, can1, slcan0.
  • For USB-serial CAN adapters, bring up slcan0 first: sudo slcand -o -c -s8 /dev/ttyUSB0 slcan0 && sudo ip link set slcan0 up.
  • Damiao-only serial bridge transport is also available in CLI (--transport dm-serial --serial-port /dev/ttyACM0 --serial-baud 921600).
  • Full Damiao serial-bridge interface list and command patterns are documented in motor_cli/README.md (section 3.6 in motor_cli/README.zh-CN.md).
  • On Linux SocketCAN, do not append bitrate in --channel (for example can0@1000000 is invalid).
  • On Windows (PCAN backend), can0/can1 map to PCAN_USBBUS1/2; optional @bitrate suffix is supported.
ROS2 bridge for motorbridge using Python (rclpy) + existing motorbridge Python SDK bindings.

Features

  • Subscribe command topic and execute motor commands
  • Publish motor state periodically
  • Expose operational commands via same command topic:
    • scan
    • set_id
    • verify

Topics

  • Subscribed: /motorbridge/cmd (std_msgs/String, JSON payload)
  • Published:
    • /motorbridge/state (std_msgs/String, JSON payload)
    • /motorbridge/event (std_msgs/String, JSON payload)

Command JSON

Control:
Calibration:

Run

Prerequisites:
  • ROS2 installed (rclpy, std_msgs)
  • motorbridge Python package importable
From repo root:

Publish command examples

Notes

  • continuous=true means command is resent at each timer tick (--dt-ms).
  • enable/disable/scan/set_id/verify are one-shot operations.