Skip to main content

Documentation Index

Fetch the complete documentation index at: https://motorbridge.seeedstudio.com/llms.txt

Use this file to discover all available pages before exploring further.

RobStride Runtime Parameter Table

MotorBridge keeps the upper-level RobStride API shape shared across RS models. The active runtime parameter table is the protocol section 4 “read/write single parameter” list in the 0x7005..0x702E range. Older/manual 0x2000 and 0x3000 function-code fields are not split into per-model high-level tables in v0.2.9.

Runtime Rules

  • Runtime parameter read/write uses communication type 17/18 plus the parameter index below.
  • Parameter index is little-endian in byte[0..2]; the typed value is little-endian in byte[4..8].
  • Parameters that must survive power-cycle require type 22 save after writing.
  • RobStride set_zero_position() keeps the same upper-level API but now writes zero_sta(0x7029)=1 behind the scenes so zeroed motors use -pi..pi. Use store_parameters / --store 1 to persist it.
  • Type 22 save uses payload 01 02 03 04 05 06 07 08.

Communication Types Used

TypeNamePurpose
6SET_ZERO_POSITIONSet current mechanical position as zero
17READ_PARAMETERRead one parameter by index
18WRITE_PARAMETERWrite one parameter by index
22SAVE_PARAMETERSPersist parameter changes

Section 4 Parameter List

IndexNameTypeBytesUnitRange / DefaultR/WNotes
0x7005run_modeu81enum0 MIT, 1 PP, 2 velocity, 3 current, 5 CSPW/RSelects the active RobStride control mode before mode-specific command parameters are used.
0x7006iq_reff324A-43..43, current-mode targetW/REffective when run_mode=3 current mode. Positive/negative direction follows motor firmware convention.
0x700Aspd_reff324rad/s-20..20, velocity-mode targetW/REffective when run_mode=2 velocity mode.
0x700Blimit_torquef324Nm0..60W/RTorque clamp used by firmware. Keep within the motor/manual limit.
0x7010cur_kpf324gaindefault 0.17W/RCurrent-loop proportional gain. Tune carefully; bad values can destabilize current control.
0x7011cur_kif324gaindefault 0.012W/RCurrent-loop integral gain. Tune carefully.
0x7014cur_filter_gainf324ratio0..1, default 0.1W/RCurrent filter coefficient.
0x7016loc_reff324radposition targetW/RPosition command used by PP/CSP-style position modes.
0x7017limit_spdf324rad/s0..20W/RPosition/CSP speed limit. MotorBridge POS_VEL path writes this before loc_ref.
0x7018limit_curf324A0..43W/RCurrent limit for velocity/position modes.
0x7019mechPosf324radread-onlyRLoad-side counted mechanical position. After MotorBridge RobStride zero + store, startup range is intended to be -pi..pi via zero_sta=1.
0x701Aiqff324Aread-onlyRFiltered q-axis current feedback.
0x701BmechVelf324rad/sread-onlyRLoad-side velocity feedback.
0x701CVBUSf324Vread-onlyRDC bus voltage.
0x701Eloc_kpf324gaindefault 60W/RPosition-loop proportional gain.
0x701Fspd_kpf324gaindefault 6W/RSpeed-loop proportional gain.
0x7020spd_kif324gaindefault 0.02W/RSpeed-loop integral gain.
0x7021spd_filter_gainf324ratiodefault 0.1W/RSpeed filter coefficient.
0x7022acc_radf324rad/s^2default 20W/RVelocity-mode acceleration limit.
0x7024vel_maxf324rad/sdefault 10W/RPP mode maximum velocity.
0x7025acc_setf324rad/s^2default 10W/RPP mode acceleration. If deceleration split is enabled in firmware, dcc_set(0x702E) may control deceleration separately.
0x7026EPScan_timeu162ms stepdefault 1; 1=10 ms, each +1 adds 5 msWActive-report interval setting. Only matters when active report is enabled by communication type 24.
0x7028canTimeoutu324firmware ticksdefault 0; 20000=1 sWCAN timeout threshold. 0 disables/uses default firmware behavior depending on firmware. Save if persistence is required.
0x7029zero_stau81enumdefault 0; 0=0..2pi, 1=-pi..piWMotorBridge RobStride set_zero_position() writes 1 automatically. Use type 22 save / --store 1 for power-cycle persistence.
0x702Adamperu81switchdefault 0; 1 cancels power-off back-drive dampingW/RControls the shutdown/back-drive damping behavior described by the RobStride manual. Save if persistence is required.
0x702Badd_offsetf324raddefault 0W/RAdds an offset to the current zero. Example: after zeroing at physical 1 rad, setting add_offset=1 makes that physical position report as 1 rad after reboot while zero is shifted by 1 rad.
0x702Calveolous_openu81switchdefault 0; 1 enables cogging compensationW/REnable after cogging calibration has succeeded. The manual says calibration should be done unloaded and typically with iq_test=1.
0x702Diq_testu81switchdefault 0; 1 enables extended initialization/calibration behaviorW/RUsed for motor initialization calibration and as a preparation step for cogging calibration. Save/reboot behavior depends on firmware workflow.
0x702Edcc_setf324rad/s^2default 10W/RPP-mode deceleration. The manual notes this is used when PP acceleration/deceleration are separated by firmware configuration.

Persistence and Zeroing Notes

  • W/R or W only means the parameter can be written over CAN; it does not guarantee persistence by itself. Use motorbridge-cli run --vendor robstride ... --mode save when a parameter value must survive power cycling. --store 1 is used by the zeroing flow.
  • For RobStride zeroing, MotorBridge keeps the same upper-level command as other vendors. Internally it sends type 6 and then writes zero_sta(0x7029)=1; with --store 1, type 22 saves the -pi..pi startup behavior.
  • Use radians for all position quantities and radians per second / radians per second squared for velocity and acceleration.

Examples

Read mechPos:
motorbridge-cli robstride-read-param \
  --channel can0 --model rs-06 --motor-id 2 --feedback-id 0xFD \
  --param-id 0x7019 --type f32
Write damper=1 and save:
motorbridge-cli robstride-write-param \
  --channel can0 --model rs-06 --motor-id 2 --feedback-id 0xFD \
  --param-id 0x702A --type u8 --value 1 --verify 1

motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-06 --motor-id 2 --feedback-id 0xFD \
  --mode save

RobStride Zero Calibration

Use the unified Python package CLI. The current CLI uses subcommands, so RobStride control commands must start with motorbridge-cli run. Before writing zero:
  • Use a verified adapter path, preferably PCAN or a tested CANable/candleLight SocketCAN interface.
  • Scan first and confirm the target motor-id and feedback-id.
  • Move the joint by hand to the real mechanical zero pose.
  • Do not run this command while the mechanism can collide or fall.
Scan and confirm the motor is online:
motorbridge-cli scan \
  --vendor robstride --channel can0 \
  --start-id 1 --end-id 127 \
  --feedback-ids 0xFD,0xFF,0xFE,0x00,0xAA
Read state once:
motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode enable --loop 1 --dt-ms 100
Set the current mechanical pose as zero. --zero-exp 1 is required for RobStride; without it, MotorBridge prints a warning and does not send the zeroing CAN frame. --store 1 saves the result when the firmware accepts it.
motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode set-zero --zero-exp 1 --store 1 \
  --loop 1 --dt-ms 100
Verify by reading state again:
motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode enable --loop 3 --dt-ms 100
Then test a small move and return to zero:
motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode pos-vel --pos 1.5 --vlim 1.0 --loc-kp 5.0 \
  --loop 1 --dt-ms 20

motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode pos-vel --pos -1.5 --vlim 1.0 --loc-kp 5.0 \
  --loop 1 --dt-ms 20
For RobStride, MotorBridge also writes zero_sta=1 internally so the startup range is intended to be -pi..pi. Use the model that matches your motor for limits and logging; the examples above use rs-00.