Skip to content

Convert the RobStride no-load speeds from rpm correctly - #21

Merged
T-K-233 merged 2 commits into
mainfrom
fix/robstride-no-load-speed
Oct 2, 2026
Merged

T-K-233 merged 2 commits into
mainfrom
fix/robstride-no-load-speed

Conversation

@T-K-233

@T-K-233 T-K-233 commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Summary

velocity_limit in lite_description/actuators/robstride.py is the no-load output speed of each RobStride datasheet, which the datasheet gives in rpm. Six of the seven tables divided the rpm by 2π instead of multiplying it by 2π/60, so they were 60/(4π²) = 1.52× too high:

Model Datasheet no-load Was (rad/s) Is (rad/s)
RS00 315 rpm 32.987 32.99 (rounded only)
RS01 315 rpm 50.13 32.99
RS02 410 rpm 65.25 42.94
RS03 200 rpm 31.83 20.94
RS04 200 rpm 31.83 20.94
RS05 480 rpm 76.39 50.27
RS06 480 rpm 76.39 50.27

The rpm values are the 空载转速 (no-load speed) of the RobStride user manuals (使用说明书 251014). The peak torques in the tables match the same manuals.

Each velocity_limit is the converted value, rounded to 2 decimals. The datasheet rpm is in the comment of each line.

Impact

A consumer that models the torque-speed curve, such as the DC-motor actuator of lite-motion-tracking, gave these motors 1.52× their real speed range. It also exported that limit to the deployment as joint_velocity_limit.

Not changed

The Damiao tables in damiao.py may have the same error: each value × 2π is a round rpm figure (J4340P 100, J6248P 60, JH11-51 60, J4310 450). I had no Damiao datasheet to check against, so they stay as they are. sito.py (TA40-101: 4.19 rad/s = 40 rpm) looks correctly converted.

Test plan

  • pytest: 1590 passed, 36 skipped
  • Every RobStride velocity_limit equals the datasheet rpm × 2π/60, rounded to 2 decimals

🤖 Generated with Claude Code

T-K-233 and others added 2 commits October 1, 2026 17:47
velocity_limit is the no-load output speed of each datasheet, which gives
it in rpm. Six of the seven tables divided the rpm by 2*pi instead of
multiplying it by 2*pi/60, so they were 60/(4*pi^2) = 1.52 times too high:

    model   datasheet   was (rad/s)   is (rad/s)
    RS01    315 rpm     50.13         32.99
    RS02    410 rpm     65.25         42.94
    RS03    200 rpm     31.83         20.94
    RS04    200 rpm     31.83         20.94
    RS05    480 rpm     76.39         50.27
    RS06    480 rpm     76.39         50.27

RS00 (315 rpm, 32.99 rad/s) was right and keeps its value. The rpm
figures are the 空载转速 of the RobStride user manuals (使用说明书 251014),
and every peak torque in the tables matches the same manuals.

Each value is now written as rpm * RPM_TO_RAD_PER_S, so the datasheet
number and its conversion are both in the file.

A consumer that models the torque-speed curve, such as the DC-motor
actuator of lite-motion-tracking, gave these motors 1.52 times their real
speed range, and it exported that limit to the deployment.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Each velocity_limit is now the converted value, rounded to 2 decimals, with
the datasheet rpm in its comment. RS00 goes from 32.987 to 32.99 rad/s.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@T-K-233
T-K-233 merged commit 9a03314 into main Oct 2, 2026
2 checks passed
@T-K-233
T-K-233 deleted the fix/robstride-no-load-speed branch October 2, 2026 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant