From d603ea44f3a94f029c498a451399c4e081828f62 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Thu, 1 Oct 2026 17:47:13 -0700 Subject: [PATCH 1/2] Convert the RobStride no-load speeds from rpm correctly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- lite_description/actuators/robstride.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lite_description/actuators/robstride.py b/lite_description/actuators/robstride.py index aff41a4..ee5e040 100644 --- a/lite_description/actuators/robstride.py +++ b/lite_description/actuators/robstride.py @@ -1,7 +1,13 @@ +from math import pi + +# velocity_limit is the no-load output speed of the RobStride datasheet, which gives it in +# rpm. Each value converts it in place, as rpm * 2 * pi / 60. effort_limit is the peak +# load of the same datasheet. +RPM_TO_RAD_PER_S = 2 * pi / 60 # https://robstride.com/products/robStride00 ROBSTRIDE_00_ACTUATOR_PARAMS = { - "velocity_limit" : 32.987, # rad/s + "velocity_limit" : 315 * RPM_TO_RAD_PER_S, # rad/s, 315 rpm "effort_limit" : 14.0, # Nm "armature" : 0.002, # kgm^2 "friction_loss" : 0.1, # Nm @@ -11,7 +17,7 @@ # https://robstride.com/products/robStride01 ROBSTRIDE_01_ACTUATOR_PARAMS = { - "velocity_limit" : 50.13, # rad/s + "velocity_limit" : 315 * RPM_TO_RAD_PER_S, # rad/s, 315 rpm "effort_limit" : 17.0, # Nm "armature" : 0.005, # kgm^2 "friction_loss" : 0.1, # Nm @@ -21,7 +27,7 @@ # https://robstride.com/products/robStride02 ROBSTRIDE_02_ACTUATOR_PARAMS = { - "velocity_limit" : 65.25, # rad/s + "velocity_limit" : 410 * RPM_TO_RAD_PER_S, # rad/s, 410 rpm "effort_limit" : 17.0, # Nm "armature" : 0.005, # kgm^2 "friction_loss" : 0.1, # Nm @@ -31,7 +37,7 @@ # https://robstride.com/products/robStride03 ROBSTRIDE_03_ACTUATOR_PARAMS = { - "velocity_limit" : 31.83, # rad/s + "velocity_limit" : 200 * RPM_TO_RAD_PER_S, # rad/s, 200 rpm "effort_limit" : 60.0, # Nm "armature" : 0.01, # kgm^2 "friction_loss" : 0.1, # Nm @@ -41,7 +47,7 @@ # https://robstride.com/products/robStride04 ROBSTRIDE_04_ACTUATOR_PARAMS = { - "velocity_limit" : 31.83, # rad/s + "velocity_limit" : 200 * RPM_TO_RAD_PER_S, # rad/s, 200 rpm "effort_limit" : 120.0, # Nm "armature" : 0.016, # kgm^2 "friction_loss" : 0.1, # Nm @@ -51,7 +57,7 @@ # https://robstride.com/products/robStride05 ROBSTRIDE_05_ACTUATOR_PARAMS = { - "velocity_limit" : 76.39, # rad/s + "velocity_limit" : 480 * RPM_TO_RAD_PER_S, # rad/s, 480 rpm "effort_limit" : 5.5, # Nm "armature" : 0.001, # kgm^2 "friction_loss" : 0.1, # Nm @@ -61,7 +67,7 @@ # https://robstride.com/products/robStride06 ROBSTRIDE_06_ACTUATOR_PARAMS = { - "velocity_limit" : 76.39, # rad/s + "velocity_limit" : 480 * RPM_TO_RAD_PER_S, # rad/s, 480 rpm "effort_limit" : 36.0, # Nm "armature" : 0.008, # kgm^2 "friction_loss" : 0.1, # Nm From 015d0886105690b17ff6e7ccd2ba2c271afafc2d Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Thu, 1 Oct 2026 18:09:11 -0700 Subject: [PATCH 2/2] Write the RobStride no-load speeds as rad/s literals 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) --- lite_description/actuators/robstride.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/lite_description/actuators/robstride.py b/lite_description/actuators/robstride.py index ee5e040..3b61960 100644 --- a/lite_description/actuators/robstride.py +++ b/lite_description/actuators/robstride.py @@ -1,13 +1,7 @@ -from math import pi - -# velocity_limit is the no-load output speed of the RobStride datasheet, which gives it in -# rpm. Each value converts it in place, as rpm * 2 * pi / 60. effort_limit is the peak -# load of the same datasheet. -RPM_TO_RAD_PER_S = 2 * pi / 60 # https://robstride.com/products/robStride00 ROBSTRIDE_00_ACTUATOR_PARAMS = { - "velocity_limit" : 315 * RPM_TO_RAD_PER_S, # rad/s, 315 rpm + "velocity_limit" : 32.99, # rad/s, 315 rpm no-load "effort_limit" : 14.0, # Nm "armature" : 0.002, # kgm^2 "friction_loss" : 0.1, # Nm @@ -17,7 +11,7 @@ # https://robstride.com/products/robStride01 ROBSTRIDE_01_ACTUATOR_PARAMS = { - "velocity_limit" : 315 * RPM_TO_RAD_PER_S, # rad/s, 315 rpm + "velocity_limit" : 32.99, # rad/s, 315 rpm no-load "effort_limit" : 17.0, # Nm "armature" : 0.005, # kgm^2 "friction_loss" : 0.1, # Nm @@ -27,7 +21,7 @@ # https://robstride.com/products/robStride02 ROBSTRIDE_02_ACTUATOR_PARAMS = { - "velocity_limit" : 410 * RPM_TO_RAD_PER_S, # rad/s, 410 rpm + "velocity_limit" : 42.94, # rad/s, 410 rpm no-load "effort_limit" : 17.0, # Nm "armature" : 0.005, # kgm^2 "friction_loss" : 0.1, # Nm @@ -37,7 +31,7 @@ # https://robstride.com/products/robStride03 ROBSTRIDE_03_ACTUATOR_PARAMS = { - "velocity_limit" : 200 * RPM_TO_RAD_PER_S, # rad/s, 200 rpm + "velocity_limit" : 20.94, # rad/s, 200 rpm no-load "effort_limit" : 60.0, # Nm "armature" : 0.01, # kgm^2 "friction_loss" : 0.1, # Nm @@ -47,7 +41,7 @@ # https://robstride.com/products/robStride04 ROBSTRIDE_04_ACTUATOR_PARAMS = { - "velocity_limit" : 200 * RPM_TO_RAD_PER_S, # rad/s, 200 rpm + "velocity_limit" : 20.94, # rad/s, 200 rpm no-load "effort_limit" : 120.0, # Nm "armature" : 0.016, # kgm^2 "friction_loss" : 0.1, # Nm @@ -57,7 +51,7 @@ # https://robstride.com/products/robStride05 ROBSTRIDE_05_ACTUATOR_PARAMS = { - "velocity_limit" : 480 * RPM_TO_RAD_PER_S, # rad/s, 480 rpm + "velocity_limit" : 50.27, # rad/s, 480 rpm no-load "effort_limit" : 5.5, # Nm "armature" : 0.001, # kgm^2 "friction_loss" : 0.1, # Nm @@ -67,7 +61,7 @@ # https://robstride.com/products/robStride06 ROBSTRIDE_06_ACTUATOR_PARAMS = { - "velocity_limit" : 480 * RPM_TO_RAD_PER_S, # rad/s, 480 rpm + "velocity_limit" : 50.27, # rad/s, 480 rpm no-load "effort_limit" : 36.0, # Nm "armature" : 0.008, # kgm^2 "friction_loss" : 0.1, # Nm