GettingStarted - OmniLRS/OmniLRS GitHub Wiki
In this page we'll explore how you can start a simulation!
First, let's briefly see how configurations are managed. Our simulation uses hydra to manage the configuration of the differement simulation element.
Tip
Learn more about hydra here!
Our base config is organized around 4 main files:
- environment: Defines everything that deals with the environment to be simulated.
- mode: Defines what mode should be use, ROS1, ROS2, or synthetic data generation.
- rendering: Defines everything that relates to the rendering.
- physics: Defines everything that relates to the physics engine.
Caution
The following assumes you are running ROS2 (or SpaceROS). While the code has ROS1 compatibility, we do not provide base configs or robots for ROS1.
Important
We strongly recommend using docker. If you are using the native installation instead, see helpful hints at the end of this page.
- Run the OmniLRS docker container:
./omnilrs.docker/run_docker.sh
You can then run every command inside the docker.
- Run the default lunalab scene using:
/isaac-sim/python.sh run.py
This is equivalent to /isaac-sim/python.sh run.py environment=lunalab
and will launch a lunalab environment with ROS2 and ray_traced rendering.
- Similarly, you can run the lunaryard or largescale environments by using:
/isaac-sim/python.sh run.py environment=lunaryard_20m
# and
/isaac-sim/python.sh run.py environment=largescale
Tip
Once the simulation is fully loaded and the isaacsim asset tree is populated, select the 'Robots' and press 'F' on your keyboard: this will center the scene on the robot
Tip
The first time loading a scene can take a few minutes (depending on the scene and your hardware) due to isaacsim preparing the cache. Next loads will be much faster.
Tip
To learn more about how to run different scenes and different rovers please refer to the Wiki Configuration Page!
- You can send commands via ROS to have the rover move in the environment. For example, it's convenient to use the ROS2 keyboard teleop package. One way to do that is to open a new terminal, and exec into the already running docker container:
# <in a new terminal>
docker exec -it isaac-sim-omnilrs-container /bin/bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Tip
You can run the default IsaacSim app from the OmniLRS docker container as well. This gives you the GUI with access to the OmniLRS assets folder and the same environment as the full OmniLRS simulation stack. Useful for editing USD assets, testing and working on small parts that don't require the full OmniLRS stack! Just run /isaac-sim/runapp.sh
Deformable lunalab:
/isaac-sim/python.sh run.py environment=lunalab_deformable
Deformable lunaryard:
/isaac-sim/python.sh run.py environment=lunaryard_20m_deformable
Larger lunaryard:
/isaac-sim/python.sh run.py environment=lunaryard_40m
Important
If you are using the native installation, please follow the ROS2 installation process in particular this part Make sure Nucleus is running. Make sure ROS2 is sourced before running the simulation.
To run isaac use the same commands as above but replace the /isaac-sim/python.sh
used in docker with ~/.local/share/ov/pkg/isaac_sim-2023.1.1/python.sh