Skip to content

feat(galbot): apply Sim2Real actuator gains and controller gravity compensation - #33

Open
ruziniuuuuu wants to merge 1 commit into
NVlabs:feature/galbotfrom
ruziniuuuuu:feature/galbot
Open

feat(galbot): apply Sim2Real actuator gains and controller gravity compensation#33
ruziniuuuuu wants to merge 1 commit into
NVlabs:feature/galbotfrom
ruziniuuuuu:feature/galbot

Conversation

@ruziniuuuuu

Copy link
Copy Markdown

Summary

Replace the pass-through USD actuator configuration with system-identified gains from the galbot-one-golf-sim2real-v1 profile (synthnova/src/synthnova/robots/cfg/galbot_one_golf.toml) and enable gravity compensation.

Changes

robolab/robots/galbot_golf.py

Gravity compensation — added disable_gravity=True to RigidBodyPropertiesCfg, matching the real robot's controller-side gravity compensation and consistent with RoboLab's franka_high_pd convention.

Actuator gains — replaced stiffness=None / damping=None (inherit USD values) with Sim2Real system-identified parameters. Left/right arm values are symmetrised and rounded to integers. The previous arms/legs/head groups are refined into tiers that match the hardware torque ratings:

Group Joints stiffness (N·m/rad) damping (N·m·s/rad) effort_limit_sim (N·m)
legs leg_joint1–5 1400–8660 (per-joint) 85–727 (per-joint) 70–433 (per-joint)
head head_joint1–2 80 4 4
arm_shoulder *_arm_joint1–2 3500 / 3400 100 / 96 180
arm_elbow *_arm_joint3–4 1145 / 1143 32 90
arm_wrist *_arm_joint5–7 286 / 284 / 284 8 30
grippers *_gripper_joint 77 4 1.5
wheels wheel*_joint None (USD) None (USD) None (USD)

tests/test_galbot_configs.py

Two new contract tests:

  • test_gravity_compensation_is_enabled — asserts disable_gravity is True
  • test_actuator_gains_match_sim2real_profile — spot-checks stiffness, damping, and effort limits for shoulder / elbow / wrist / grippers

🤖 Generated with Claude Code

Replace the pass-through USD actuator config with system-identified
gains from the galbot-one-golf-sim2real-v1 profile
(synthnova/src/synthnova/robots/cfg/galbot_one_golf.toml):

- Arm shoulder (j1–j2): stiffness 3500/3400 N·m/rad, effort ±180 N·m
- Arm elbow   (j3–j4): stiffness 1145/1143 N·m/rad, effort ±90 N·m
- Arm wrist   (j5–j7): stiffness 284–286 N·m/rad,   effort ±30 N·m
- Leg joints           : per-joint stiffness/damping, effort 70–433 N·m
- Head joints          : stiffness 80 N·m/rad,        effort ±4 N·m
- Grippers             : stiffness 77 N·m/rad,        effort ±1.5 N·m

Left/right arm values are symmetrised (averaged) and rounded to
integers. Velocity limits are set from the profile for all body joints.

Gravity compensation is enabled via disable_gravity=True on the
articulation's rigid bodies, matching the real robot's controller-side
compensation and consistent with RoboLab's franka_high_pd convention.

Two new tests are added to test_galbot_configs.py:
- test_gravity_compensation_is_enabled
- test_actuator_gains_match_sim2real_profile

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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