Skip to content

Post Finals Features

Nate Koenig edited this page Oct 20, 2021 · 5 revisions

Ignition Fortress is required. Please follow these SubT Simulation install instructions.

It's possible to extend the SubT Simulator with new features. We have added a number of example features to a single new world in order to demonstrate what can simulated. You can run this new example world, which is based on the finals qualification world, using:

ign launch -v 4 cloudsim_sim.ign worldName:=finals_qual_demo

Actors

An actor is an animated model that can follow a trajectory. You can read more about actors here. We have added an example actor to an Urban 2 Story tile, tile_77, in the finals_qual_demo world. The actor walks around a set path in the tile. Image-based sensors, such as cameras and GPU lidars, will see the actor. However, the actor lacks collision elements. This means a robot can pass through the actor.

To test, run the world and move to the lower level of tile_77. You should see a human walking in a circle.

ign launch -v 4 cloudsim_sim.ign worldName:=finals_qual_demo

Mine Cart

A mine cart has been integrated that rolls down a small hill when a robot enters a specific region. The minecart utilizes a detachable joint to keep the mine cart in place until a robot triggers a performer detector. The performer detector emits a message when a robot enters a region. We have structured this message such that it detaches the joint holding the mine cart.

The changes added to implement this feature can be reviewed [here](The complete).

To test the mine cart:

  1. Make sure you are using Ignition Fortress. 2 ign launch -v 4 cloudsim_sim.ign worldName:=finals_qu_demo circuit:=finals levels:=false robotName1:=X1 robotConfig1:=X1_SENSOR_CONFIG_1
  2. Follow the X1 in the GUI.
  3. ign service -s /world/finals_qual_demo/set_pose --reqtype ignition.msgs.Pose --reptype ignition.msgs.Boolean --timeout 300 --req 'name: "X1", position {x:110 y:-40 z:0}'
  4. Watch your robot get hit by the mine cart.

Subway car

A subway car with an associated trigger was add to the finals_qual_demo world. The subway doors will open when a robot approaches the doors, and will close when the robot leaves. This demonstrates complex performer detection configurations, and the ability for the performer detector to control joints. The code to implement the subway car with doors starts here. Importantly, the R160 subway model, has a set of joint position controller plugins, which exposes controll topics used by the performer detectors.

To test the subway car:

  1. Make sure you are using Ignition Fortress.
  2. ign launch -v 4 cloudsim_sim.ign worldName:=finals_qu_demo circuit:=finals levels:=false robotName1:=X1 robotConfig1:=X1_SENSOR_CONFIG_1
  3. Follow the X1 in the GUI.
  4. ign service -s /world/finals_qual_demo/set_pose --reqtype ignition.msgs.Pose --reptype ignition.msgs.Boolean --timeout 300 --req 'name: "X1", position {x:43 y:185 z:12}'
  5. Drive or move your robot into the subway.

Door

The final example is a single hinged door that opens when a robot approaches. This is similar to the Subway car example above, but the door remains open in this case. Again, a joint position controller plugin has been added to the door model.

  1. Make sure you are using Ignition Fortress.
  2. ign launch -v 4 cloudsim_sim.ign worldName:=finals_qu_demo circuit:=finals levels:=false robotName1:=X1 robotConfig1:=X1_SENSOR_CONFIG_1
  3. Follow the X1 in the GUI.
  4. ign service -s /world/finals_qual_demo/set_pose --reqtype ignition.msgs.Pose --reptype ignition.msgs.Boolean --timeout 300 --req 'name: "X1", position {x:55 y:186 z:11.8}'
  5. Drive or move your robot through the door.