Robot simulation for the Innovation Space Bachelor End Project (ISBEP)
Another repository contains the updated multi-agent exploration simulation code that was created by an electrical engineering student during the ISBEP project. The features described for this repository consider the technical features that can be used for integrating the simulation with the ISBEP-Server.
The settings.py file contains most of the parameters that can be altered for the simulation and the accompanying features of this repository. For example in this file you can specify where to export simulation data to by changing the export parameters.
In order to communicate data from the simulation to the server a TCP client is created. In the settings the connection can be enabled/disabled and the port and address can be set. The connection folder contains the protocol for creating the TCP client, which ensure messages from communicator.py can be sent.
Since it might not always be possible to run the heavy Isaac Sim simulation a timeline can be saved to be replayed later. The files in the timelines folder describe a timeline, which can be replayed when running communicator.py with configured timeline settings.
Tip
It is also possible to test the connection and send timeline data without setting up the Isaac Sim simulation. You can do this by running the communicator.py file, after commenting out omni imports that get referenced and cause an error when running the communicator.py file.
Besides outputting data on the connection the simulation can also utilize situation data as input to setup the environment in the simulation. The files in the situations folder describe such a situation and can be generated by the ISBEP-Server. Simply add a new json file and update the situation settings.
In order to make developments easier the util.py provides some functionality. It allows log messages to be more formatted to show their context and allows context to be defined to show or not. The util also has the performance_timestamp(label:str) method that can be called to log how long the section until the previous timestamp took to execute.
The following steps can be taken to install the simulation locally.
- Ensure all local dependencies are met
- Create a folder with the simulation folder name in the
omni.isaac.examples.user_examples
folder of Isaac Sim. - Clone this repository into the newly created folder
git_isaac_sim
In order to run an installed simulation follow the next steps.
- Load the installed simulation project in Isaac Sim.
- Click
Isaac Examples
,User examples
and thenISBEP Sim
. - Press the
Load
button that appeared for the example. - Press
Play
after the simulation has loaded.
Isaac Sim is required for running and developing this project. The simulation code uses python and some additional modules, which could be installed using pip. Even though python is already included in Isaac Sim it might still need to be updated or have modules installed by following Isaac sim python install.
Download and install the following software.