Skip to content

Commit bcc0228

Browse files
Remove errors
1 parent 68358e0 commit bcc0228

1 file changed

Lines changed: 19 additions & 30 deletions

File tree

wiki/robotics-project-guide/choose-a-sim.md

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -184,17 +184,6 @@ For complex scenarios, users can enhance simulations by adding custom force mode
184184

185185
## Determining the Right Simulator for Your Project
186186

187-
Before selecting a simulator, consider the following questions:
188-
189-
- **Integration with ROS/ROS2**: Does your project utilize the Robot Operating System (ROS)? If so, compatibility is essential.
190-
- **Physics Simulation**: Is accurate physics modeling necessary, especially for machine learning or reinforcement learning applications? Of course, accurate physics engine usually helps. But in some cases, it may suffice to just have a visualizer such as RViz or a low-fidelity physics engine.
191-
- **Customizability**: Do you require the ability to create custom models or environments? If you built the robot yourself, then you would most likely want a way to simulate your custom robot. Luckily, most simulators provide a way to do this.
192-
- **Budget Constraints**: Are there financial limitations that necessitate the use of free or open-source tools?
193-
- **Operating System Compatibility**: What platforms does the simulator support (e.g., Windows, macOS, Linux)?
194-
- **Visualization Requirements**: Do you need photorealistic rendering for tasks like computer vision? Even when you use computer vision, the chances are that you wouldn't need photorealistic rendering. As long as the simulator can render the environment to a certain standard for object detection, it should suffice.
195-
196-
## Determining the Right Simulator for Your Project
197-
198187
Before selecting a simulator, consider the following criteria:
199188

200189
### 1. Ecosystem and Compatibility
@@ -207,7 +196,7 @@ Before selecting a simulator, consider the following criteria:
207196
* **Visualization and Rendering:** If your project involves computer vision, evaluate the rendering engine. While object detection often only requires standard 3D rendering, tasks involving light-sensitive sensors or photorealistic sim-to-real transfer may require ray-tracing capabilities provided by platforms like NVIDIA Isaac Sim or Unity.
208197
* **Customizability:** Evaluate the ease of importing custom robot models (via URDF, MJCF, or USD) and procedurally generating environments. If you are developing unique hardware, the ability to accurately model its mass properties and joint limits is a non-negotiable requirement.
209198

210-
**Pro-Tip: **You can often circumvent these version mismatches by using Docker containers to run legacy ROS environments on a modern host OS, or by manually installing mainline kernels to support new hardware on older Ubuntu builds. However, the downside is added complexity: both of these may introduce networking issues, GUI X11 forwarding, overhead in GPU passthrough, real-time kernel issues, etc.
199+
**Pro-Tip**: You can often circumvent these version mismatches by using Docker containers to run legacy ROS environments on a modern host OS, or by manually installing mainline kernels to support new hardware on older Ubuntu builds. However, the downside is added complexity: both of these may introduce networking issues, GUI X11 forwarding, overhead in GPU passthrough, real-time kernel issues, etc.
211200

212201
### 3. Sustainability and Maintenance
213202
* **Software Health and EOL:** For production environments, integrating simulators that lack updates for modern operating systems or hardware architectures may lead to technical dead-ends. Prioritize software that has reached a stable version and has not been flagged for **End-of-Life (EOL)**.
@@ -221,9 +210,9 @@ We first go over some popular simulators tailored for robotics applications.
221210
| **Simulator** | **Physics-Based** | **ROS Integration** | **Cost** | **Computation Speed** | **Supported OS** | **Customizability** |
222211
|---------------|-------------------|---------------------|----------|-----------------------|------------------|---------------------|
223212
| Gazebo | Yes | Best | Free | Moderate | Linux, macOS | Very High |
224-
| AirSim | Yes | Limited | Free | Resource-Intensive | Windows, Linux | High (for drones) |
213+
| Colosseum | Yes | Limited | Free | Resource-Intensive | Windows, Linux | High (for drones) |
225214
| CoppeliaSim | Yes | Yes | Free*/Paid | Moderate | Windows, macOS, Linux | Very High |
226-
| Unity | Adjustable | With Plugins | Free*/Paid | Variable | Windows, macOS, Linux | Very High |
215+
| Unity | Adjustable | With Plugins | Free*/Paid | Variable | Windows, macOS, Linux | Very High |
227216

228217
*Free for personal or educational use; commercial licenses may apply.
229218

@@ -232,6 +221,8 @@ We first go over some popular simulators tailored for robotics applications.
232221

233222
Gazebo is a widely-used open-source robotics simulator that offers robust physics simulation and sensor modeling capabilities. It provides a 3D environment where users can test and develop robots in realistic scenarios. Gazebo's integration with the Robot Operating System (ROS) makes it a standard choice for many robotics projects, facilitating seamless communication between simulation and real-world applications.
234223

224+
**Note**: It is important to distinguish between Gazebo Classic (versions 1-11) and the modern Gazebo (formerly Ignition). Gazebo Classic reached its official End-of-Life (EOL) in January 2025. You can read more about the switch [here](https://gazebosim.org/about).
225+
235226
**Pros**:
236227
- **ROS Integration**: Seamless compatibility with ROS, making it a standard choice for many robotics projects.
237228
- **Physics-Based**: Offers realistic physics simulations, including gravity, inertia, and collision detection.
@@ -243,9 +234,9 @@ Gazebo is a widely-used open-source robotics simulator that offers robust physic
243234
- **Computation Speed**: Can be resource-intensive, potentially leading to slower simulations on less powerful hardware.
244235
- **Learning Curve**: May require time to master its extensive features and functionalities.
245236

246-
### [AirSim (on Unity)](https://microsoft.github.io/AirSim/Unity/?utm_source=chatgpt.com)
237+
### [Colosseum (successor to AirSim)](https://codexlabsllc.github.io/Colosseum/)
247238
![airsim_sim](/assets/images/robotics-project-guide/airsim_sim.png)
248-
Developed by Microsoft, AirSim is an open-source simulator designed primarily for drones and autonomous vehicles. Built on the Unreal Engine, it provides high-fidelity visuals and accurate physics modeling, making it suitable for machine learning and computer vision research. AirSim supports both software-in-the-loop and hardware-in-the-loop simulations, allowing for seamless transitions from virtual to real-world testing.
239+
Originally developed by Microsoft and now maintained by the community under the Colosseum project, it is an open-source simulator designed for drones and autonomous vehicles. It is primarily built on Unreal Engine 5 (also supports Unity), providing photorealistic visuals and high-fidelity physics modeling essential for machine learning and computer vision research. Colosseum supports both software-in-the-loop (SITL) and hardware-in-the-loop (HITL) simulations with popular flight controllers like PX4 and ArduPilot, enabling reliable sim-to-real transitions.
249240

250241
**Pros**:
251242
- **Photorealistic Visualization**: Built on Unreal Engine, providing high-fidelity visuals suitable for computer vision tasks.
@@ -298,18 +289,18 @@ As the field of robotics increasingly incorporates reinforcement learning (RL) t
298289

299290
| **Simulator** | **Speed** | **Cost** | **Language Support** | **Learning Curve*** | **Parallelizability** | **GPU Support** | **CPU Support** | **Physics Accuracy** | **Visualization Quality** |
300291
|---------------|-----------|----------|----------------------|--------------------|-----------------------|------------------|------------------|----------------------|---------------------------|
301-
| **MuJoCo** | High | Paid | Python, C | Moderate | Limited | Yes | Yes | High | Moderate |
292+
| **MuJoCo** | High | Free | Python, C | Moderate | Limited(High with MJX) | Yes | Yes | High | Moderate |
302293
| **PyBullet** | Moderate | Free | Python, C++ | Low | Moderate | Limited | Yes | Moderate | Basic |
303294
| **Isaac Lab** | High | Free | Python | High | High | Yes | Yes | High | High |
304295

305-
**Learning Curve* may be subjective, but the overall consensus ay be that Isaac Lab is the most difficult to learn.
296+
**Learning Curve* may be subjective, but the general consensus is that Isaac Lab is the most difficult to learn.
306297

307-
### OpenAI Gym
298+
### Gymnasium (successor to OpenAI Gym)
308299

309300
![openaigym_sim](/assets/images/robotics-project-guide/openaigym_sim.png)
310301

311-
OpenAI Gym is a widely-used toolkit for developing and comparing reinforcement learning algorithms. It provides a standardized API to interact with a variety of environments, ranging from simple tasks to complex simulations. Many RL training simulators are built upon the Gym framework, making it a foundational tool in the RL community.
312-
OpenAI Gym itself is not a single physics engine or simulator. Instead, it’s a framework that provides a standardized API for a large collection of reinforcement learning environments. Many other RL simulators follow the conventions used in Gym.
302+
Gymnasium is a widely-used toolkit for developing and comparing reinforcement learning algorithms. It provides a standardized API to interact with a variety of environments, ranging from simple tasks to complex simulations. Many RL training simulators are built upon the Gymnasium framework, making it a foundational tool in the RL community.
303+
Gymnasium itself is not a single physics engine or simulator. Instead, it’s a framework that provides a standardized API for a large collection of reinforcement learning environments. Many other RL simulators follow the conventions used in Gymnasium.
313304

314305
**Pros**:
315306
- **Standardized Interface**: Offers a consistent API across diverse environments, simplifying algorithm development.
@@ -323,10 +314,9 @@ OpenAI Gym itself is not a single physics engine or simulator. Instead, it’s a
323314
- **Visualization**: Basic rendering capabilities; not suitable for photorealistic needs.
324315

325316
**Resources**:
326-
- **Documentation**: [OpenAI Gym Documentation](https://www.gymlibrary.dev/content/tutorials/)
327-
- **Tutorial**: [Getting Started With OpenAI Gym](https://blog.paperspace.com/getting-started-with-openai-gym/)
328-
- **Community**: [OpenAI Gym GitHub Discussions](https://github.com/openai/gym/discussions)
329-
- **GitHub**: [OpenAI Gym Repository](https://github.com/openai/gym)
317+
- **Documentation**: [Gymnasium Documentation](https://gymnasium.farama.org/)
318+
- **Community**: [Gymnasium GitHub Discussions](https://github.com/Farama-Foundation/Gymnasium/discussions)
319+
- **GitHub**: [Gymnasium Repository](https://github.com/farama-foundation/gymnasium)
330320

331321
### MuJoCo
332322

@@ -341,13 +331,12 @@ MuJoCo (Multi-Joint dynamics with Contact) is a physics engine designed for fast
341331
- **Supported OS**: Compatible with Windows, macOS, and Linux.
342332

343333
**Cons**:
344-
- **Cost**: Requires a paid license, which may be a consideration for budget-conscious projects. Education license is free, however.
345334
- **Learning Curve**: May require time to master its extensive features and functionalities.
346335

347336
**Resources**:
348337
- **Documentation**: [MuJoCo Documentation](https://mujoco.readthedocs.io/)
349-
- **Tutorial**: [MuJoCo Basics Tutorial](https://www.roboti.us/training.html)
350-
- **Community**: [MuJoCo Forum](https://mujoco.org/forum)
338+
- **Tutorial**: [MuJoCo Programming Tutorial](https://mujoco.readthedocs.io/en/latest/programming/)
339+
- **Community**: [MuJoCo Github Discussions](https://github.com/google-deepmind/mujoco/discussions)
351340
- **GitHub**: [MuJoCo Repository](https://github.com/deepmind/mujoco)
352341

353342
### PyBullet
@@ -368,7 +357,7 @@ PyBullet is an open-source physics engine that offers real-time simulation of ri
368357

369358
**Resources**:
370359
- **Documentation**: [PyBullet Quickstart Guide](https://pybullet.org/wordpress/quickstart-guide/)
371-
- **Tutorial**: [PyBullet Robotics Simulation](https://www.etedal.net/2020/04/pybullet-panda.html)
360+
- **Tutorial**: [Hello PyBullet (Official Colab)](https://colab.research.google.com/github/bulletphysics/bullet3/blob/master/examples/pybullet/notebooks/HelloPyBullet.ipynb)
372361
- **Community**: [PyBullet Google Group](https://groups.google.com/g/bulletphysics)
373362
- **GitHub**: [PyBullet Repository](https://github.com/bulletphysics/bullet3)
374363

@@ -407,7 +396,7 @@ For a deeper understanding of physics simulation in robotics, consider exploring
407396

408397
- [Gazebo Physics Documentation](https://github.com/gazebosim/gz-physics)
409398

410-
- [Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning](https://arxiv.org/abs/2108.10470)
399+
- [Isaac Lab: A GPU-Accelerated Simulation Framework for Multi-Modal Robot Learning](https://arxiv.org/pdf/2511.04831)
411400

412401
- [Implementing a Fourth Order Runge-Kutta Method for Orbit Simulation](https://spiff.rit.edu/richmond/nbody/OrbitRungeKutta4.pdf)
413402

0 commit comments

Comments
 (0)