Skip to content

Commit 3b6bd83

Browse files
committed
fix: correct joint limits, servo directions, and default serial port
- Set reverse? true on all non-gripper actuators (servos are mounted with opposite rotation sense to the joint convention) - Fix shoulder_lift limits to -10..190 degrees (asymmetric range) - Fix elbow_flex limits to -187..7 degrees (asymmetric range) - Set default serial port to /dev/ttyUSB0 in application config
1 parent 0d5b95f commit 3b6bd83

2 files changed

Lines changed: 14 additions & 10 deletions

File tree

lib/bb/example/so101/robot.ex

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,8 @@ defmodule BB.Example.SO101.Robot do
136136

137137
actuator(
138138
:shoulder_pan_servo,
139-
{BB.Servo.Feetech.Actuator, servo_id: 1, controller: :feetech_controller}
139+
{BB.Servo.Feetech.Actuator,
140+
servo_id: 1, controller: :feetech_controller, reverse?: true}
140141
)
141142

142143
link :shoulder_link do
@@ -175,15 +176,16 @@ defmodule BB.Example.SO101.Robot do
175176
end
176177

177178
limit do
178-
lower(~u(-100 degree))
179-
upper(~u(100 degree))
179+
lower(~u(-10 degree))
180+
upper(~u(190 degree))
180181
effort(~u(2.5 newton_meter))
181182
velocity(~u(360 degree_per_second))
182183
end
183184

184185
actuator(
185186
:shoulder_lift_servo,
186-
{BB.Servo.Feetech.Actuator, servo_id: 2, controller: :feetech_controller}
187+
{BB.Servo.Feetech.Actuator,
188+
servo_id: 2, controller: :feetech_controller, reverse?: true}
187189
)
188190

189191
link :upper_arm_link do
@@ -222,15 +224,16 @@ defmodule BB.Example.SO101.Robot do
222224
end
223225

224226
limit do
225-
lower(~u(-97 degree))
226-
upper(~u(97 degree))
227+
lower(~u(-187 degree))
228+
upper(~u(7 degree))
227229
effort(~u(2.5 newton_meter))
228230
velocity(~u(360 degree_per_second))
229231
end
230232

231233
actuator(
232234
:elbow_servo,
233-
{BB.Servo.Feetech.Actuator, servo_id: 3, controller: :feetech_controller}
235+
{BB.Servo.Feetech.Actuator,
236+
servo_id: 3, controller: :feetech_controller, reverse?: true}
234237
)
235238

236239
link :forearm_link do
@@ -277,7 +280,8 @@ defmodule BB.Example.SO101.Robot do
277280

278281
actuator(
279282
:wrist_flex_servo,
280-
{BB.Servo.Feetech.Actuator, servo_id: 4, controller: :feetech_controller}
283+
{BB.Servo.Feetech.Actuator,
284+
servo_id: 4, controller: :feetech_controller, reverse?: true}
281285
)
282286

283287
link :wrist_link do
@@ -325,7 +329,7 @@ defmodule BB.Example.SO101.Robot do
325329
actuator(
326330
:wrist_roll_servo,
327331
{BB.Servo.Feetech.Actuator,
328-
servo_id: 5, controller: :feetech_controller}
332+
servo_id: 5, controller: :feetech_controller, reverse?: true}
329333
)
330334

331335
link :gripper_link do

lib/bb_example_so101/application.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ defmodule BB.Example.SO101.Application do
4646
if System.get_env("SIMULATE") do
4747
[simulation: :kinematic]
4848
else
49-
[]
49+
[params: [config: [feetech: [device: "/dev/ttyUSB0"]]]]
5050
end
5151
end
5252
end

0 commit comments

Comments
 (0)