Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
bb29e1b
Simplify simulator Docker workflows and add ROS integration regressions
maxconwa Sep 16, 2026
93209ef
Update supported submodule pins and ship the Magpie Isaac runtime
maxconwa Sep 16, 2026
2738412
Add ROS arm and lower-body simulator integration tests
maxconwa Sep 17, 2026
178befe
Fix real-robot SLAM divergence: upright Livox IMU, one FAST-LIO config
maxconwa Sep 23, 2026
462c479
Lock build inputs, fix core_ws cache correctness, extend stack tests
maxconwa Sep 23, 2026
c52c895
Rewrite history comments in present tense; add real MID360 frame test…
maxconwa Sep 23, 2026
a122aa4
RoboCasa at 1x real time with all sensors, clearer spawn, ALMI-only legs
maxconwa Sep 23, 2026
189037f
Ignore local Claude Code settings
maxconwa Sep 23, 2026
c03d76c
Split bringup into building blocks; add h12_slam package
Correll-Humanoid Oct 2, 2026
4703bb0
Add locomotion_game_deploy package for the MARL loco-manipulation policy
maxconwa Oct 7, 2026
7c6b84f
locomotion_game_deploy: run the Golem2 policy (IK3 odometry and filte…
maxconwa Oct 7, 2026
ee4f757
Add locomanipulationgame_bringup.launch.py: the loco-manipulation gam…
maxconwa Oct 7, 2026
be35a1f
tests/locomanipulation_game: run, record, render and score the game i…
maxconwa Oct 7, 2026
077c660
game_commander_node: kitchen-friendly scripted sequence
maxconwa Oct 7, 2026
8ba64e5
analyze_run.py: write numpy scalars as JSON numbers
maxconwa Oct 7, 2026
cad2f69
game_commander_node: end the run when the IMU shows a fall
maxconwa Oct 7, 2026
61a73ad
locomotion_game_deploy README: marl_golem, the game commander and the…
maxconwa Oct 7, 2026
c639f82
marl_golem.yaml: name the Golem3 task it deploys
maxconwa Oct 7, 2026
0875484
render_recording.py: keep a clear line of sight to the robot
maxconwa Oct 7, 2026
2737c50
tests/locomanipulation_game/run.sh: render without a TTY
maxconwa Oct 7, 2026
56345e5
tests/locomanipulation_game: walking sim-to-sim test on RoboCasa's ow…
maxconwa Oct 7, 2026
aff68a7
sim2sim_walk.py: condim4 and torsion02 variants (torsional friction a…
maxconwa Oct 7, 2026
9c73065
marl_golem: run R's exported policy (agent_24000), networks and arm g…
maxconwa Oct 8, 2026
6af563f
RoboCasa elastic band: damp all swing, fix the viewer key callback
maxconwa Oct 11, 2026
15f57d5
locomotion_game_deploy: marl_ik holds golemlim120k; target_limits and…
maxconwa Oct 11, 2026
7797b6b
common_cmds: drive the loco-manipulation policy by hand
maxconwa Oct 11, 2026
7e73781
Split the loco-manipulation game bringup into sim and real launches
Correll-Humanoid Oct 11, 2026
5386f96
Rename h1_bringup to h12_bringup and the loco-manipulation bringups t…
Correll-Humanoid Oct 11, 2026
d932cb3
Rename locomotion_game_deploy to lmg_deploy
Correll-Humanoid Oct 11, 2026
3ad1a9d
lmg: always run the TorchScript policy; confirm-engage on real only
Correll-Humanoid Oct 11, 2026
7815a5b
lmg real: lidar-only drivers and a speed-limited pre-pose ramp
Correll-Humanoid Oct 11, 2026
2b2c665
Real bringup: run ALMI leg control onboard, gate desktop hand cameras
Correll-Humanoid Oct 11, 2026
e4d40ec
h12_lowerbody_rl: remove the almi27 policy
Correll-Humanoid Oct 11, 2026
af959cd
h12_lowerbody_rl: match frame_task's LowCmd header, pre-pose after sa…
Correll-Humanoid Oct 12, 2026
fbd8eba
h12_bringup: disable the left gripper node
Correll-Humanoid Oct 12, 2026
8bdcb50
common_cmds: real-robot screwdriver-handle pick workflow
Correll-Humanoid Oct 12, 2026
3525dd2
h12_skills grasp: pelvis-frame contact move switch, live candidate ma…
Correll-Humanoid Oct 12, 2026
2bd9655
Bump custom_ros_messages and h12_ros2_controller for relative frame t…
Correll-Humanoid Oct 12, 2026
a3989f5
common_cmds: relative frame_task lift after the screwdriver grasp
Correll-Humanoid Oct 12, 2026
618a14d
h12_skills grasp: keep top-down-only steps out of the side approaches
Correll-Humanoid Oct 12, 2026
2f39c9f
Bump h12_ros2_controller: no arm drop at frame_task goal boundaries
Correll-Humanoid Oct 12, 2026
7ef6286
Bump h12_safety_layer: newest-only relay loop, low_state lag estop
Correll-Humanoid Oct 12, 2026
ba9bd7b
Bump h12_ros2_controller: latest-only lowstate, stale-state guard
Correll-Humanoid Oct 12, 2026
0e63d16
h12_skills grasp: take off in Z, approach along the grasp axis; stop …
Correll-Humanoid Oct 12, 2026
5ff2993
Only h12_safety_layer publishes rt/lowcmd; bump safety layer and cont…
Correll-Humanoid Oct 12, 2026
7f220d5
h12_skills grasp: planned reset to prep/staging after each failed can…
Correll-Humanoid Oct 12, 2026
1d798dd
Bump h12_ros2_controller: hold reports joints pinned at a position limit
Correll-Humanoid Oct 12, 2026
31d0828
h12_skills grasp: warn when the axis approach is under 1 cm
Correll-Humanoid Oct 12, 2026
1670d91
Bump h12_ros2_controller: seed IK from the measured pose first
Correll-Humanoid Oct 12, 2026
2ca9131
common_cmds: screwdriver grasp example uses top_down: false
Correll-Humanoid Oct 12, 2026
fd336b1
h12_slam: 3D octomap costmaps, URDF self filter, level odom frame
Correll-Humanoid Oct 12, 2026
12a2490
h12_slam: level base_footprint for slam_toolbox/Nav2, faster clearing
Correll-Humanoid Oct 12, 2026
4d75d2f
RViz: update bringup layouts, add the h12_slam SLAM view
Correll-Humanoid Oct 12, 2026
7126f17
DDS_TUNING: IP fragment reassembly losses and the ipfrag sysctls
Correll-Humanoid Oct 12, 2026
3f5943d
h12_bringup: single main.rviz replaces sim, nav and h1_sim layouts
Correll-Humanoid Oct 13, 2026
e1cdd62
Lower body: one pinned policy, commands cleared on the engage trigger
Correll-Humanoid Oct 13, 2026
f1b6d48
h12_slam: holonomic Nav2 (MPPI Omni, 2D planner), clearing local costmap
Correll-Humanoid Oct 13, 2026
9f79d6a
Bump h12_ros2_controller and h12_safety_layer
Correll-Humanoid Oct 13, 2026
e6f5b53
RoboCasa sim: Battery workcell task (--task Battery), per-task spawn …
maxconwa Oct 14, 2026
048eda4
h12_bringup: new left gripper board, calibration, re-enable left
Correll-Humanoid Oct 14, 2026
654e344
RoboCasa cameras: match the real RealSense drivers (frames, TF, intri…
maxconwa Oct 15, 2026
5928261
lmg_deploy: Explicit500 (LSTM policy), manual walk/arm mode and arm-g…
maxconwa Oct 16, 2026
8d1eddd
lmg_deploy: Explicit500 only, arm goals held by SLAM odometry, rviz i…
Correll-Humanoid Oct 16, 2026
ee87dcd
lmg_deploy: live IMU trim, opt-in MID360 IMU source
Correll-Humanoid Oct 16, 2026
43314e6
lmg_deploy: real-robot bags of Explicit500 (walk to nav2 goals, reach)
Correll-Humanoid Oct 16, 2026
bc09b11
h12_bringup: real MID360 publishes at 30 Hz
Correll-Humanoid Oct 17, 2026
7b62149
h12_slam: record_slam_bag, and h12_real_slam.launch.py moves here
Correll-Humanoid Oct 17, 2026
2ad1fc9
H1-2 lidar mount 9.41 deg: CL_Assets pin, FAST-LIO body -> pelvis TF
Correll-Humanoid Oct 19, 2026
2c1c7fd
h12_slam: FAST-LIO extrinsic_T in the upright frame
Correll-Humanoid Oct 19, 2026
ebfbf77
lmg_deploy: the policy's IMU is always the MID360
Correll-Humanoid Oct 19, 2026
1283dd8
h12_slam: FAST-LIO extrinsic and body -> pelvis from the URDF's MID-3…
Correll-Humanoid Oct 19, 2026
cc1f5aa
lmg_deploy: /livox/imu in livox_imu_link, the MID-360's IMU chip
Correll-Humanoid Oct 19, 2026
f18de3b
CL_isaaclab_sim pin: Magpie /livox/imu from livox_link/livox_imu_link
Correll-Humanoid Oct 19, 2026
556a9e7
lmg_deploy: gyro low-pass matched to training, against the head's 20 …
Correll-Humanoid Oct 19, 2026
e3a81bb
lmg_deploy: FAST-LIO attitude for the policy's IMU, gait_phase_cos, t…
maxconwa Oct 20, 2026
cb8e009
lmg_deploy: no shipped policy, a deploy config template, slam_frame a…
maxconwa Oct 20, 2026
4cbdb25
lmg_deploy: the Mid360v2 policy; ankle pitch torque e-stop 95 Nm (h12…
maxconwa Oct 20, 2026
27a7c0b
:arrow_up: Track latest h12_safety_layer and h12_ros2_controller
Correll-Humanoid Oct 21, 2026
e1af884
:dizzy: Add emulate_tty=True to have colored outputs from launch files
Correll-Humanoid Oct 21, 2026
8a7c4b7
h12_skills: pluggable grasp synthesis (centroid, antipodal, GGX, GGX-…
maxconwa Oct 14, 2026
3109f86
h12_skills: extract_json falls back to "box_2d" arrays
maxconwa Oct 22, 2026
62d2208
h12_skills: contact_offset and servo_depth node parameters
maxconwa Oct 22, 2026
54854c4
h12_skills: Gemini + SAM for battery parts; SAM mask point in the servo
maxconwa Oct 22, 2026
e9b4f72
h12_skills: world-anchored grasp approach, world-servo divergence stop
maxconwa Oct 22, 2026
fe48691
model_server: gemini_server uses gemini-robotics-er-2-preview
maxconwa Oct 22, 2026
6a4f027
RoboCasa sim: force-limited Magpie gripper (real 32 N max)
maxconwa Oct 22, 2026
a0b36d5
RoboCasa sim: opt-in experiment surface (GOLEM_SIM_EXPERIMENT=1)
maxconwa Oct 22, 2026
b50185b
RoboCasa sim: optional rotational hold on the elastic band
maxconwa Oct 22, 2026
5fd1e5a
RoboCasa sim: GOLEM_SPAWN_OFFSET shifts the task spawn
maxconwa Oct 22, 2026
516af0e
RoboCasa sim: GOLEM_HAND_CAMERA_RES sets the hand cameras' resolution
maxconwa Oct 22, 2026
9860f09
docker: pass the RoboCasa experiment and camera env vars through
maxconwa Oct 22, 2026
42d6559
CL_Assets pin: Magpie gripper dynamics, battery screws, bus bar, cabl…
maxconwa Oct 22, 2026
8bec45e
h12_safety_layer: latest main merged with the camera_ready safety com…
maxconwa Oct 26, 2026
10305da
G1 groundwork: leprechaun_g1 submodule, core/ dirs not ignored, port …
maxconwa Oct 26, 2026
592eec8
docker: onnxruntime, pynput and the jsp GUI for the G1, through new l…
maxconwa Oct 26, 2026
1bd90c9
docker: GOLEM_ROBOT / --g1 selects the G1 overlay, mounts and DDS int…
maxconwa Oct 26, 2026
8637257
docker: G1 stack bringup is always g1_bringup; domain-0 interface che…
maxconwa Oct 26, 2026
2b9eecb
custom_ros_messages: SetHandPose and SkillRetrieveMemory for the G1
maxconwa Oct 26, 2026
15253c7
g1_description: the G1 URDFs and joint table from leprechaun_g1
maxconwa Oct 26, 2026
792e390
g1_locomotion: HOMIE's G1 walking policy as the lower-body controller
maxconwa Oct 26, 2026
a7fca29
g1_safety_layer: the G1's arm_sdk / split / full safety layer
maxconwa Oct 26, 2026
ccec4c0
g1_control: the G1 upper-body IK controller on custom_ros_messages
maxconwa Oct 26, 2026
59bc44d
g1_control: abort FrameTask relative/slow_mode and NamedConfig slow_m…
maxconwa Oct 26, 2026
9087f7c
g1_dex3: Dex3-1 hand driver on custom_ros_messages
maxconwa Oct 26, 2026
d1486ce
g1_navigation: FAST-LIO, Nav2 and the G1 frontier explorer
maxconwa Oct 26, 2026
ef83caf
g1_bringup: G1 real and sim bringup launch files
maxconwa Oct 26, 2026
51a941f
g1_bringup: forward frontier_explore to g1_navigation explicitly
maxconwa Oct 26, 2026
8a4c932
tests: RoboCasa topic-surface probe and the H1-2 golden
maxconwa Oct 26, 2026
711b2a2
tests: surface probe tolerates a sim crash on exit, rejects shared do…
maxconwa Oct 26, 2026
26892f7
h1_robocasa: copy the G1 sim into h1_robocasa/g1 verbatim
maxconwa Oct 26, 2026
6b16654
h1_robocasa: make the G1 sim the package h1_robocasa/g1
maxconwa Oct 26, 2026
fd9a15b
h1_robocasa: the G1 sim reads GOLEM_* knobs
maxconwa Oct 26, 2026
a80422e
h1_robocasa: h12_mujoco.py runs the G1 for --g1 or GOLEM_ROBOT=g1
maxconwa Oct 26, 2026
919cbd8
tests: the G1 sim's unit tests and their container runner
maxconwa Oct 26, 2026
7f52b04
tests: the G1 topic-surface golden
maxconwa Oct 26, 2026
112d2bd
h1_robocasa: shared CLI, task and viewer helpers in sim_common
maxconwa Oct 26, 2026
08923aa
h1_robocasa: one sensor-bridge host; the H1-2's sensors as H12Sensors
maxconwa Oct 27, 2026
753f40e
h1_robocasa: the G1 runs on the shared sensor-bridge host as G1Sensors
maxconwa Oct 27, 2026
127a8db
docker: wait_for_sim refuses a simulator of the other robot
maxconwa Oct 27, 2026
77ff051
tests: the G1 acceptance tests in tests/g1
maxconwa Oct 27, 2026
645e231
docs: the G1 in CLAUDE.md, AGENTS.md, docs/g1, README and the test an…
maxconwa Oct 27, 2026
e5a83e0
docs: the G1 package READMEs and the sim comments describe GOLEM as i…
maxconwa Oct 27, 2026
640ef7d
docs: the G1 first session gates on the interface pin; sim_timing is …
maxconwa Oct 27, 2026
fa467b8
docs: a MkDocs site for GOLEM and its Pages workflow
maxconwa Oct 27, 2026
8722a07
docker: write the G1 DDS pin only for ros containers, atomically
maxconwa Oct 27, 2026
4de2506
docs: when the G1 DDS pin is written, the domain-0 prompt and shell e…
maxconwa Oct 27, 2026
c8fa5f7
docs: design for golem_upper_ik and golem_safety, one arm controller …
maxconwa Oct 27, 2026
62c6b79
docs: implementation plan for golem_upper_ik and golem_safety
maxconwa Oct 27, 2026
c83785b
golem_upper_ik: package skeleton and the 500 Hz LowCmd publish probe
maxconwa Oct 27, 2026
50e7fb7
golem_safety: package, robot data files and RobotProfile
maxconwa Oct 27, 2026
473bf7c
golem_safety: config schema, derived limits and the carried-over configs
maxconwa Oct 27, 2026
ab7592a
golem_safety: require startup.rule and estop_response.after, G1 lag c…
maxconwa Oct 27, 2026
b52a9ed
golem_safety: LowCmd CRC and builders, npz chunk logger
maxconwa Oct 27, 2026
6ee375e
golem_safety: SafetyCore relay, clipping, limits, identity, writers a…
maxconwa Oct 27, 2026
c6f004a
golem_safety: a non-finite command latches the estop, as both old lay…
maxconwa Oct 27, 2026
6b14cdf
golem_safety: SafetyCore keeps the G1's JSON events and latches befor…
maxconwa Oct 27, 2026
43af531
golem_safety: start-up rules, estop input, quiet-input hold, lag and …
maxconwa Oct 27, 2026
0d6bac7
golem_safety: the engage gate refuses a quiet input; control.state_la…
maxconwa Oct 27, 2026
767c903
golem_safety: safety_node over ROS, with the ported safety tests
maxconwa Oct 28, 2026
524145d
golem_safety: one JSON escaper, exception-safe spinner, sharper refus…
maxconwa Oct 28, 2026
b609dc8
golem_upper_ik: robot profiles, controller config and config pairing
maxconwa Oct 28, 2026
aabbe22
golem_upper_ik: validate the planner config, read-only profile, stric…
maxconwa Oct 28, 2026
2a25141
golem_upper_ik: robot model, IK, dynamics and planner for both robots
maxconwa Oct 28, 2026
8ec3d89
golem_upper_ik: planner request sequencing, explicit state source, on…
maxconwa Oct 28, 2026
8bff764
golem_upper_ik: rclpy state and command I/O, command handler and foll…
maxconwa Oct 28, 2026
6c24999
golem_upper_ik: no recorder, gate refuses a detached state source, cl…
maxconwa Oct 28, 2026
38fb6a4
change report: no centre-of-mass comparison remains after the recorde…
maxconwa Oct 28, 2026
cd876fa
change report: the recorder row names why it goes
maxconwa Oct 28, 2026
9382b7a
golem_upper_ik: controllers, frame_task_server and joint_state_publisher
maxconwa Oct 28, 2026
56ac9d0
golem_upper_ik: H1-2 start-up pacing, safe ee-target publishing, stur…
maxconwa Oct 28, 2026
8934ce9
sims: the H1-2 sims report mode_machine 6, like the real robot
maxconwa Oct 28, 2026
4a5d3ea
tests: the H1-2 mode_machine test opens no DDS participant
maxconwa Oct 28, 2026
20afbcf
h12_bringup: run golem_safety and golem_upper_ik
maxconwa Oct 28, 2026
3aae45c
h12_bringup: estop start-up comment, lint, tests that do not skip
maxconwa Oct 28, 2026
8b7320e
g1_bringup, g1_locomotion: run golem_safety and golem_upper_ik
maxconwa Oct 28, 2026
31534c6
g1: hand-back starts at the controller stop, non-finite wording, DDS …
maxconwa Oct 28, 2026
e7ef174
docs: golem change report and measured rates
maxconwa Oct 28, 2026
8495634
docs: change report keeps gravity feed-forward, traceable rates; prob…
maxconwa Oct 28, 2026
72c2411
docs: golem_safety and golem_upper_ik
maxconwa Oct 28, 2026
644034f
docs: one stack per domain for the right reason, what follows a silen…
maxconwa Oct 28, 2026
cbb8019
golem_safety: heartbeat only once relaying can begin, executor failur…
maxconwa Oct 28, 2026
32236ae
golem_upper_ik: the G1 waist holds at shutdown on /lowcmd; shutdown a…
maxconwa Oct 28, 2026
8cb0202
g1_locomotion: the fault line names every rt/lowstate that latches go…
maxconwa Oct 28, 2026
417ef65
h12_bringup: band_max_wait 34 s in the sim; a late first estop sample…
maxconwa Oct 28, 2026
e8c238a
tests and docs: heartbeat gate, the G1 waist at controller shutdown, …
maxconwa Oct 28, 2026
a15f906
g1_bringup: the docstring states the controller's exit per mode (the …
maxconwa Oct 28, 2026
363196d
docs: the change report's signal-handling row names the shutdown command
maxconwa Oct 28, 2026
145136d
tests/g1: the walk test's waist tolerance allows the held offset afte…
maxconwa Oct 28, 2026
c293f0d
docs: the change report records the G1 waist's held offset after the …
maxconwa Oct 28, 2026
38540b2
Final review residuals: the G1 waist at exit, heartbeat readers, a wa…
maxconwa Oct 28, 2026
83a959c
docs: design and plan for golem_bringup, golem_robocasa and the G1's …
maxconwa Oct 28, 2026
9dbcbb1
golem_robocasa: rename h1_robocasa, the RoboCasa sim of both robots
maxconwa Oct 28, 2026
de28c30
Delete the unused safety layers and arm controllers of both robots
maxconwa Oct 28, 2026
ad46630
golem_bringup: one bringup package for both robots, launch files spli…
maxconwa Oct 28, 2026
8ec2ca1
golem_bringup: the G1 launch tests skip in an H1-2 workspace
maxconwa Oct 28, 2026
05c3d5f
h12_bringup: new right gripper board and calibration
Correll-Humanoid Oct 28, 2026
00fb82a
Delete arm_sdk mode: the G1 runs split or full-body mode only
maxconwa Oct 28, 2026
3662665
cl_realsense pin: new right hand D405; h12_rs_cams includes head + ha…
Correll-Humanoid Oct 28, 2026
5ea8ee7
golem_safety: one start-up for both robots, a zero-gain stream from boot
maxconwa Oct 28, 2026
a8332d4
golem_robocasa: the G1 hangs from the elastic band, as the H1-2 does
maxconwa Oct 28, 2026
3f33ea2
g1_locomotion: heartbeat, pre-pose, operator confirm and band release…
maxconwa Oct 28, 2026
f5db95b
golem_bringup: the G1 bringups always start HOMIE
maxconwa Oct 28, 2026
c1ce573
tests/g1: the G1 starts from the band, HOMIE releases it
maxconwa Oct 28, 2026
c4f7464
docs: golem_bringup, golem_robocasa and the G1's debug-mode start-up
maxconwa Oct 28, 2026
9d967e0
tests/g1: the band check fails a release by band.max_wait
maxconwa Oct 29, 2026
868dda4
g1_locomotion: a band toggle that re-hangs the robot warns
maxconwa Oct 29, 2026
5ae337f
g1_locomotion: the policy's history restarts at the band's release
maxconwa Oct 29, 2026
8bb8f84
golem_safety, golem_upper_ik: an estop at this start-up, engage.mode_…
maxconwa Oct 29, 2026
098e32e
docs: first-session step 10's checks, the onboard-PC build, stale run…
maxconwa Oct 29, 2026
30daf35
CL_Assets: g1_assets, the G1's model, sphere model and SRDF
maxconwa Oct 29, 2026
7a3c8a3
golem_ros2_models: both robots' models from CL_Assets
maxconwa Oct 29, 2026
947dcb1
G1 joint table hand-kept in golem_safety; each G1 package keeps its o…
maxconwa Oct 29, 2026
031e73d
golem_upper_ik: both robots' models from golem_ros2_models
maxconwa Oct 29, 2026
bb154c0
golem_bringup: robot descriptions and lmg URDFs from golem_ros2_models
maxconwa Oct 29, 2026
16dcafe
g1_navigation: the G1's URDF from golem_ros2_models
maxconwa Oct 29, 2026
3202a51
h12_slam: navigation's default URDF from golem_ros2_models
maxconwa Oct 29, 2026
8753201
tests/stack: the H1-2's robot description from golem_ros2_models
maxconwa Oct 29, 2026
38b53b4
docker/mac: build golem_ros2_models instead of h12_ros2_model
maxconwa Oct 29, 2026
9eb7cd4
golem_upper_ik: the G1's self-collision model, the H1-2's way
maxconwa Oct 29, 2026
c55965a
Delete h12_ros2_model and g1_description: golem_ros2_models installs …
maxconwa Oct 29, 2026
6d1d9e8
golem_upper_ik, golem_bringup: the G1's start-pose hazard with the ba…
maxconwa Oct 29, 2026
337ef5b
golem_robocasa: the G1 sim reads its model from CL_Assets/g1
maxconwa Oct 29, 2026
ccb12c9
g1_locomotion: the walking policy's MuJoCo model from CL_Assets/g1
maxconwa Oct 29, 2026
8fb2280
docker: the G1 model from CL_Assets/g1, checked for every ros container
maxconwa Oct 29, 2026
d5266c2
tools: read_lowstate.py from leprechaun_g1, mounted in the G1's ros c…
maxconwa Oct 29, 2026
2937614
Delete the leprechaun_g1 submodule
maxconwa Oct 29, 2026
363ce72
docs: the G1's models in CL_Assets/g1, leprechaun_g1's pages in docs/g1
maxconwa Oct 29, 2026
1713ec9
tests/robocasa/g1: test_g1_sensors finds the repo root from g1_robosu…
maxconwa Oct 29, 2026
c023f20
golem_robocasa: a Blank task for both robots
maxconwa Oct 29, 2026
29b63c8
docs: --task Blank in RUNNING.md
maxconwa Oct 29, 2026
9817542
golem_upper_ik: the G1 keeps the H1-2's 20 mm self-collision distance
maxconwa Oct 29, 2026
d91fe87
golem_upper_ik: relative frame targets are offsets in the pelvis frame
maxconwa Oct 29, 2026
1bc1c04
golem_upper_ik: a start-up IK step with no solution names the closest…
maxconwa Oct 29, 2026
1d3b55e
Merge origin/camera_ready: the new right gripper board and the cl_rea…
maxconwa Oct 29, 2026
4f18e32
golem_robocasa: the H1-2's elastic band hangs the robot 5 cm lower
maxconwa Oct 29, 2026
e1b9696
h12_slam: level_odom judges stillness on 0.5 s slice means, so a stan…
maxconwa Oct 29, 2026
74388b3
docker: every ros container mounts and builds both robots
maxconwa Oct 29, 2026
d656071
docs: one ros container builds and runs both robots
maxconwa Oct 29, 2026
a7c1159
tests/g1: the bringup test stops the sim's recording before the bring…
maxconwa Oct 29, 2026
66e2cf8
core_ws: the G1's packages move up to core_ws/src; g1_dex3 is dex_3, …
maxconwa Oct 29, 2026
a04e790
Point the bringup, docker, tests and sims at dex_3, g1_homie and core…
maxconwa Oct 29, 2026
eecc0d6
docs: the G1's packages are dex_3, g1_homie and g1_navigation in core…
maxconwa Oct 29, 2026
2a3e05f
tests/robocasa/g1: test_g1_sensors reads g1_navigation's FAST_LIO con…
maxconwa Oct 29, 2026
72be459
golem_slam/golem_skills migration, G1 SLAM on the real robot, G1 star…
maxconwa Oct 30, 2026
b370cf5
Merge camera_ready into main
maxconwa Oct 30, 2026
d347afc
CI: fetch the public submodules over HTTPS; G1 overlay passes the cam…
maxconwa Oct 30, 2026
8608237
Merge remote-tracking branch 'origin/camera_ready' into HEAD
maxconwa Oct 30, 2026
41ffc57
CI: Python 3.10 for cyclonedds' wheel; PyPI as torch's extra index
maxconwa Oct 30, 2026
bb64ddc
Merge remote-tracking branch 'origin/camera_ready' into HEAD
maxconwa Oct 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 11 additions & 4 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,10 @@
# on full builds otherwise). Un-deny only files that a Dockerfile COPYs in.
#
# Whitelisted COPY sources:
# IsaacDockerfile -> CL_isaaclab_sim/requirements.txt
# RobocasaDockerfile -> core_ws/src/livox_ros_driver2 (baked-in livox build)
# BaseDockerfile -> unitree_sdk2_python (local SDK install)
# IsaacDockerfile -> magpie_msgs + private Humble runtime packager
*
!CL_isaaclab_sim
CL_isaaclab_sim/*
!CL_isaaclab_sim/requirements.txt
!core_ws
core_ws/*
!core_ws/src
Expand All @@ -19,3 +16,13 @@ core_ws/src/livox_ros_driver2/.git
!unitree_sdk2_python
!unitree_sdk2_python/**
unitree_sdk2_python/.git

!core_ws/src/magpie_msgs
core_ws/src/magpie_msgs/.git
!docker
docker/*
!docker/scripts
docker/scripts/*
!docker/scripts/package_humble_runtime.py
!docker/locks
!docker/locks/**
48 changes: 48 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Docs

on:
push:
branches: [main]
paths:
- 'docs/**'
- 'mkdocs.yml'
- '.github/workflows/docs.yml'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.12"
cache: pip
cache-dependency-path: docs/requirements-docs.txt
- name: Install docs requirements
run: pip install -r docs/requirements-docs.txt
- name: Build site
run: mkdocs build --strict
- uses: actions/configure-pages@v6
- uses: actions/upload-pages-artifact@v5
with:
path: site

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@v5
91 changes: 91 additions & 0 deletions .github/workflows/simulator-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Simulator regression tests
on:
pull_request:
paths:
- 'CL_isaaclab_sim'
- 'CL_isaaclab_sim/**'
- 'golem_robocasa/**'
- 'docker/**'
- 'core_ws/**'
- 'CL_Assets'
- '.gitmodules'
- 'tests/**'
- '.github/workflows/simulator-tests.yml'
push:
branches: [main, master]
workflow_dispatch:

permissions:
contents: read

jobs:
cpu:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Initialize code submodules (no large asset downloads)
# .gitmodules uses SSH URLs; the runner has no SSH key, and both are public
run: |
git config --global url."https://github.com/".insteadOf git@github.com:
git submodule update --init CL_isaaclab_sim unitree_sdk2_python
- uses: actions/setup-python@v5
with:
# cyclonedds 0.10.2 ships wheels (with its C library) up to 3.10, the
# images' Python; on 3.11 pip builds it against jammy's 0.8.2 and fails
python-version: '3.10'
- name: Install test dependencies
run: |
# torch's own index lacks some of its dependencies' build tools
python -m pip install torch==2.7.0 --index-url https://download.pytorch.org/whl/cpu \
--extra-index-url https://pypi.org/simple
python -m pip install -r tests/requirements-isaac-cpu.txt
- name: Isaac Lab interface and control regressions
env:
PYTHONPATH: CL_isaaclab_sim:unitree_sdk2_python
run: python -m unittest discover -s tests/isaaclab -p 'test_*.py' -v
- name: RoboCasa loop pacing regressions
env:
PYTHONPATH: golem_robocasa
run: python -m unittest discover -s tests/robocasa -p test_loop_timing.py -v
- name: RoboCasa robot selection
env:
PYTHONPATH: golem_robocasa
run: python -m unittest discover -s tests/robocasa -p test_robot_select.py -v
- name: Linux and Mac Docker workflow regressions
run: python -m unittest discover -s tests/docker -v
- name: Controller integration acceptance scoring
run: python -m unittest discover -s tests/stack -p 'test_*.py' -v

gpu-integration:
# Explicit trusted runs on a prepared worker; CPU job is the portable PR gate.
if: github.event_name == 'workflow_dispatch'
runs-on: [self-hosted, linux, x64, nvidia]
timeout-minutes: 90
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Build simulation and ROS images
run: docker/scripts/docker_build.sh isaac robocasa ros
- name: Magpie physical linkage schema
run: ROS_DOMAIN_ID=186 tests/isaaclab/run_magpie_couplings.sh
- name: Magpie native ROS services and actions
run: ROS_DOMAIN_ID=190 tests/isaaclab/run_magpie_transport.sh
- name: Actual Isaac Lab scene and shutdown
run: ROS_DOMAIN_ID=187 tests/isaaclab/run_smoke.sh
- name: ROS sensor transport
run: ROS_DOMAIN_ID=188 tests/isaaclab/run_sensor_transport.sh
- name: Native ROS Livox interoperability
run: ROS_DOMAIN_ID=189 tests/isaaclab/run_livox_interop.sh
- name: ROS commands drive actual Isaac physics
run: ROS_DOMAIN_ID=191 tests/isaaclab/run_robot_interop.sh magpie
- name: Inspire variant regression
run: ROS_DOMAIN_ID=192 tests/isaaclab/run_robot_interop.sh inspire
- name: Real frame-task and lower-body control in both simulators
run: tests/stack/run_all.sh
- uses: actions/upload-artifact@v4
if: always()
with:
name: simulator-test-results
path: tests/results/
20 changes: 19 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,26 @@ wandb/

# host-side caches for docker container build artefacts
/container_cache/
/core_ws/build_stack_tests/
/core_ws/install_stack_tests/
/core_ws/log_stack_tests/

# process crash dumps (e.g. h1_robocasa/core from unitree_sdk2py segfaults)
# process crash dumps (e.g. golem_robocasa/core from unitree_sdk2py segfaults)
core
!core/
core.*
*.core

# rosbag recordings (multi-GB; share out of band, not via git)
/bags/
*.mcap
*.db3

# local scratch space
/work/

# Claude Code local settings
/.claude/

# MkDocs site
/site/
12 changes: 0 additions & 12 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
[submodule "CL_isaaclab_sim"]
path = CL_isaaclab_sim
url = git@github.com:correlllab/CL_isaaclab_sim.git
[submodule "core_ws/src/h12_ros2_controller"]
path = core_ws/src/h12_ros2_controller
url = git@github.com:correlllab/h12_ros2_controller.git
branch = main
[submodule "core_ws/src/h12_ros2_model"]
path = core_ws/src/h12_ros2_model
url = git@github.com:correlllab/h12_ros2_model.git
branch = unified_sim
[submodule "core_ws/src/h12_safety_layer"]
path = core_ws/src/h12_safety_layer
url = git@github.com:correlllab/h12_safety_layer.git
branch = main
[submodule "core_ws/src/custom_ros_messages"]
path = core_ws/src/custom_ros_messages
url = git@github.com:correlllab/custom_ros_messages.git
Expand Down
Loading
Loading