IR-SIM is an open-source, lightweight robot simulator based on Python, designed for robotics navigation, control, and learning. This simulator provides a simple and user-friendly framework for simulating robots, sensors, and environments, facilitating the development and testing of robotics algorithms with minimal hardware requirements.
Project description
Intelligent Robot Simulator (IR-SIM)
A lightweight, YAML-driven robot simulator for navigation, control, and learning
Overview
IR-SIM is an open-source, Python-based, lightweight robot simulator designed for navigation, control, and learning. It provides a simple, user-friendly framework with built-in collision detection for modeling robots, sensors, and environments. Ideal for academic and educational use, IR-SIM enables rapid prototyping of robotics and learning algorithms in custom scenarios with minimal coding and hardware requirements.
Key Features
- Simulate robot platforms with diverse kinematics, sensors, and behaviors (support).
- Quickly configure and customize scenarios using straightforward YAML files. No complex coding required.
- Visualize simulation outcomes using a naive visualizer matplotlib for immediate debugging.
- Support collision detection and customizable behavior policies for each object.
- Suitable for mutli-agent/robot learning (Projects).
Demonstrations
|
Multi-Robot RVO Collision Avoidance Source |
Ackermann Robot with 2D LiDAR Source |
HM3D / MatterPort3D Grid Map Source |
|
Field-of-View Detection Source |
Dynamic Random Obstacles Source |
200-Agent ORCA via pyrvo Source |
Installation
Requires Python >= 3.10
pip
pip install ir-sim
# Optional: keyboard control and all extras
pip install ir-sim[all]
From source
git clone https://github.com/hanruihua/ir-sim.git
cd ir-sim
pip install -e .
uv
git clone https://github.com/hanruihua/ir-sim.git
cd ir-sim
uv sync
Quick Start
A minimal example: a differential-drive robot navigates toward a goal using the built-in dash behavior.
import irsim
env = irsim.make('robot_world.yaml') # initialize the environment with the configuration file
for i in range(300): # run the simulation for 300 steps
env.step() # update the environment
env.render() # render the environment
if env.done(): break # check if the simulation is done
env.end() # close the environment
YAML Configuration: robot_world.yaml
world:
height: 10 # the height of the world
width: 10 # the width of the world
step_time: 0.1 # 10Hz calculate each step
sample_time: 0.1 # 10 Hz for render and data extraction
offset: [0, 0] # the offset of the world on x and y
robot:
kinematics: {name: 'diff'} # omni, diff, acker
shape: {name: 'circle', radius: 0.2} # radius
state: [1, 1, 0] # x, y, theta
goal: [9, 9, 0] # x, y, theta
behavior: {name: 'dash'} # move toward to the goal directly
color: 'g' # green
For more examples, see the usage directory and the documentation.
Support
| Category | Features |
|---|---|
| Kinematics | Differential Drive mobile Robot · Omnidirectional mobile Robot · Ackermann Steering mobile Robot |
| Sensors | 2D LiDAR · FOV Detector |
| Geometries | Circle · Rectangle · Polygon · LineString · Binary Grid Map |
| Behaviors | dash (move directly toward goal) · RVO (Reciprocal Velocity Obstacle) · ORCA (Optimal Reciprocal Collision Avoidance) |
Documentation
- English: https://ir-sim.readthedocs.io/en
- Chinese (中文): https://ir-sim.readthedocs.io/zh-cn
Projects Using IR-SIM
Academic Publications
- [RAL & ICRA 2023] rl-rvo-nav -- Reinforcement learning-based RVO behavior for multi-robot navigation.
- [RAL & IROS 2023] RDA_planner -- Accelerated collision-free motion planner for cluttered environments.
- [T-RO 2025] NeuPAN -- Direct point robot navigation with end-to-end model-based learning.
Community Projects
- DRL-robot-navigation-IR-SIM -- Deep reinforcement learning for robot navigation.
- AutoNavRL -- Autonomous navigation using reinforcement learning.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Acknowledgement
License
IR-SIM is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ir_sim-2.9.3.tar.gz.
File metadata
- Download URL: ir_sim-2.9.3.tar.gz
- Upload date:
- Size: 760.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
157970e123ab9463d5b78424b7bdea84ef06a2d1d90896ac4d42b52b9fa46a7f
|
|
| MD5 |
0f27206f5affaea51ca836c813da0238
|
|
| BLAKE2b-256 |
6b66e0b9a24a0e7b44fe3e98d5d8ec35dc42dee7aaf4fd3449b9f3040ecc3560
|
File details
Details for the file ir_sim-2.9.3-py3-none-any.whl.
File metadata
- Download URL: ir_sim-2.9.3-py3-none-any.whl
- Upload date:
- Size: 718.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9672ec844969f1f63b7eebc4c708ce831d150eec35bce725f66a15ad71acab73
|
|
| MD5 |
6e9c6b1f83cfed68398f008f4a7733eb
|
|
| BLAKE2b-256 |
e4be760ab413db0968a7e300b38a93bf9fbf75ed728cc052d11d1ec18b7766e2
|