IRT-sim is an open-source Formula Student autonomous vehicle simulation designed to help teams test their AI software in a virtual environment. It leverages the Gazebo simulator to simulate rule-compliant tracks from dynamic events at competitions Formula Student. Additionally, users can test their software on randomly generated tracks to prepare for "blind" events such as autocross, track drive or acceleration
The simulator is highly configurable, allowing teams to customize vehicle models, weather conditions, command modes, and more using our integrated launcher. With this tool, teams can simulate the entire competition with their own vehicle model long before the actual event!.
This project is based on eufs_sim, an established simulation framework developed for Formula Student teams. We have adapted and extended eufs_sim to better suit our needs, integrating it into a Docker-based workflow for improved accessibility and ease of deployment. The core components, including track generation, vehicle models, and sensor plugins, remain heavily inspired by eufs_sim, ensuring compatibility with its robust feature set while introducing enhancements tailored to our use case.
Key features inherited from eufs_sim include:
- Rule-compliant tracks for dynamic events such as SkidPad, Acceleration, and Track Drive.
- Randomly generated tracks for testing AI performance in unknown environments.
- Customizable vehicle models and simulation parameters via an intuitive launcher interface.
- Comprehensive support for sensors, including LiDAR, GPS, IMU, and cameras, through Gazebo plugins.
To run IRT-sim, you need:
- A machine capable of running Docker.
- A modern web browser to access the VNC interface.
- Basic knowledge of Docker and ROS 2.
Note: This version of IRT-sim is containerized and does not require manual installation of ROS 2 or other dependencies. All components are pre-configured within the Docker image.
IRT-sim runs inside a Docker container and provides a VNC interface for visualization. Here's how it works:
- Docker Container: The simulator and all its dependencies are packaged into a Docker image.
- VNC Interface: Once the container is running, you can access the simulation GUI via a browser using VNC.
- Customization: Use the provided launcher to configure tracks, vehicle models, weather conditions, and other parameters.
This setup simplifies deployment and ensures consistency across different environments.
Ensure Docker is installed on your system. You can download it from here.
Clone this repository to your local machine:
git clone https://github.com/fs-itmo/irt-sim
cd irt-sim
Use the provided scripts to build and launch the Docker container:
./docker/build.bash
./docker/run.bash
Once the container is running:
- Open a web browser.
- Navigate to http://127.0.0.1:6080/ to access the VNC interface.
- Open Terminator and run simulator
bash ./run_sim.sh
- Use the GUI to interact with the simulation.
This project contains several packages that work together to provide a complete simulation environment. Below is a brief overview of each package:
- irt_racecar: Contains launch files, URDF models, and resources for the simulated vehicle.
- irt_launcher: Configures and launches the simulation with customizable parameters.
- irt_models: Implements vehicle physics and dynamics.
- irt_plugins: Gazebo plugins for simulating sensors, vehicles, and other components.
- irt_tracks: Provides track generator tools and resource files for predefined and randomly generated tracks.
- irt_sensors: Includes sensor meshes and URDF files for simulating lidars, cameras, GPS, and IMUs.
- irt_rqt: Offers rqt GUIs for mission control, robot steering, and other utilities.
For additional documentation, tutorials, and troubleshooting guides, refer to the following resources:
If you want to extend or modify the simulator:
- Add custom vehicle models under
irt_racecar/robots
. - Create new tracks by modifying files in
irt_tracks/csv
andirt_tracks/worlds
. - Develop custom Gazebo plugins in
irt_plugins
.
IRT-sim is released under the MIT License. Feel free to use, modify, and distribute this software as needed.
- Create Wiki
- Make GitHub Workflow for CI/CD