diff --git a/subt_ign/include/subt_ign/CommonTypes.hh b/subt_ign/include/subt_ign/CommonTypes.hh
index a9ecbf33..4ba58f8a 100644
--- a/subt_ign/include/subt_ign/CommonTypes.hh
+++ b/subt_ign/include/subt_ign/CommonTypes.hh
@@ -76,7 +76,9 @@ namespace subt
TYPE_TOOLBOX,
TYPE_VALVE,
TYPE_VENT,
- TYPE_GAS
+ TYPE_GAS,
+ TYPE_HELMET,
+ TYPE_ROPE
};
/// \def TeamMemberPtr
diff --git a/subt_ign/launch/cave_circuit.ign b/subt_ign/launch/cave_circuit.ign
index c807505d..7f8d845e 100644
--- a/subt_ign/launch/cave_circuit.ign
+++ b/subt_ign/launch/cave_circuit.ign
@@ -287,6 +287,41 @@
gas_4
TYPE_GAS
+
+
+ helmet_1
+ TYPE_HELMET
+
+
+ helmet_2
+ TYPE_HELMET
+
+
+ helmet_3
+ TYPE_HELMET
+
+
+ helmet_4
+ TYPE_HELMET
+
+
+
+ rope_1
+ TYPE_ROPE
+
+
+ rope_2
+ TYPE_ROPE
+
+
+ rope_3
+ TYPE_ROPE
+
+
+ rope_4
+ TYPE_ROPE
+
+
diff --git a/subt_ign/launch/cloudsim_sim.ign b/subt_ign/launch/cloudsim_sim.ign
index 7ef0563c..95e6faba 100644
--- a/subt_ign/launch/cloudsim_sim.ign
+++ b/subt_ign/launch/cloudsim_sim.ign
@@ -362,6 +362,41 @@
gas_5
TYPE_GAS
+
+
+ helmet_1
+ TYPE_HELMET
+
+
+ helmet_2
+ TYPE_HELMET
+
+
+ helmet_3
+ TYPE_HELMET
+
+
+ helmet_4
+ TYPE_HELMET
+
+
+
+ rope_1
+ TYPE_ROPE
+
+
+ rope_2
+ TYPE_ROPE
+
+
+ rope_3
+ TYPE_ROPE
+
+
+ rope_4
+ TYPE_ROPE
+
+
diff --git a/subt_ign/src/ArtifactValidator.cc b/subt_ign/src/ArtifactValidator.cc
index 99b7ed3b..1d03a038 100644
--- a/subt_ign/src/ArtifactValidator.cc
+++ b/subt_ign/src/ArtifactValidator.cc
@@ -110,7 +110,7 @@ class subt::ArtifactValidatorPrivate
{
/// \brief Map of artifact types to string representations.
public: const std::array<
- const std::pair, 12> kArtifactTypes
+ const std::pair, 14> kArtifactTypes
{
{
{subt::ArtifactType::TYPE_BACKPACK , "TYPE_BACKPACK"},
@@ -124,7 +124,9 @@ class subt::ArtifactValidatorPrivate
{subt::ArtifactType::TYPE_TOOLBOX , "TYPE_TOOLBOX"},
{subt::ArtifactType::TYPE_VALVE , "TYPE_VALVE"},
{subt::ArtifactType::TYPE_VENT , "TYPE_VENT"},
- {subt::ArtifactType::TYPE_GAS , "TYPE_GAS"}
+ {subt::ArtifactType::TYPE_GAS , "TYPE_GAS"},
+ {subt::ArtifactType::TYPE_HELMET , "TYPE_HELMET"},
+ {subt::ArtifactType::TYPE_ROPE , "TYPE_ROPE"}
}
};
@@ -304,7 +306,9 @@ void ArtifactValidatorPrivate::ParseArtifacts()
{ "toolbox", subt::ArtifactType::TYPE_TOOLBOX },
{ "valve", subt::ArtifactType::TYPE_VALVE},
{ "vent", subt::ArtifactType::TYPE_VENT},
- { "gas", subt::ArtifactType::TYPE_GAS}
+ { "gas", subt::ArtifactType::TYPE_GAS},
+ { "helmet", subt::ArtifactType::TYPE_HELMET},
+ { "rope", subt::ArtifactType::TYPE_ROPE}
};
// Assuming 1 world per SDF, which is true for SubT.
diff --git a/subt_ign/src/ConnectionValidatorPrivate.cc b/subt_ign/src/ConnectionValidatorPrivate.cc
index c55924c1..1f7c94b4 100644
--- a/subt_ign/src/ConnectionValidatorPrivate.cc
+++ b/subt_ign/src/ConnectionValidatorPrivate.cc
@@ -72,7 +72,8 @@ bool ConnectionValidatorPrivate::Load(const std::string &_worldName)
"cave_circuit", suffix);
}
}
- else if (_worldName.find("simple") == std::string::npos)
+ else if (_worldName.find("simple") == std::string::npos &&
+ _worldName.find("_qual") == std::string::npos)
{
ignwarn << "Unable to determine circuit number from["
<< _worldName << "].\n";
diff --git a/subt_ign/src/GameLogicPlugin.cc b/subt_ign/src/GameLogicPlugin.cc
index 8290ff74..f331f6be 100644
--- a/subt_ign/src/GameLogicPlugin.cc
+++ b/subt_ign/src/GameLogicPlugin.cc
@@ -65,7 +65,7 @@ class subt::GameLogicPluginPrivate
{
/// \brief Mapping between enum types and strings.
public: const std::array<
- const std::pair, 12> kArtifactTypes
+ const std::pair, 14> kArtifactTypes
{
{
{subt::ArtifactType::TYPE_BACKPACK , "TYPE_BACKPACK"},
@@ -79,7 +79,9 @@ class subt::GameLogicPluginPrivate
{subt::ArtifactType::TYPE_TOOLBOX , "TYPE_TOOLBOX"},
{subt::ArtifactType::TYPE_VALVE , "TYPE_VALVE"},
{subt::ArtifactType::TYPE_VENT , "TYPE_VENT"},
- {subt::ArtifactType::TYPE_GAS , "TYPE_GAS"}
+ {subt::ArtifactType::TYPE_GAS , "TYPE_GAS"},
+ {subt::ArtifactType::TYPE_HELMET , "TYPE_HELMET"},
+ {subt::ArtifactType::TYPE_ROPE , "TYPE_ROPE"}
}
};
@@ -279,10 +281,14 @@ class subt::GameLogicPluginPrivate
ignition::math::Vector3d(-0.03557, -0.03509, 0.3479)},
{subt::ArtifactType::TYPE_GAS,
ignition::math::Vector3d(0, 0, 0)},
+ {subt::ArtifactType::TYPE_HELMET,
+ ignition::math::Vector3d(0, 0, 0.165)},
{subt::ArtifactType::TYPE_PHONE,
ignition::math::Vector3d(0, -0.004, 0.08)},
{subt::ArtifactType::TYPE_RESCUE_RANDY,
ignition::math::Vector3d(-0.071305, 0.021966, 0.39217)},
+ {subt::ArtifactType::TYPE_ROPE,
+ ignition::math::Vector3d(0.004, -0.03, 0.095)},
{subt::ArtifactType::TYPE_VENT,
ignition::math::Vector3d(0, 0, 0.138369)}
};
diff --git a/subt_ign/src/VisibilityTable.cc b/subt_ign/src/VisibilityTable.cc
index 76f3b868..e6dd8844 100644
--- a/subt_ign/src/VisibilityTable.cc
+++ b/subt_ign/src/VisibilityTable.cc
@@ -78,7 +78,8 @@ bool VisibilityTable::Load(const std::string &_worldName, bool _loadLUT)
"cave_circuit", suffix);
}
}
- else if (this->worldName.find("simple") == std::string::npos)
+ else if (this->worldName.find("simple") == std::string::npos &&
+ this->worldName.find("_qual") == std::string::npos)
{
ignerr << "Unable to determine circuit number from["
<< this->worldName << "].\n";
diff --git a/subt_ign/worlds/cave_qual.dat b/subt_ign/worlds/cave_qual.dat
new file mode 100644
index 00000000..c8cd2361
Binary files /dev/null and b/subt_ign/worlds/cave_qual.dat differ
diff --git a/subt_ign/worlds/cave_qual.dot b/subt_ign/worlds/cave_qual.dot
new file mode 100644
index 00000000..6476567d
--- /dev/null
+++ b/subt_ign/worlds/cave_qual.dot
@@ -0,0 +1,165 @@
+/* Visibility graph generated by dot_generator */
+
+graph {
+ /* ==== Vertices ==== */
+
+ /* Base station / Staging area */
+ 0 [label="0::base_station::BaseStation"];
+
+ 1 [label="1::Cave 3 Way 01 Lights::tile_1"];
+ 2 [label="2::Cave Corner 01::tile_2"];
+ 3 [label="3::Cave Corner 02::tile_3"];
+ 4 [label="4::Cave Elevation::tile_4"];
+ 5 [label="5::Cave Straight 01::tile_5"];
+ 6 [label="6::Cave Straight 02 Lights::tile_6"];
+ 7 [label="7::Cave Straight 05 Lights::tile_7"];
+ 8 [label="8::Cave Vertical Shaft Lights::tile_8"];
+ 9 [label="9::Cave Cavern Split 01::tile_9"];
+ 10 [label="10::Cave Cavern Split 02::tile_10"];
+ 11 [label="11::Cave 3 Way 01::tile_11"];
+ 12 [label="12::Cave Straight 03::tile_12"];
+ 13 [label="13::Cave 3 Way 01 Lights::tile_13"];
+ 14 [label="14::Cave Corner 02::tile_14"];
+ 15 [label="15::Cave Elevation::tile_15"];
+ 16 [label="16::Cave 3 Way 01 Lights::tile_16"];
+ 17 [label="17::Cave Corner 30F D Lights::tile_17"];
+ 18 [label="18::Cave Corner 30F D Lights::tile_18"];
+ 19 [label="19::Cave Corner 30F D Lights::tile_19"];
+ 20 [label="20::Cave Corner 30F D Lights::tile_20"];
+ 21 [label="21::Cave 3 Way 01 Lights::tile_21"];
+ 22 [label="22::Cave Corner 30F D Lights::tile_22"];
+ 23 [label="23::Cave Elevation Lights::tile_23"];
+ 24 [label="24::Cave Vertical Shaft Lights::tile_24"];
+ 25 [label="25::Cave Corner 01 Lights::tile_25"];
+ 26 [label="26::Cave Straight 01 Lights::tile_26"];
+ 27 [label="27::Cave Corner 02 Lights::tile_27"];
+ 28 [label="28::Cave Elevation::tile_28"];
+ 29 [label="29::Cave Straight 03::tile_29"];
+ 30 [label="30::Cave 3 Way 01::tile_30"];
+ 31 [label="31::Cave Corner 01::tile_31"];
+ 32 [label="32::Cave 3 Way 01::tile_32"];
+ 33 [label="33::Cave Elevation::tile_33"];
+ 34 [label="34::Cave Straight 01::tile_34"];
+ 35 [label="35::Cave Straight 02::tile_35"];
+ 36 [label="36::Cave Straight 03::tile_36"];
+ 37 [label="37::Cave Corner 01::tile_37"];
+ 38 [label="38::Cave Corner 30 D::tile_38"];
+ 39 [label="39::Cave Elevation::tile_39"];
+ 40 [label="40::Cave Straight 03::tile_40"];
+ 41 [label="41::Cave Straight 02::tile_41"];
+ 42 [label="42::Cave Corner 01::tile_42"];
+ 43 [label="43::Cave Corner 02::tile_43"];
+ 44 [label="44::Cave Straight 01::tile_44"];
+ 45 [label="45::Cave Straight 04::tile_45"];
+ 46 [label="46::Cave Straight 04::tile_46"];
+ 47 [label="47::Cave Straight 02::tile_47"];
+ 48 [label="48::Cave Straight 04::tile_48"];
+ 49 [label="49::Cave Straight 01::tile_49"];
+ 50 [label="50::Cave Straight 03::tile_50"];
+ 51 [label="51::Cave Elevation::tile_51"];
+ 52 [label="52::Cave 3 Way 01 Lights::tile_52"];
+ 53 [label="53::Cave Straight 03::tile_53"];
+ 54 [label="54::Cave Corner 02::tile_54"];
+ 55 [label="55::Cave Corner 02::tile_55"];
+ 56 [label="56::Cave Elevation::tile_56"];
+ 57 [label="57::Cave 3 Way 01::tile_57"];
+ 58 [label="58::Cave Corner 30 D::tile_58"];
+ 59 [label="59::Cave Straight 03::tile_59"];
+ 60 [label="60::Cave Corner 30 D::tile_60"];
+ 61 [label="61::Cave Elevation::tile_61"];
+ 62 [label="62::Cave Corner 30 D::tile_62"];
+ 63 [label="63::Cave Corner 01::tile_63"];
+ 64 [label="64::Cave Corner 02::tile_64"];
+ 65 [label="65::Cave Elevation::tile_65"];
+ 66 [label="66::Cave Straight 03::tile_66"];
+ 67 [label="67::Cave Straight 04::tile_67"];
+ 68 [label="68::Cave Corner 01::tile_68"];
+ 69 [label="69::Cave Cavern Split 01::tile_69"];
+ 70 [label="70::Cave Cavern Split 02::tile_70"];
+ 71 [label="71::Cave Straight 01 Lights::tile_71"];
+ 72 [label="72::Cave Straight 04 Lights::tile_72"];
+ 73 [label="73::Cave 3 Way 01 Lights::tile_73"];
+ 74 [label="74::Cave Corner 30F D Lights::tile_74"];
+ 75 [label="75::Cave Corner 30 D Lights::tile_75"];
+
+ /* ==== Edges ==== */
+
+ /* Base station */
+ 0 -- 71 [label=1];
+ 1 -- 6 [label=3];
+ 1 -- 8 [label=3];
+ 1 -- 73 [label=6];
+ 2 -- 3 [label=6];
+ 2 -- 6 [label=3];
+ 3 -- 11 [label=6];
+ 4 -- 11 [label=3];
+ 4 -- 12 [label=1];
+ 5 -- 52 [label=3];
+ 5 -- 53 [label=1];
+ 7 -- 13 [label=3];
+ 7 -- 16 [label=3];
+ 8 -- 13 [label=3];
+ 9 -- 10 [label=3];
+ 9 -- 31 [label=6];
+ 9 -- 36 [label=3];
+ 10 -- 46 [label=1];
+ 12 -- 55 [label=3];
+ 13 -- 52 [label=6];
+ 14 -- 53 [label=3];
+ 14 -- 56 [label=3];
+ 15 -- 52 [label=3];
+ 15 -- 55 [label=3];
+ 16 -- 17 [label=6];
+ 16 -- 18 [label=6];
+ 17 -- 19 [label=6];
+ 18 -- 20 [label=6];
+ 19 -- 27 [label=6];
+ 20 -- 21 [label=6];
+ 21 -- 22 [label=6];
+ 21 -- 35 [label=3];
+ 22 -- 23 [label=3];
+ 23 -- 25 [label=3];
+ 24 -- 25 [label=3];
+ 24 -- 26 [label=1];
+ 27 -- 28 [label=3];
+ 28 -- 29 [label=1];
+ 29 -- 30 [label=3];
+ 30 -- 31 [label=6];
+ 30 -- 33 [label=3];
+ 32 -- 34 [label=3];
+ 32 -- 35 [label=3];
+ 32 -- 38 [label=6];
+ 33 -- 34 [label=1];
+ 36 -- 37 [label=3];
+ 38 -- 39 [label=3];
+ 39 -- 40 [label=1];
+ 40 -- 41 [label=1];
+ 41 -- 42 [label=3];
+ 42 -- 44 [label=3];
+ 43 -- 44 [label=3];
+ 43 -- 45 [label=3];
+ 46 -- 47 [label=1];
+ 47 -- 50 [label=1];
+ 48 -- 51 [label=1];
+ 49 -- 50 [label=1];
+ 49 -- 51 [label=1];
+ 54 -- 56 [label=3];
+ 54 -- 57 [label=6];
+ 57 -- 58 [label=6];
+ 57 -- 62 [label=6];
+ 58 -- 59 [label=3];
+ 59 -- 60 [label=3];
+ 60 -- 61 [label=3];
+ 62 -- 64 [label=6];
+ 63 -- 64 [label=6];
+ 63 -- 65 [label=3];
+ 65 -- 67 [label=1];
+ 66 -- 67 [label=1];
+ 66 -- 68 [label=3];
+ 68 -- 70 [label=3];
+ 69 -- 70 [label=3];
+ 71 -- 73 [label=3];
+ 72 -- 73 [label=3];
+ 72 -- 74 [label=3];
+ 74 -- 75 [label=6];
+}
diff --git a/subt_ign/worlds/cave_qual.sdf b/subt_ign/worlds/cave_qual.sdf
new file mode 100644
index 00000000..264abc8f
--- /dev/null
+++ b/subt_ign/worlds/cave_qual.sdf
@@ -0,0 +1,796 @@
+
+
+
+
+
+
+ 0.004
+ 1.0
+
+
+
+ 0.1 0.1 0.1 1.0
+ 0 0 0 1.0
+ false
+ false
+
+
+
+
+ true
+ staging_area
+ 0 0 0 0 0 0
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Starting Area
+
+
+
+
+
+ true
+ base_station
+ -8 0 0 0 0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Base Station
+
+
+
+
+ artifact_origin
+ 10.0 0.0 0.0 0 0 0
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Fiducial
+
+
+
+
+ true
+ tile_1
+ 75 0 0 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01 Lights
+
+
+
+ true
+ cave_cap_1
+ 25 75 0 0 0 -1.57079
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ tile_2
+ 75 50 0 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 01
+
+
+
+ true
+ tile_3
+ 50 50 0 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 02
+
+
+
+ true
+ tile_4
+ 75 75 0 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ tile_5
+ 150 25 20 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 01
+
+
+
+ true
+ tile_6
+ 75 25 0 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 02 Lights
+
+
+
+ true
+ tile_7
+ 125 -25 20 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 05 Lights
+
+
+
+ true
+ tile_8
+ 100 0 0 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Vertical Shaft Lights
+
+
+
+ true
+ tile_9
+ 50 -175 30 4e-06 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cavern Split 01
+
+
+
+ true
+ tile_10
+ 50 -200 30 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cavern Split 02
+
+
+
+ true
+ tile_11
+ 50 75 0 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01
+
+
+
+ true
+ tile_12
+ 100 75 10 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 03
+
+
+
+ true
+ tile_13
+ 125 0 20 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01 Lights
+
+
+
+ true
+ tile_14
+ 200 25 20 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 02
+
+
+
+ true
+ tile_15
+ 125 50 10 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ tile_16
+ 125 -50 20 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01 Lights
+
+
+
+ true
+ tile_17
+ 100 -50 20 -0 -0 4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30F D Lights
+
+
+
+ true
+ tile_18
+ 125 -75 20 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30F D Lights
+
+
+
+ true
+ tile_19
+ 100 -75 20 0 -0 3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30F D Lights
+
+
+
+ true
+ tile_20
+ 150 -75 20 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30F D Lights
+
+
+
+ true
+ tile_21
+ 150 -100 20 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01 Lights
+
+
+
+ true
+ tile_22
+ 175 -100 20 0 -0 3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30F D Lights
+
+
+
+ true
+ tile_23
+ 181.25 -76.6747 10 0 0 -0.523594
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation Lights
+
+
+
+ true
+ tile_24
+ 172.099 -42.524 10 0 -0 1.0472
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Vertical Shaft Lights
+
+
+
+ true
+ tile_25
+ 193.75 -55.024 10 0 -0 1.0472
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 01 Lights
+
+
+
+ true
+ tile_26
+ 150.449 -30.024 30 0 -0 1.0472
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 01 Lights
+
+
+
+ true
+ cave_cap_2
+ 128.798 -17.524 30 0 -0 -2.0944
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ tile_27
+ 75 -75 20 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 02 Lights
+
+
+
+ true
+ tile_28
+ 75 -100 20 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ tile_29
+ 75 -125 30 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 03
+
+
+
+ true
+ tile_30
+ 75 -150 30 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01
+
+
+
+ true
+ tile_31
+ 50 -150 30 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 01
+
+
+
+ true
+ tile_32
+ 150 -150 20 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01
+
+
+
+ true
+ tile_33
+ 100 -150 20 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ tile_34
+ 125 -150 20 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 01
+
+
+
+ true
+ tile_35
+ 150 -125 20 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 02
+
+
+
+ true
+ tile_36
+ 12.5 -175 55 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 03
+
+
+
+ true
+ tile_37
+ -12.5 -175 55 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 01
+
+
+
+ true
+ cave_cap_3
+ -12.5 -200 55 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ tile_38
+ 175 -150 20 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30 D
+
+
+
+ true
+ tile_39
+ 181.691 -172.824 20 0 -0 0.523596
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ tile_40
+ 194.191 -194.475 30 0 -0 -2.618
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 03
+
+
+
+ true
+ tile_41
+ 206.691 -216.126 30 0 -0 -2.61799
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 02
+
+
+
+ true
+ tile_42
+ 219.191 -237.776 30 0 0 -1.04719
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 01
+
+
+
+ true
+ tile_43
+ 262.493 -212.776 30 0 -0 2.0944
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 02
+
+
+
+ true
+ tile_44
+ 240.842 -225.276 30 0 -0 2.0944
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 01
+
+
+
+ true
+ tile_45
+ 274.993 -234.427 30 0 -0 0.523596
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 04
+
+
+
+ true
+ tile_46
+ 50 -225 30 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 04
+
+
+
+ true
+ cave_cap_4
+ 287.493 -256.078 30 0 -0 0.523596
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ tile_47
+ 50 -250 30 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 02
+
+
+
+ true
+ tile_48
+ 50 -350 40 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 04
+
+
+
+ true
+ tile_49
+ 50 -300 30 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 01
+
+
+
+ true
+ tile_50
+ 50 -275 30 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 03
+
+
+
+ true
+ tile_51
+ 50 -325 30 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ cave_cap_5
+ 50 -375 40 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ tile_52
+ 125 25 20 0 0 -1.57079
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01 Lights
+
+
+
+ true
+ tile_53
+ 175 25 20 0 -0 -1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 03
+
+
+
+ true
+ tile_54
+ 200 75 10 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 02
+
+
+
+ true
+ tile_55
+ 125 75 10 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 02
+
+
+
+ true
+ tile_56
+ 200 50 10 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ tile_57
+ 225 75 10 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01
+
+
+
+ true
+ tile_58
+ 225 100 10 0 0 -1.57079
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30 D
+
+
+
+ true
+ tile_59
+ 248.325 106.25 9.99999 0 0 -1.04719
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 03
+
+
+
+ true
+ tile_60
+ 269.976 118.75 9.99999 0 -0 -2.61799
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30 D
+
+
+
+ true
+ tile_61
+ 287.051 101.675 0 0 -0 -2.0944
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ tile_62
+ 250 75 10 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30 D
+
+
+
+ true
+ cave_cap_6
+ 308.702 89.1747 0 0 -0 1.0472
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ tile_63
+ 277.901 64.1747 10 0 -0 2.0944
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 01
+
+
+
+ true
+ tile_64
+ 256.25 51.6747 10 0 0 -1.04719
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 02
+
+
+
+ true
+ tile_65
+ 290.401 42.5241 10 0 -0 0.523596
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Elevation
+
+
+
+ true
+ tile_66
+ 315.401 -0.777207 20 0 -0 -2.618
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 03
+
+
+
+ true
+ tile_67
+ 302.901 20.8734 20 0 -0 0.523596
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 04
+
+
+
+ true
+ tile_68
+ 327.901 -22.4278 20 0 0 -1.04719
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 01
+
+
+
+ true
+ tile_69
+ 371.202 2.57216 20 4e-06 0 0.523599
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cavern Split 01
+
+
+
+ true
+ tile_70
+ 349.551 -9.92784 20 0 -0 0.523599
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cavern Split 02
+
+
+
+ true
+ cave_cap_7
+ 392.853 15.0722 20 0 -0 2.0944
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ cave_cap_8
+ 352.452 35.048 45 0 -0 -2.61799
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ tile_71
+ 25 0 0 0 -0 1.5708
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 01 Lights
+
+
+
+ true
+ tile_72
+ 50 -25 0 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Straight 04 Lights
+
+
+
+ true
+ tile_73
+ 50 0 0 0 -0 -3.14159
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave 3 Way 01 Lights
+
+
+
+ true
+ tile_74
+ 50 -50 0 -0 -0 1.57079
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30F D Lights
+
+
+
+ true
+ cave_cap_9
+ 67.0753 -79.5753 5e-06 0 0 -4e-06
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Cap
+
+
+
+ true
+ tile_75
+ 73.3253 -56.25 4e-06 0 -0 2.618
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Cave Corner 30 D Lights
+
+
+
+
+ rescue_randy_1
+ 38.2 75.96 0.1 -0.07 0 1.40
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Rescue Randy Sitting
+
+
+
+
+ rescue_randy_2
+ 144.17 -26.87 29.60 -0.01 -0 -2.82
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Rescue Randy Sitting
+
+
+
+ rescue_randy_3
+ 66.60 -187.81 31.13 0 0 -1.03
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Rescue Randy Sitting
+
+
+
+ rescue_randy_4
+ 297.88 97.04 0.16 -0.16 0 -1.78
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Rescue Randy Sitting
+
+
+
+ backpack_1
+ 188.25 -46.80 10.25 0.150796 0.08 -0.68
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/JanSport Backpack Red
+
+
+
+ backpack_2
+ 103.65 0 0.18 -0.09 0 -1.31
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/JanSport Backpack Red
+
+
+
+ backpack_3
+ 357.88 5.47 20.32 0 0 0
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/JanSport Backpack Red
+
+
+
+ backpack_4
+ 48.86 -346.54 40.19 -0.16 0.11 0.64
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/JanSport Backpack Red
+
+
+
+ phone_1
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Samsung J8 Black
+ 115.33 -155.49 20.22 -1.702 0.105 0.288
+
+
+
+ phone_2
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Samsung J8 Black
+ 72.09 -112.69 30.08 -1.570796 0.03 0.0
+
+
+
+ phone_3
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Samsung J8 Black
+ 286.74 48.57 12 -2.0 -0.06 0.33
+
+
+
+ phone_4
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Samsung J8 Black
+ 148.99 -125.66 21.49 -1.93 -0.13 1.62
+
+
+
+ helmet_1
+ 149.8 -158.17 20.75 0 0 2.98
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Climbing Helmet With Light
+
+
+
+ helmet_2
+ -1.79 -180.47 55.61 0 0.22 0.56
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Climbing Helmet With Light
+
+
+
+ helmet_3
+ 44.12 -30.30 1.055 0.18 -0.08 2.12
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Climbing Helmet With Light
+
+
+
+ helmet_4
+ 271.80 -218.32 30.35 0 -0.2 0
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Climbing Helmet With Light
+
+
+
+ rope_1
+ 74.762 -8.198 0.76 -0.188 -0.0017 0.0232
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Climbing Rope
+
+
+
+ rope_2
+ 71.87 -87.82 20.11 0.0274 0.0782 0.313
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Climbing Rope
+
+
+
+ rope_3
+ 41.65 -183.23 30.372 -0.174 0.032 -1.439
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Climbing Rope
+
+
+
+ rope_4
+ 264.69 61.629 10.238 0.155 0.168 -0.605
+ https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Climbing Rope
+
+
+
+ 0.000000 0.000000 0.000000
+
+
+
+
+
+
+ 10
+
+ 0.05
+ 60
+
+
+ 0
+ 0.0002
+
+
+
+ 30
+
+ 5
+ 20
+
+
+ 0
+ 0.03
+
+
+
+
+
+ 0
+ 0.03
+
+
+
+
+
+
+
+
+