Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
8ead44a
add test links to specifications.md and modify parameters in spawn.rb
HongbiaoZ Jul 27, 2020
c18b2b3
Model submission for the OZBOT ATR sensor configurations 1 and 2 from…
Jul 31, 2020
b4cb27d
added thumbnail of vehicle
Jul 31, 2020
b963e46
Model submission for Gagarin sensor configuration 1 from CERBERUS
mihirk284 Aug 1, 2020
baf5e02
fixed issues from PR feedback: drive plugin settings, gas sensor, joi…
Aug 3, 2020
5378a47
add barometer to m100
angelacmaio Aug 3, 2020
853a7b7
Merge pull request #504 from HongbiaoZ/master
angelacmaio Aug 4, 2020
d5d6d2a
turning radius note and config2 power load fix
angelacmaio Aug 4, 2020
67fe81e
Edited README.md addressing comments
mihirk284 Aug 5, 2020
ff529d9
Merge branch 'master' into cave_feature_release6
Aug 5, 2020
82e808c
Apply velocity and acceleration limits to submitted configs (#498)
nkoenig Aug 5, 2020
8e3ccf3
Restoring velocity controller for moving gimbals (#503)
caguero Aug 5, 2020
291f44a
Changed plugin for Picoflexx from gpu_ray to depth_camera
mihirk284 Aug 6, 2020
5c3b5f1
Fix spawner
Aug 6, 2020
4ab2383
Revert run
Aug 6, 2020
2b7edd5
Fix z offset, and cleanup
Aug 6, 2020
cd24511
Added marsupial capabilities
Aug 6, 2020
ecb0d0e
Added Cerberus Gagarin
Aug 6, 2020
b2893ae
Bridge gas topic
Aug 6, 2020
4beb4b6
Added Gagarin to X1 and R2
Aug 6, 2020
6300d69
Ctu cras norlab absolem sensor config 1 2 (#528)
nkoenig Aug 6, 2020
76212c1
Make Absolem turn
Aug 6, 2020
aa1afae
Download new models
Aug 6, 2020
692ce56
Remove extra topics and joint states from Absolem model
Aug 6, 2020
d80aa44
match API for RGBD
angelacmaio Aug 6, 2020
da8baa3
Fix position control
Aug 6, 2020
6b558f5
Merge branch 'remove_extras_from_absolem' of github.com:osrf/subt int…
Aug 6, 2020
13e13bb
Fix comment end
Aug 6, 2020
9e63b16
Moved and realigned RGBD camera to not be obstructed by realsense mes…
acschang Aug 6, 2020
3ddcac7
Merge pull request #526 from osrf/submitted_models/csiro_data61_ozbot…
angelacmaio Aug 7, 2020
e2f8aab
add barometer to model.sdf
angelacmaio Aug 7, 2020
75c4ff5
match topic names to API
angelacmaio Aug 7, 2020
048bdbf
Merge branch 'cave_feature_release6' into submitted_models/cerberus_g…
angelacmaio Aug 7, 2020
2549b31
Merge pull request #527 from osrf/submitted_models/cerberus_gagarin_s…
angelacmaio Aug 7, 2020
2dcf677
Adjustment of battery plugin on the CSIRO Data61 OZBOT ATR model to u…
acschang Aug 7, 2020
947675b
Record marsupial pairs (#531)
nkoenig Aug 7, 2020
9b3a37d
Monitor for dead battery events (#533)
nkoenig Aug 7, 2020
346fc6d
Added a few missing optical frames, and removed the extra rgbd parame…
nkoenig Aug 7, 2020
23fd48f
Merge pull request #534 from osrf/csiro_ozbot_battery_adjustment
angelacmaio Aug 7, 2020
29fa1f7
Rotate marsupials (#536)
nkoenig Aug 7, 2020
3a41ba0
Fix marsupial joints (#535)
nkoenig Aug 7, 2020
1ae9358
Remove extra topics and joint states from Absolem model (#529)
nkoenig Aug 7, 2020
3aa580b
Apply effort limits to the Absolem model
Aug 7, 2020
77f5860
merged
Aug 7, 2020
bb88215
Fix horizondal typo
Aug 7, 2020
5b957fe
Merge branch 'absolem_effort_limit' of https://github.com/osrf/subt i…
angelacmaio Aug 7, 2020
983d19e
Fix sensor name
Aug 7, 2020
657ece1
Proper tof_bottom rename
Aug 7, 2020
2323c43
Trying effort of 40
Aug 7, 2020
f11983a
Trying a value of 30
Aug 7, 2020
2242346
effort=20 allows some obstacle traversal but no tiptoe driving
angelacmaio Aug 7, 2020
90727f6
Extended GameLogicPlugin to check for vehicle flips (#519)
adlarkin Aug 7, 2020
1e9ba56
Merge branch 'cave_feature_release6' of https://github.com/osrf/subt …
angelacmaio Aug 7, 2020
d4513e3
Fix breadcrumb deployment location
Aug 7, 2020
0ebeed3
Merge branch 'cave_feature_release6' of github.com:osrf/subt into cav…
Aug 7, 2020
199fe90
Merge pull request #537 from osrf/absolem_effort_limit
angelacmaio Aug 7, 2020
0a8f2bd
update absolem specs after fixes and breadcrumbs
angelacmaio Aug 7, 2020
8201b77
Merge branch 'cave_feature_release6' of https://github.com/osrf/subt …
angelacmaio Aug 7, 2020
2ca0d28
update ozbot specs with breadcrumbs
angelacmaio Aug 7, 2020
f3b4051
Adjustment of the FoV parameter to match resolution. (#539)
acschang Aug 10, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docker/download_models.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/R
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/EXPLORER_R2_SENSOR_CONFIG_2" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/ROBOTIKA_FREYJA_SENSOR_CONFIG_2" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/Breadcrumb Node" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/CTU_CRAS_NORLAB_ABSOLEM_SENSOR_CONFIG_1" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/CTU_CRAS_NORLAB_ABSOLEM_SENSOR_CONFIG_2" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/CSIRO_DATA61_OZBOT_ATR_SENSOR_CONFIG_1" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/CSIRO_DATA61_OZBOT_ATR_SENSOR_CONFIG_2" -v 4
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/CERBERUS_GAGARIN_SENSOR_CONFIG_1" -v 4

# Download the tunnel circuit models
ign fuel download --url "https://fuel.ignitionrobotics.org/OpenRobotics/models/subt_tunnel_staging_area" -v 4
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# ANYmal
This specifications.md file is a description and proof of virtual model validation for the CERBERUS ANYmal B with Sensor Configuration 1. This robot may be launched using a `roslaunch` command with the variable name `cerberus_anymal_b_sensor_config_1`.
This specifications.md file is a description and proof of virtual model validation for the CERBERUS ANYmal B with Sensor Configuration 1. This robot may be launched using a `ign launch` command with the variable name `cerberus_anymal_b_sensor_config_1`.

## Description
ANYmal is a highly sophisticated four-legged robot, designed to tackle the challenges of harsh search and rescue operations, inspections, and other surveillance duties.
Expand All @@ -11,7 +11,7 @@ To be able to control this robot model you need a few additional packages. Pleas
## Usage Instructions
The vehicle can be launched with the following command:
```
ign launch -v 4 competition.ign robotName1:=anymal_b robotConfig1:=CERBERUS_ANYMAL_B_SENSOR_CONFIG_1 localModel:=true
ign launch -v 4 competition.ign robotName1:=anymal_b robotConfig1:=CERBERUS_ANYMAL_B_SENSOR_CONFIG_1
```

In another terminal you can source the "anymal_locomotion_ws" workspace (see [Dependencies](#markdown-header-dependencies)) to start the locomotion controller node:
Expand Down Expand Up @@ -52,14 +52,15 @@ This ANYmal with sensor configuration 1 includes the following sensors. The spec
* Depth Camera - Intel Realsense D435, modeled by `rgbd_camera` plugin
* Color Camera - FLIR Blackfly S Model ##BFS-U3-16S2C-CS , modeled by `camera` plugin
* Synchronization Board - Autonomous Systems Lab, ETH Zurich - VersaVIS, there is not (yet) an Ignition-Gazebo plugin
* 12 communication breadcrumbs are also available as a payload for this robot in sensor configuration 2.

### Control
This ANYmal is controlled by the custom `cerberus_anymal_b_control_1` package, available in the repository [cerberus_anymal_locomotion](https://github.com/leggedrobotics/cerberus_anymal_locomotion).

This controller makes the robot moving at a fixed velocity, in any direction. The input twist is used only to determine the orientation of movement. The bearing angle between X-axis and the orientation specified by the linear part of the twist vector indicates the direction of motion; The positive or negative value of the yaw rate of the twist vector sets the direction of rotation around the Z-axis.

### Motion Characteristics
Based on the tests specified in the DARPA SubT Challenge, this vehicle has the following motion constraint characteristics.
Based on the tests specified in the DARPA SubT Challenge [Model Preparation Guide](https://subtchallenge.com/resources/Simulation_Model_Preparation_Guide.pdf), this vehicle has the following motion constraint characteristics.

* _x_ velocity range from -0.45 m/s to 0.45 m/s
* _y_ velocity range from -0.45 m/s to 0.45 m/s
Expand All @@ -80,6 +81,8 @@ The following points highlight the differences between the submitted virtual mod
* Robosense RS-Bpearl LIDAR is not present in simulation since its Ignition-Gazebo plugin does not exist yet. A downward Intel Realsense is used as a replacement in simulation.
* VersaVIS board is used to time synchronize a camera with an IMU for Visual-Inertial Odometry purposes. At the moment there is no plan to develop an Ignition-Gazebo plugin for that and therefore this board is not included in simulation.

* The physical robot carries 4 communication breadcrumbs. 12 breadcrumbs are included in sensor configuration 2, which is standardized to match other available models.

## ANYmal Validation and Specification Links
* [ANYmal specification link](https://researchfeatures.com/2018/05/01/anymal-unique-quadruped-robot-conquering-harsh-environments/#)
* [ANYbotics](https://www.anybotics.com/)
Expand Down
13 changes: 13 additions & 0 deletions submitted_models/cerberus_gagarin_sensor_config_1/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
cmake_minimum_required(VERSION 2.8.3)
project(cerberus_gagarin_sensor_config_1)

find_package(catkin REQUIRED)

catkin_package()

install(DIRECTORY launch meshes urdf
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

install(FILES model.sdf model.config
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

23 changes: 23 additions & 0 deletions submitted_models/cerberus_gagarin_sensor_config_1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# darpa_virtual_model_submit
Simulation models to submit to Darpa | CERBERUS Aerial Scouts (Gagarin)

## workspace setup
Follow these step to setup the Darpa Subt Virtual Environment:

https://github.com/osrf/subt/wiki/Get%20Started

## add a new model

```
cd ~/subt_ws/src/subt/submitted_models

git clone https://github.com/unr-arl/darpa_virtual_model_submit.git cerberus_gagarin_sensor_config_1

cd ~/subt_ws/
catkin_make install
source install/setup.bash
```

## launch the simulation
ign launch -v 4 tunnel_circuit_practice.ign worldName:=tunnel_circuit_practice_01 robotName1:=gagarin robotConfig1:=CERBERUS_GAGARIN_SENSOR_CONFIG_1 localModel:=true

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<launch>
<arg name="name" doc="Name of Vehicle"/>
<param name="$(arg name)/robot_description" command="$(find xacro)/xacro '$(find cerberus_gagarin_sensor_config_1)/urdf/model.xacro' name:=$(arg name)"/>
</launch>

170 changes: 170 additions & 0 deletions submitted_models/cerberus_gagarin_sensor_config_1/launch/example.ign
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
<?xml version="1.0"?>
<!-- Usage: ign launch path/to/example.ign robotName:=<X1>

Parameters:
robotName: Name to be assigned to model
-->

<%
require_relative 'spawner'

# Modify these as needed
$enableGroundTruth = true
$headless = local_variables.include?(:headless) ? :headless : false

%>

<%

unless local_variables.include?(:robotName)
raise "missing parameters. robotName is a required parameter"
end

# This assumes that this launch file is in a directory below the model
modelURI = File.expand_path("../", File.dirname(__FILE__))
$worldName = 'example'
worldFile = File.join(File.expand_path("../worlds", File.dirname(__FILE__)), "#{$worldName}.sdf")

%>

<ignition version='1.0'>
<env>
<name>IGN_GAZEBO_SYSTEM_PLUGIN_PATH</name>
<value>$LD_LIBRARY_PATH</value>
</env>

<!-- Start ROS first. This is a bit hacky for now. -->
<!-- Make sure to source /opt/ros/melodic/setup.bash -->
<executable name='ros'>
<command>roslaunch subt_ros competition_init.launch world_name:=<%=$worldName%> vehicle_topics:=0 enable_ground_truth:=<%=($enableGroundTruth)?"1":"0"%> robot_names:=<%=robotName%></command>
</executable>

<plugin name="ignition::launch::GazeboServer"
filename="libignition-launch-gazebo.so">
<world_file><%= worldFile %></world_file>
<run>true</run>
<levels>false</levels>
<record>
<enabled>false</enabled>
</record>

<plugin entity_name="<%= $worldName %>"
entity_type="world"
filename="libignition-gazebo-physics-system.so"
name="ignition::gazebo::systems::Physics">
</plugin>

<plugin entity_name="<%= $worldName %>"
entity_type="world"
filename="libignition-gazebo-sensors-system.so"
name="ignition::gazebo::systems::Sensors">
<render_engine>ogre2</render_engine>
</plugin>
<plugin entity_name="<%= $worldName %>"
entity_type="world"
filename="libignition-gazebo-user-commands-system.so"
name="ignition::gazebo::systems::UserCommands">
</plugin>
<plugin entity_name="<%= $worldName %>"
entity_type="world"
filename="libignition-gazebo-scene-broadcaster-system.so"
name="ignition::gazebo::systems::SceneBroadcaster">
</plugin>
<plugin entity_name="<%= $worldName %>"
entity_type="world"
filename="libignition-gazebo-imu-system.so"
name="ignition::gazebo::systems::Imu">
</plugin>

<plugin entity_name="<%= $worldName %>"
entity_type="world"
filename="libignition-gazebo-magnetometer-system.so"
name="ignition::gazebo::systems::Magnetometer">
</plugin>

<plugin entity_name="<%= $worldName %>"
entity_type="world"
filename="libignition-gazebo-air-pressure-system.so"
name="ignition::gazebo::systems::AirPressure">
</plugin>
</plugin>

<%if !$headless %>
<executable_wrapper>
<plugin name="ignition::launch::GazeboGui"
filename="libignition-launch-gazebogui.so">
<world_name><%= $worldName %></world_name>
<window_title>SubT Simulator</window_title>
<window_icon><%= ENV['SUBT_IMAGES_PATH'] %>/SubT_logo.svg</window_icon>
<plugin filename="GzScene3D" name="3D View">
<ignition-gui>
<title>3D View</title>
<property type="bool" key="showTitleBar">false</property>
<property type="string" key="state">docked</property>
</ignition-gui>

<engine>ogre2</engine>
<scene>scene</scene>
<ambient_light>0.2 0.2 0.1</ambient_light>
<background_color>0.8 0.8 0.8</background_color>
<camera_pose>-6.3 -4.2 3.6 0 0.268 0.304</camera_pose>
<service>/world/<%= $worldName %>/scene/info</service>
<pose_topic>/world/<%= $worldName %>/pose/info</pose_topic>
<scene_topic>/world/<%= $worldName %>/scene/info</scene_topic>
<deletion_topic>/world/<%= $worldName %>/scene/deletion</deletion_topic>
</plugin>
<plugin filename="WorldControl" name="World control">
<ignition-gui>
<title>World control</title>
<property type="bool" key="showTitleBar">false</property>
<property type="bool" key="resizable">false</property>
<property type="double" key="height">72</property>
<property type="double" key="width">121</property>
<property type="double" key="z">1</property>

<property type="string" key="state">floating</property>
<anchors target="3D View">
<line own="left" target="left"/>
<line own="bottom" target="bottom"/>
</anchors>
</ignition-gui>

<play_pause>true</play_pause>
<step>true</step>
<start_paused>true</start_paused>
<service>/world/<%= $worldName %>/control</service>
<stats_topic>/world/<%= $worldName %>/stats</stats_topic>

</plugin>

<plugin filename="WorldStats" name="World stats">
<ignition-gui>
<title>World stats</title>
<property type="bool" key="showTitleBar">false</property>
<property type="bool" key="resizable">false</property>
<property type="double" key="height">110</property>
<property type="double" key="width">290</property>
<property type="double" key="z">1</property>

<property type="string" key="state">floating</property>
<anchors target="3D View">
<line own="right" target="right"/>
<line own="bottom" target="bottom"/>
</anchors>
</ignition-gui>

<sim_time>true</sim_time>
<real_time>true</real_time>
<real_time_factor>true</real_time_factor>
<iterations>true</iterations>
<topic>/world/<%= $worldName %>/stats</topic>
</plugin>
</plugin>
</executable_wrapper>
<%end%>

<%= spawner(robotName, modelURI, $worldName, 0, 0, 0.1, 0, 0, 0) %>
<%= rosExecutables(robotName, $worldName) %>

</ignition>

Loading