POSCO Industrial AI Robot Challenge 2025

1st PlaceInterpolate start reference image.

1Robotics Innovatory, SKKU 2LAIR, SKKU
Interpolate start reference image.

System Architecture

We've structured our system architecture using the diagram below with each box performing an independent role.
The optimized robot state is calculated using the robot's proprioceptive sensor information (IMU, Joint encoder) and extereoceptive sensor information (LiDAR). (Green box)
And then, we generate an A* based global path to the goal point with the prebuilt map, and compute the optimized robot state and commands to be given to the robot using and MPC based local planner. (Yellow box)
Locomotion is performed by selecting various gaits such as walking, low posture walking, and jumping according to the input command and given situation. (Blue box)
Additionally, we utilize key regions and robot sensor information required to make the robot perform various missions such as jump detection, dynamic obstacle avoidance, and traffic signal detection. (Red box)

Interpolate start reference image.

Control

The locomotion controller can operate fully autonomously based on commands from the path planner. However, a separated control mode is provided for joystick control in situations requiring user intervention, such as mission failures or robot falls. When receiving a target gait command, it selects various RL policies being computed in the background or SDK controller functions based on that value to perform the robot's locomotion.

Interpolate start reference image.

State Estimation

This module includes a SLAM system for building a 3D point cloud map and a localization system for estimating the robot’s 6D pose on the pre-built map.

Our SLAM and localization framework is based on LIO (LiDAR-Inertial Odometry) with leg odometry, utilizing two LiDAR sensors and one IMU :

- LiDARs : Hesai XT16 and Unitree L1, The L1 LiDAR is used mainly for observing the ground surface, since in the competition environment the XT16 LiDAR alone could not capture it reliably.
- IMU : The onboard IMU integrated in Unitree Go2 is used.
- Leg odometry : The joint measurements, contact information, and angular velocity of the Unitree Go2 are utilized. Their subsequent preintegration is applied within the SLAM framework.

Planner

Global Path Planner

Our global path planner is built on an occupancy grid map created by projecting the SLAM-based point cloud into 2D, combined with the A* algorithm. In the competition setting, the robot only needs to navigate through designated corridors, and the safest path is always along the center of the corridor — where the robot maintains equal distance from obstacles. To find this path, we calculate a signed distance field (SDF) from the occupancy grid map and derive its gradient. By masking the pixels near the zero-level gradient, we create what we call a zero-SDF gradient map. These masked pixels represent the central lines of corridors, equidistant from obstacles. We then restrict A* search to this reduced set of valid pixels. This approach not only reduces the search space within narrow corridors, but also provides a high-quality initial guess for the local path planner, which subsequently refines the trajectory while considering detailed obstacle avoidance.

Local Path Planner

The local path planner refines the trajectory provided by the global path, ensuring smooth and dynamically feasible motions. It incorporates real-time obstacle avoidance using a signed distance field (SDF) approximation and optimizes the control inputs through a model predictive control (MPC) framework. At each planning step, the MPC considers future states over a finite horizon and selects inputs that minimize control effort while respecting safety constraints around obstacles. This enables the robot to follow the global path reliably, while adapting to sudden changes in the environment such as dynamic obstacles or narrow passages.

Task Modules

Jump Detector

We leveraged lidar data to obtain ground information. The lowest points from the robot's front were identified as the ground, and simple noise removal was used to cluster ground heights. Due to the sensor's field of view, we improved the accuracy of the robot's jump location by recognizing steps further away from the jump platform, rather than directly in front of it.

Dynamic Obstacle Detector

We uses 2D Laser Scan format data, converted from Hesai 3D LiDAR (for Hanging Obstacles) and L1 LiDAR (for Positive Obstacles) inputs, to continuously monitor for dynamic obstacles entering a predefined Key Region. Upon detection of an obstacle within the Key Region, a Stop signal is immediately sent to the planner; conversely, if the Key Region is clear, a Go signal is transmitted, allowing the robot to continue its operation.

Traffic Signal Detector

We employ the YOLOv8 model for traffic light detection. YOLOv8 identifies whether a traffic light is present and localizes its bounding region. Once detected, our module analyzes the region by counting red and green pixels to determine the current traffic signal.

Video

jump
dynamic obstacle
overhanging obstacle
narrow space
stair
uneven terrain
traffic signal
sprint