flatsim stands for flatworld simulation and is a small simulation application which allows you to run almost the full Isaac navigation stack. The flatsim application simulates a laser range scanner by casting rays in a given occupancy grid map. This kind of simulation is extremely fast, compared to a more costly 3D ray scan in a full 3D environment used by the Unreal based simulation. It is thus a quick and highly performant way to test the navigation stack.

The flatsim application can not provide the same accuracy as a full 3D based simulation inside the actual scenario, especially in terms of accurate simulation of reflections or transparent objects.

flatsim uses the set of nodes from the navigation stack and adds two new nodes:

  • DifferentialBaseSimulator: Runs a basic differential base drive model to move the robot around based on the commands sent from the navigation stack. This provides the ground truth pose of the robot for range scan simulation. It also provides wheel odometry which is used as another input by the navigation stack.
  • RangeScanSimulator: Computes a simulated flat range scan based on the current position of the robot and the desired map.

Start flatsim from inside the Isaac source tree with the following command:

bob@desktop:~/isaac$ bazel run //apps/flatsim