Skip to content

Marsupial tutorial

Nate Koenig edited this page Jan 31, 2021 · 8 revisions

A marsupial robot is capable of carrying another robot into the environment until they are programmatically detached. To spawn a marsupial configuration, use the ign launch command line argument marsupial#:=parentRobotName:childRobotName, where parentRobotName and childRobotName are names of robots specified using robotName#. There are limited combinations of supported parent-child relationships, see the robot list.

See the API for instructions on how to perform a marsupial detachment.

Local deployment

A marsupial vehicle can be defined by adding a marsupialN=parent:child parameter to your launch command. For example:

ign launch -v 4 competition.ign worldName:=simple_cave_01 circuit:=cave robotName1:=X1 robotConfig1:=X1_SENSOR_CONFIG_1 robotName2:=X3 robotConfig2:=X3_SENSOR_CONFIG_1 marsupial1:=X1:X3 

Cloudsim deployment via REST call

In order to deploy a marsupial vehicle on Cloudsim just add a -F marsupial="parent:child" to your curl command. More information is available here.

The following example mimics the local deployment above.

curl -k -X POST --url https://cloudsim.subtchallenge.world/1.0/simulations -F name="MyMarsupialTest" -F owner="YOUR_ORG" -F circuit="Cave Practice 1" -F robot_name="X1" -F robot_type="X1_SENSOR_CONFIG_1" -F robot_image="YOUR_DOCKER_IMAGE" -F robot_name="X3" -F robot_type="X3_SENSOR_CONFIG_1" -F robot_image="YOUR_DOCKER_IMAGE" -F marsupial="X1:X3" --header "Private-Token: YOUR_PRIVATE_TOKEN"

Cloudsim deployment via the SubT Virtual Portal

You can deploy a simulation on Cloudsim with a marsupial pair by selecting a valid parent robot (e.g., X1 or EXPLORER_R2) in the “Robot type” field and filling in the name of the child robot in the "Marsupial Partner" field that appears. Click "Add", then create the child robot as a separate robot entry as usual.