feat: Dockerized dev environment, Gazebo-MuJoCo co-simulation fixes, Nav2 stack repair, and rl_sar_zoo as submodule#1
Open
hugodidi wants to merge 19 commits intouleroboticsgroup:mainfrom
Open
Conversation
The generic 'log' rule in both .gitignore files was preventing unitree_sdk2/include/unitree/common/log/*.hpp from being tracked. These headers are required by the SDK DDS layer and their absence caused a fatal build error (unitree/common/log/log.hpp not found). Missing headers were downloaded from the official unitree_sdk2 repository (v2.0.0) to restore the complete SDK and unblock the build process. Changes: - .gitignore: log/ -> /log/ (root-only) - src/rl_sar/.gitignore: log -> /log (root-only) - Add 9 missing unitree_sdk2 log headers from upstream v2.0.0 - Update Dockerfile with remaining ROS2 build dependencies
…hreading segfaults, and add sensor_msgs dependency
…ct ground alignment
…oint_mapping over policy mapping during locomotion
…bility in simulation
… joint_states publishing
- Add .gitmodules for src/rl_sar/src/rl_sar_zoo (fan-ziqi/rl_sar_zoo) - Remove rl_sar_zoo from src/rl_sar/.gitignore (now tracked as submodule) - Update README: add COLCON_IGNORE touch and package.xml symlinks to clone steps
- Restore g1_29dof.urdf LiDAR to original (1440 samples, 20Hz, horizontal) - Inline sun and ground_plane into turtlebot3_house.world (GAZEBO_MODEL_DATABASE_URI='' blocks downloads)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a complete containerized development setup, fixes simulation stability and visual fidelity,
and restructures
rl_sar_zooas a proper git submodule. All changes target the Unitree G1 29-DoF humanoidnavigating via Nav2 in a Gazebo + MuJoCo co-simulation.
Key changes
Docker environment (
docker/)Dockerfile+docker-compose.ymlfor ROS 2 Humble with MuJoCo, Gazebo Classic, and Nav2Gazebo ↔ MuJoCo segment-to-segment synchronization (
gazebo_mujoco_pose_sync)gazebo_ros::Node(was raw Gazebo plugin), fixing multithreading segfaults that crashedgzservergzservercrashes. A future system is planned to relay obstacle information from Gazebo/sensors back to MuJoCo for physics-aware collision handlingTexture and visual fixes
turtlebot3_housemodel (model.sdf)sunandground_planemodels intoturtlebot3_house.world(required becauseGAZEBO_MODEL_DATABASE_URI=""inspawn_g1.launch.pyblocks online model downloads)rl_sar modifications (
src/rl_sar/)/mujoco/joint_statesassensor_msgs/JointStatefsm_g1.hpp: use hardware mapping (not policy mapping) during locomotion#includein 8unitree_sdk2/log/*.hppheaders.gitignorerules (was ignoring files outside rl_sar)build.shscript path referencesG1 description & Gazebo launch (
g1_description,g1_gazebo)z_offsetto -0.82 for correct ground alignmentNav2 stack (
g1_nav2,humanoid_nav_bridge)nav_amcl.launch.pyconfiguration for AMCL + costmapsg1_map.pgm,g1_map.yaml)mujoco_to_gazebo_node.pybridge noderl_sar_zoo as git submodule
src/rl_sar/src/rl_sar_zooas submodule →fan-ziqi/rl_sar_zoo(was downloaded at build time bybuild.sh)rl_sar_zoofromsrc/rl_sar/.gitignore(now tracked as submodule)COLCON_IGNOREtouch andpackage.xmlsymlink steps after cloneHow to test
Architecture note:
Gazebo acts as a sensor server (LiDAR, camera) and visualizer only. MuJoCo owns all physics.
Obstacle information currently flows one-way (Gazebo sensors → Nav2 → MuJoCo via /cmd_vel).
Direct obstacle-to-MuJoCo relay for contact-aware locomotion is planned as future work.
2026-03-25.23-59-50.mp4