Safe Control Density

Quadruped Social Navigation

Social navigation brings the dynamic-obstacle framework onto a Unitree Go1 operating in crowded environments. People are identified online and incorporated as moving obstacles. At 10 Hz, a high-level planner models the robot as a unicycle and continuously updates a safe motion plan so the robot can move through a crowd while maintaining separation from nearby pedestrians. Backstepping converts this plan into forward-velocity and yaw-rate commands, and a separate baseline tracking controller, such as an MPC locomotion controller, follows these commands on the quadruped.

Run

ROS 2 launch instructions, experiment code, and the complete robot setup will be available on the full project page.

System Dynamics

$$ \begin{aligned} x_{k+1} &= x_k+\Delta t\,v_k\cos\theta_k,\\ y_{k+1} &= y_k+\Delta t\,v_k\sin\theta_k,\\ \theta_{k+1} &= \theta_k+\Delta t\,\omega_k. \end{aligned} $$

Density Feedback Controller

The planar density gradient gives a desired direction in \(x,y\). The unicycle tracks that direction by choosing a forward speed and yaw-rate command that align the heading with the density-gradient direction.

$$ \begin{aligned} u_\rho(x_k,y_k) &= k_\rho\nabla\rho(x_k,y_k),\\ v_k &= \operatorname{sat}_{[0,v_{\max}]}\|u_\rho\|,\\ \theta_d &= \operatorname{atan2}(u_{\rho,y},u_{\rho,x}),\\ \omega_k &= \operatorname{sat}_{[-\omega_{\max},\omega_{\max}]} \left(k_\theta\operatorname{wrap}(\theta_d-\theta_k)\right). \end{aligned} $$

Robot Setup

The complete perception, planning, and control pipeline runs onboard the robot through ROS 2.

Unitree Go1

The Go1 provides the quadruped mobility platform. Its baseline tracking controller receives the desired forward-velocity and yaw-rate commands and executes them through the robot's locomotion interface.

Onboard perception and compute

A ZED 2i camera observes the space ahead of the robot, and an NVIDIA Jetson AGX Orin performs the online perception and motion planning computations.

Planning and Control

Each ROS 2 update identifies the current human obstacles and updates the dynamic environment. The 10 Hz high-level planner then produces a safe unicycle motion plan, backstepping converts that plan into desired velocity commands, and a separate baseline controller tracks those commands on the Go1.

1. Perception

The ZED 2i supplies the observations used to identify nearby people online and represent them as moving obstacles.

2. Unicycle planning and backstepping

At 10 Hz, the dynamic-obstacle planner models the Go1 as a unicycle and updates a safe motion plan around the detected pedestrians. Backstepping converts this plan into desired forward-speed \(v\) and yaw-rate \(\omega\) commands.

3. Baseline command tracking

A separate lower-level tracking controller, such as an MPC-based locomotion controller, follows the commanded \(v\) and \(\omega\) on the physical Go1.

Hardware Experiments

Four runs demonstrate the Go1 navigating among moving pedestrians. Each synchronized dashboard combines the third-person experiment, onboard camera view, local planning view, commanded forward speed and yaw rate, and closest-pedestrian distance.

Full Project

Additional implementation details, software, and experiment results will be available with the complete project.