Skip to content

Software

Repository Use
duke_humanoid_v2 Umbrella: README, citation, licence, submodules
duke_humanoid_v2_simulation Training, paper reproduction, robot model
duke_humanoid_v2_deploy Control stack on the robot
git submodule update --init --recursive   # umbrella cloned without submodules

The cuRobo plan/MPC (model-predictive control) server needs a separate GPU machine, not in the bill of materials. The robot computer needs no CUDA.

Robot computer setup

On-robot setup (flash CANables, name adapters, configure IMU, install librealsense2, build deploy/control) lives in Bring-up · Robot computer setup.

Deploy has no lower-body gravity compensation; the reinforcement-learning (RL) policy stands the robot.

Control What deploy does
Gravity compensation humanoid_real_env.py --grav-comp (off by default) adds a MuJoCo gravity feed-forward to the arm motors only; the ramp to the initial pose adds none
Standing The RL policy drives the legs; humanoid_auto_operator.py --no-walk zeroes every velocity command so the robot balances in place
Bench stand humanoid_static_stand.py holds legs and waist at zero under PD (kp 100, kd 8, 30 % torque ceiling) while the arms step through poses; no policy

Robot model

simulation/asset/duke_v2/: humanoid_v21/, head_cam/, parallel_gripper/.

The asset READMEs cite these paths, which are not in the export:

README Absent paths
duke_v2/README.md cartesian_hand/ (cartesian_hand.xml)
humanoid_v21/README.md humanoid_v21_high_res.xml, humanoid_v21_resolved.xml, meshes/source_stp/, cartesian_hand/, cartesian_hand_v2/, asset/robot_studio, tests/test_studio.py
cartesian_hand_v3/README.md source/vertical_translation_v8.step, cold/ (cold/cartesian_hand, cold/cartesian_hand_v2, ../cold/README.md), mj_envs/asset_zoo/cartesian_hand_v3.py
head_cam/README.md source/HeadCameraV2.step, source/HeadCameraV2_dual.step, meshes/components_high_res/
parallel_gripper/README.md mini_gripper_old/ParallelGripper0710/ (ParallelGripper0710.step), CNC.step

Yours to check — a few asset READMEs cite paths absent from the export

Whether the files above will be published, and where a builder gets the STEP originals, is not stated.

Owner: controls lead.

The model sets joint order, directions and link masses. Never machine from its meshes; see CAD downloads.

Contract item Where deploy sets it
Joint vector (index, name) motor_setup_dict order in deploy/control/humanoid_config.py; table on CAN bus
Encoder vs training frame The calibrated robot.xml differs from the training model at three joints: left_wrist_1 (−π/2 reference), right_wrist_1 (+π/2 reference), left_wrist_2 (axis flipped); humanoid_real_env.py --obs-frame-fix or --lw2-mirror (both off by default, mutually exclusive) rewrites the wrist observations the policy sees
Checkpoint humanoid_site.DEPLOY_TASK (…BankFlatDecoupledCosine, policy_deployed.pt) runs on the calibrated robot.xml of DEPLOY_MODEL_TASK (…v159bMixedArmsCam); both ship in deploy/control/legged_env_bundle/
Fresh install Deploy control/docs/SETUP.md: Python 3.12, requirements.txt pins, CMake ≥ 3.26, CAN, servo ports, hand-eye calibration, network, RealSense; the robot runs torch 2.9.1+rocm6.3

Yours to determine — the OS, kernel and driver baseline you run

Still unknown: the positive rotation direction of each joint as a builder checks it on a freshly wired robot, which checkpoint matches which hardware revision, and the tested OS, kernel, driver and firmware versions.

Owner: controls lead.

Code is Apache-2.0; see Citation and licence.