CrowdROS
A crowd simulation platform for social robot navigation integrating ROS 2 and Unity to train and evaluate social robot navigation in diverse crowd environments.
Overview
CrowdROS is a comprehensive crowd simulation platform designed specifically for social robot navigation. It bridges the gap between robotic control and realistic human behavior simulation, providing a unified environment to develop, train, and benchmark navigation algorithms. The platform allows for the creation of complex scenarios where robots must navigate alongside simulated humans with diverse, customizable behaviors.
System Architecture
CrowdROS features a modular architecture that integrates several key components:
- ROS 2 Integration: The platform connects directly with ROS 2, allowing it to communicate with standard robotic planners (like Nav2) and reinforcement learning (RL) policies. It handles the publishing of sensor data (odometry, camera, LiDAR, laser scans) and the subscription of robot control commands (velocity, goal).
- Unity Simulation Platform: Unity serves as the core simulation engine, providing realistic 3D environments (e.g., indoor rooms, warehouses, streets). It uses motion matching to generate fluid, behavior-consistent human animations from a motion database.
- Crowd Simulation Engine (UMANS): The platform utilizes the UMANS engine to simulate human navigation models, offering a variety of physics-based and reinforcement learning-based policies.
- ROS-TCP Connector: A crucial component that enables real-time communication between the ROS 2 ecosystem and the Unity simulation environment, allowing for multi-modal sensor data exchange.
Key Features
- Diverse Human Behaviors: The platform supports assigning different behavioral models to individual human agents within the same environment. This enables the simulation of heterogeneous crowds where agents navigate using various collision-avoidance and path-planning strategies (e.g., HCA, ORCA, SFM).
- Customizable Scenarios: CrowdROS includes a scenario authoring UI that simplifies the setup process. Users can select a scene, assign start and goal positions for humans and robots, and configure specific properties (like preferred speed and navigation method) for each agent.
- Multi-Modal Sensor Simulation: The platform simulates various robot sensors, including cameras, IMUs, and LiDAR, providing realistic inputs for robot navigation algorithms.
- Benchmarking and Logging: Built-in logging tools allow for the systematic evaluation and benchmarking of different robot navigation policies against various crowd scenarios.
Scenario Authoring and Simulation
The workflow for creating a scenario in CrowdROS is straightforward:
- Scene Selection: Choose from predefined 3D environments.
- Agent Placement: Assign start and goal positions for both human agents and the robot.
- Agent Configuration: Customize the behavior of each human agent by selecting specific navigation models and setting preferred speeds.
- Simulation Execution: The simulated environment runs, with human agents dynamically adapting their paths to avoid collisions with each other and the robot, while the robot executes its navigation policy.