Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply velocity and acceleration limits to submitted configs #498

Merged
merged 5 commits into from
Aug 5, 2020
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
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
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ This Aerial Scout is controlled by the default twist controller package inside t

### Motion Characteristics
Based on the tests specified in the DARPA SubT Challenge [Model Preparation
Guide], this vehicle has the following motion constraint characteristics.
Guide](https://subtchallenge.com/resources/Simulation_Model_Preparation_Guide.pdf), this vehicle has the following motion constraint characteristics.
* _x_ linear velocity range from -3.0 m/s to 3.0 m/s
* _y_ linear velocity range from -3.0 m/s to 3.0 m/s
* _z_ linear velocity range from -1.8 m/s to 1.8 m/s
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ def spawner(_name, _modelURI, _worldName, _x, _y, _z, _roll, _pitch, _yaw)
<wheel_separation>#{0.45649 * 1.5}</wheel_separation>
<wheel_radius>0.1651</wheel_radius>
<topic>/model/#{_name}/cmd_vel_relay</topic>
<min_velocity>-1</min_velocity>
<max_velocity>1</max_velocity>
<min_acceleration>-3</min_acceleration>
<max_acceleration>3</max_acceleration>
</plugin>
<!-- Publish robot state information -->
<plugin filename="libignition-gazebo-pose-publisher-system.so"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ def spawner(_name, _modelURI, _worldName, _x, _y, _z, _roll, _pitch, _yaw)
<wheel_separation>#{0.45649 * 1.5}</wheel_separation>
<wheel_radius>0.1651</wheel_radius>
<topic>/model/#{_name}/cmd_vel_relay</topic>
<min_velocity>-1</min_velocity>
<max_velocity>1</max_velocity>
<min_acceleration>-3</min_acceleration>
<max_acceleration>3</max_acceleration>
</plugin>
<!-- Publish robot state information -->
<plugin filename="libignition-gazebo-pose-publisher-system.so"
Expand Down
13 changes: 9 additions & 4 deletions submitted_models/explorer_ds1_sensor_config_1/specifications.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ DARPA Subterranean Challenge Technology Repository -->
# Explorer - DS1
This specifications.md file is a description and proof of virtual model validation for
Explorer's robot DS1 with Sensor Configuration 1. This robot may be launched using
a `roslaunch` command with the variable name `explorer_ds1_sensor_config_1`.
an `ign launch ` command with the variable name `explorer_ds1_sensor_config_1`.

## Description
DS1 is quadrotor UAV. It is designed for exploring various environments, such as tunnels, caves and so on.

Expand All @@ -25,15 +26,19 @@ DS1 is controlled by the open-source teleop_twist_joy package.

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

* _x_, _y_, and _z_ velocity range from -4.0 m/s to 4.0 m/s
* _x_, _y_, and _z_ acceleration range from -10 m/s<sup>2</sup> to 10 m/s<sup>2</sup>

The constraints can be found in the following locations within the simulation model package:

* `spawner.rb`, lines 113-115

## Endurance Characteristics
Based on the tests specified in the DARPA SubT Challenge [Model Preparation
Guide](https://subtchallenge.com/\<fix_me\>), this vehicle has the following
Guide](https://subtchallenge.com/resources/Simulation_Model_Preparation_Guide.pdf), this vehicle has the following
endurance characteristics:

* Battery life of 600 seconds
Expand All @@ -42,7 +47,7 @@ endurance characteristics:
Virtual DS1 is a faithful representation of real-world DS1 both in appearance and
in physical properties. However, there are few diversions:
* It does not model long-range Rajant communication of the real robot.
* It does not model the exact dynamic model (mass and inertial) of real-world DS1, instead it's using the motion parameters of standard X3 UAV model for control perspective.
* It does not model the exact dynamic model (mass, inertia, motion, and endurance characteristics) of real-world DS1, instead it's using the motion parameters of standard X3 UAV model for control perspective until validation data can be provided.

# <a name="validation_links"></a>DS1 Validation and Specification Links

Expand Down
10 changes: 7 additions & 3 deletions submitted_models/explorer_r2_sensor_config_1/specifications.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ The following specific sensors are declared payloads of this vehicle:
* 4x RGBD camera &mdash; intel realsense depth d435i, modeled by `rgbd_camera` plugin.
* 1x 3D medium range lidar &mdash; Velodyne-16, modeled by `gpu_lidar` plugin.
* 1x IMU &mdash; Xsense MTI-100, modeled by `imu` plugins.
* 12 communication breadcrumbs are also available as a payload for this robot in sensor configuration 2.

## Control
R2 is controlled by the open-source teleop_twist_joy package.
Expand All @@ -28,7 +29,7 @@ Based on the tests specified in the DARPA SubT Challenge [Model Preparation
Guide](https://subtchallenge.com/\<fix_me\>), this vehicle has the following motion
constraint characteristics:

* _x_ velocity range from -2.0 m/s to 2.0 m/s
* _x_ velocity range from ~~-2.0 m/s to 2.0 m/s~~, currently modeled as -1.0 m/s to 1.0 m/s until validation data can be provided
* _x_ acceleration range from -10 m/s<sup>2</sup> to 10 m/s<sup>2</sup>
* Turning radius of 0.6 m
* Rotation angle between two parts of the robot is limited to -30-30 degree
Expand All @@ -41,18 +42,21 @@ package:
* Other wheels &mdash; just below Left front wheel in the same file.
* Rotation angle limit &mdash; model.sdf, line 547 to 550
* Spring coefficients &mdash; model.sdf, line 554 and 555
* `diff_drive` controller limits in `spawner.rb`, lines 23-26

## Endurance Characteristics
Based on the tests specified in the DARPA SubT Challenge [Model Preparation
Guide](https://subtchallenge.com/\<fix_me\>), this vehicle has the following
Guide](https://subtchallenge.com/resources/Simulation_Model_Preparation_Guide.pdf), this vehicle has the following
endurance characteristics:

* Battery life of 5400 seconds
* Battery life of ~~5400 seconds~~, currently modeled as 1 hour until validation data can be provided

## Diversions from Physical Hardware of R2
Virtual R2 is a faithful representation of real-world R2 both in appearance and
in physical properties. However, there are few diversions:
* The endurance and motion characteristics above are approximated to match existing models until model validation data can be provided.
* It does not model long-range Rajant wireless network of the real robot.
* The physical robot has 9 communication breadcrumbs. 12 breadcrumbs are included in sensor configuration 2, which is standardized to match other available models.

# <a name="validation_links"></a>R2 Validation and Specification Links

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ def spawner(_name, _modelURI, _worldName, _x, _y, _z, _roll, _pitch, _yaw)
<wheel_separation>#{0.45649 * 1.5}</wheel_separation>
<wheel_radius>0.1651</wheel_radius>
<topic>/model/#{_name}/cmd_vel_relay</topic>
<min_velocity>-1</min_velocity>
<max_velocity>1</max_velocity>
<min_acceleration>-3</min_acceleration>
<max_acceleration>3</max_acceleration>
</plugin>
<!-- Publish robot state information -->
<plugin filename="libignition-gazebo-pose-publisher-system.so"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ def spawner(_name, _modelURI, _worldName, _x, _y, _z, _roll, _pitch, _yaw)
<wheel_separation>#{0.45649 * 1.5}</wheel_separation>
<wheel_radius>0.1651</wheel_radius>
<topic>/model/#{_name}/cmd_vel_relay</topic>
<min_velocity>-1</min_velocity>
<max_velocity>1</max_velocity>
<min_acceleration>-3</min_acceleration>
<max_acceleration>3</max_acceleration>
</plugin>
<!-- Publish robot state information -->
<plugin filename="libignition-gazebo-pose-publisher-system.so"
Expand Down
26 changes: 20 additions & 6 deletions submitted_models/marble_hd2_sensor_config_1/specifications.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,25 +43,38 @@ The following specific sensors are declared payloads of this vehicle:
* Microstrain IMU: 3DM-GX5-25, modeled by imu_sensor plugin. Notes on modeling of the IMU are included in the model.sdf file. (located under the 3D lidar, installed at same x,y location as 3D lidar)
- RPLidar S1 Planar Lidar (under the 3D lidar), modeled by gpu_ray plugin
- Vividia HTI-301 LWIR Camera (not modeled because thermal camera not yet supported in simulator) - located on the turret next to the D435i and light.
* 12 communication breadcrumbs are also available as a payload for this robot in sensor configuration 2.

### Control
This MARBLE HD2 is controlled by the DiffDrive plugin. It accepts twist inputs which drive the vehicle along the x-direction and around the z-axis. We add additional pseudo-wheels where the HD2's treads are to better approximate a track vehicle. Currently, we are not aware of a track-vehicle plugin for ignition-gazebo. A TrackedVehicle plugin does exist in gazebo8+, but it is not straightforward to port to ignition-gazebo. We hope to work with other SubT teams and possibly experts among the ignition-gazebo developers to address this in the future.

### Motion CharacteristicsBased on the tests specified in the DARPA SubT Challenge [Model PreparationGuide](https://subtchallenge.com/\<fix_me\>), this vehicle has the following motion constraint characteristics.
### Motion 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 -1.0 m/s to 1.0 m/s
* _x_ acceleration range from -3.0 m/s<sup>2</sup> to 3.0 m/s<sup>2</sup>

The constraints can be found in the following locations within the simulation model package:

* `spawner.rb`, lines 27-30

This configuration has roughly the same motion characteristics as the COSTAR/MARBLE husky vehicles, except it also has a pan/tilt mechanism which has additional motion characteristics. We have included a test script in this folder (test_gimbal.sh) which sends pan and tilt commands using ROS topics. This script assumes you have named your vehicle X1.

At this time, we assume that the motion characteristics are the same as the COSTAR husky which has already been modeled. We were unable to perform additional validation tests due to COVID-19 restrictions.

### Endurance Characteristics
This configuration has an endurance of approximately 2 hours. We plan to carry out the endurance test characterization but have been prevented from doing so due to the coronavirus measures preventing us from visiting the lab space while preparing these models for simulation.
This configuration has an endurance of approximately 2 hours, but we have limited the model in simulation to have a 1 hour endurance. We plan to carry out the endurance test characterization but have been prevented from doing so due to the coronavirus measures preventing us from visiting the lab space while preparing these models for simulation.

### Diversions from Physical Hardware of MARBLE HD2
Computers were installed in the payload area of the husky and these have been roughly modeled (the rail and computer bay are shown in the model.sdf model). The MARBLE vehicle uses an AMD Ryzen processor (32-core) with 64 GB of RAM. It has a cooling system as well which makes up part of the black bay seen in the sdf model.

## X4 Validation and Specification Links
The endurance and motion characteristics above are approximated to match existing models until model validation data can be provided.

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

## Validation and Specification Links
* Vehicle Links:
* https://clearpathrobotics.com/husky-unmanned-ground-vehicle-robot/
* https://www.superdroidrobots.com/shop/item.aspx/hd2-treaded-atr-tank-robot-platform/789/

* Sensor specification links:
* Trossen ScorpionX MX-64 Robot Turret - https://www.trossenrobotics.com/p/ScorpionX-RX-64-robot-turret.aspx
Expand All @@ -70,15 +83,16 @@ Computers were installed in the payload area of the husky and these have been ro
* RPLidar S1 Planar Lidar - https://www.slamtec.com/en/Lidar/S1Spec
* Vividia HTI-301 LWIR Camera - https://www.oasisscientific.com/store/p504/Vividia_HTi_HT-301_Thermal_Imaging_Camera_for_Android_Phone_and_Tablet_with_IR_Resolution_384x288.html
* IMU: Microstrain 3DM-GX5-25 - datasheet: https://www.microstrain.com/sites/default/files/applications/files/3dm-gx5-25_datasheet_8400-0093_rev_n.pdf
* Explanation of sensor parameter derivations:
~~* Explanation of sensor parameter derivations:
We derived the stddev terms as follows:

accelerometer noise density = 0.00002 g/sqrt(Hz)
=> convert to m/s^2 => 1.962e-4 m/s^2
gyro noise density = 0.005 deg/s/sqrt(Hz)
=> convert to rad/sec => 8.72664e-5 radians

Other terms are difficult to extract from datasheet, so we used similar terms to previous IMU models proposed (of similar or worse quality) such as the ADIS 16448 (which has worse performance than this IMU).
Other terms are difficult to extract from datasheet, so we used similar terms to previous IMU models proposed (of similar or worse quality) such as the ADIS 16448 (which has worse performance than this IMU). ~~
- IMU model is standardized to match other available models.

* \<Validation Video Link(s), e.g.,https://youtu.be/xxxxxxxxx/\>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these placeholders for Validation links still supposed to be here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. We expect a later PR submitting the validation data and updating the MARBLE models' velocity, accel, and endurance limits to match.

* \<Validation Data Link(s), e.g., https://drive.google.com/file/xxxxxxxxx/\>
Expand Down
Loading