mix bb_so101.upgrade (bb_so101 v0.3.0)

Copy Markdown View Source

Brings joint limits back inside what the servos can actually do

Robots generated before this version declare joint limits the hardware cannot meet: 333 or 360 degree_per_second, and 2160 degree_per_square_second. An STS3215 tops out near 300°/s, and clamps its acceleration register at 439.5°/s² however much more is written.

That is no longer harmless. BB.Servo.Feetech.Actuator reads the acceleration register back at startup and refuses to run when the servo kept something other than what it was given, so an arm generated by an older installer will not boot.

This rewrites velocity and acceleration in the limit block of every joint driven by a BB.Servo.Feetech.Actuator, leaving anything already inside the hardware's reach alone. Joints driven by something else are not touched, so a robot mixing servo families keeps the rest of its limits.

Only degree_per_second and degree_per_square_second are rewritten, which is what the installer emits. A limit written in other units is reported rather than converted.