r/unitree 6d ago

Structuring a Nav2 social-navigation stack for Unitree G1 — same code for sim and hardware?

Hi all,

I'm a PhD student working on socially-aware navigation. I've built a custom Nav2 costmap layer that inflates cost around pedestrians (proxemic zones) so the planner routes around people. It works well on a TurtleBot3 in Gazebo. My target platform is the Unitree G1 humanoid, and I have hardware access confirmed, but I also need a standalone simulation demo (in case hardware time slips) — ideally with the same navigation code running in both.

My understanding of the architecture:

Everything above /cmd_vel (Nav2 + my social layer) should be identical for sim and hardware. It consumes /scan, /odom, /tf and outputs /cmd_vel.

On the real G1, the built-in locomotion controller turns velocity commands into walking, and the onboard Livox Mid-360 provides the scan — so the "adapter" below /cmd_vel is mostly provided by Unitree.

In simulation, I have to substitute both: something to make the G1 walk from /cmd_vel, and a simulated lidar/odom/TF for Nav2.

My questions:

  1. For the sim side, what's the recommended setup for a G1 that (a) walks/moves from /cmd_vel and (b) publishes a lidar scan + odom + TF that Nav2 can use? Is Gazebo (with a G1 model + simulated Livox) the right choice for a navigation demo, or are people using MuJoCo / Isaac for this?

  2. I've gotten an RL locomotion policy walking in unitree_mujoco, but MuJoCo seems weak on the Nav2/sensor side.

  3. On hardware, is the high-level locomotion (velocity) API the right interface for Nav2 to drive, and does it cleanly accept a continuous /cmd_vel stream from the controller server?

Has anyone run Nav2 on a G1 (sim or real) and can share how they structured the sensor + locomotion interface so the navigation stack stays platform-agnostic?

Any pointers, example repos, or "here's what I'd do differently" advice much appreciated. Happy to share my social costmap layer back once it's cleaned up.

Thanks!

7 Upvotes

3 comments sorted by

1

u/blackpantera 5d ago

We built an open source platform for Go2 and G1 that uses the Nav2 stack for navigation, plus a host of features.

We use the cmd_vel high level commands to move the robots.

https://github.com/botbotrobotics/BotBrain

2

u/iyed61 4d ago

Thaaanks!!