|
Package Summary
Tags | No category tags. |
Version | 1.0.1 |
License | BSD-3-Clause |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/aerostack2/aerostack2.git |
VCS Type | git |
VCS Version | humble-devel |
Last Updated | 2023-04-25 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- CVAR-UPM
Authors
as2_ign_gazebo_assets
Colletion of AS2 Ignition Gazebo assets and scripts.
Tested on Ignition Gazebo Fortress. Make sure to have it installed.
Gazebo naming has changed between ROS2 Galactic and ROS2 Humble releases (Gazeno new era). You should use as2_ign_gazebo_assets package version corresponding to your ROS2 version.
INDEX
- ADVANCED USAGE
RESOURCES
There are distinguish three kinds of reources: drone, sensor and world models.
DRONE MODELS
Drone model list.
| SDF Name | Status | Image | | - | :-: | - | | *quadroto_base* | FLYING |  | | *hexrotor_base* | FLYING |  | | *crazyflie* | UNSTABLE FLYING |  |SENSOR MODELS
Sensor model list.
| SDF Name | Description | Plugin | | - | - | - | | *imu* | **NOT SDF**: Alreay included in drone models. IMU sensor reports vertical position, angular velocity and linear acceleration readings. | ignition::gazebo::systems::Imu | | *air_pressure* | **NOT SDF**: Alreay included in drone models. Air pressure sensor reports vertical position and velocity readings. | ignition::gazebo::systems::AirPressure | | *magnetometer* | **NOT SDF**: Alreay included in drone models. Magnetometer sensor reports the magnetic field in its current location. | ignition::gazebo::systems::Magnetometer | | *hd_camera* | RGB Camera with 1280x960 resolution. | - | | *vga_camera* | RGB Camera with 640x480 resolution. | - | | *semantic_camera* | RGB Camera with 1280x960 resolution with semantic segmentation data. | - | | *rgbd_camera* | RGBD Camera with 640x480 resolution and 10 meters of depth sensing. | - | | *point_lidar* | Single point lidar with 40 meter range. | - | | *planar_lidar* | Planar scanning two-dimension lidar with 30 meter range. | - | | *3d_lidar* | Three-dimensional scan with 100 meter range. | - | | *gps* | Navigation satellite sensor reports position and velocity in spherical coordinates (latitude / longitude). | ignition::gazebo::systems::NavSat | | *suction_gripper* | Light weight suction gripper. | mbzirc::SuctionGripperPlugin |WORLD MODELS
World model list.
| SDF Name | Description | Image | | - | - | - | | *empty* | Empty world with ground. |  | | *test_gripper* | Empty world with two small objects to test the gripper. |  |HOW TO RUN: Basic usage
Previously setting AS2 environment, simply run:
${AEROSTACK2_PATH}/simulation/ignition/scripts/run_ign.sh
or using a config file (see config files) :
${AEROSTACK2_PATH/simulation/ignition/scripts/run_ign.sh <config-file>
This will run for you ign gazebo server, spawn an quadrotor_base model and open ign gazebo client (GUI).
OPTIONS
Inital configuration aspects as world, drone model, drone pose or adding several drones can be done setting environment variables or using a config file.
- Run on start:
export RUN_ON_START=1
- Verbose mode:
export VERBOSE_SIM=1
ENV VARS
Previously set needed environment variables before launching the script.
- World
export UAV_WORLD=<path-to-world>
- Drone model
export UAV_MODEL=<model-name>
- Drone pose
export UAV_X=<float> # meters
export UAV_Y=<float> # meters
export UAV_Z=<float> # meters
export UAV_YAW=<float> # radians
Using environment variables is though when using only one drone.
CONFIG FILE
Using a config file lets you to set the simulation environment. You can select a world (or none) and attach to it a number of desired drones with desired model, position and set of sensors. Please pay atention to the format file, otherwise it may fail.
JSON file template:
{
"world": "<world-name>", // optional: deafult world if empty
"drones": [ // optional: no drones if empty
{
"model": "<model-name>", // optional: default model if empty
"name": "<namespace>", // optional: default namespace if empty
"xyz": [<x>, <y>, <z>], // optional: [0, 0, 0] if empty
"rpy": [<roll>, <pitch>, <yaw>], // optional: [0, 0, 0] if empty
"flight_time": <min>, // optional: 0 or empty means not use battery
"payload": { // optional: no sensors if none
"<sensor-name>": { // REQUIRED if sensor is used
"sensor": "<sensor-type>", // REQUIRED if sensor is used
"xyz": [<x>, <y>, <z>], // optional: [0, 0, 0] if empty
"rpy": [<roll>, <pitch>, <yaw>], // optional: [0, 0, 0] if empty
},
"<sensor-name-2>": {
// Second sensor...
}
}
},
{
// Second drone...
}
]
}
Notice that comments are not available in JSON format and fields between "<" and ">" should be replaced with each value or removed (along with the field) if is not wanted or required.
Example of a valid JSON config file:
{
"world": "empty",
"drones": [
{
"model": "quadrotor_base",
"name": "drone_sim_0",
"xyz": [ 0.0, 0.0, 0.2 ],
"payload": {
"front_camera": {
"sensor": "hd_camera",
"rpy": [ 0.0, 0.0, 1.57 ]
},
"lidar_0": {
"sensor": "3d_lidar",
"xyz": [ 0.0, 0.0, -0.5 ]
}
}
},
{
"model": "hexrotor_base",
"xyz": [ 3.0, 0.0, 0.2 ],
"rpy": [ 0, 0, 1.57 ],
"flight_time": 10
}
]
}
MORE OPTIONS
- Use custom models in world/drone:
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<custom-model-path>
- Run simulation on start:
export RUN_ON_START=1
EXAMPLES
Several examples can be found on test folder.
Changelog for package as2_ign_gazebo_assets
1.0.1 (2023-04-25)
- Merge pull request #223 from aerostack2/200-unify-maintainer-in-packagexmls Maintainer unified to CVAR-UPM
- Maintainer unified to CVAR-UPM
- Merge pull request #222 from aerostack2/221-gazebo-gui-config-file [as2_ign_gazebo_assets] Added GUI config file
- gui config file and some documenting
- Merge pull request #209 from aerostack2/208-as2_simulation_assets-use-sim-time-default-parameter [ as2_simulation_assets] Use sim time default parameter
- Change use_sim_time default value
- Merge pull request #203 from aerostack2/simulation_assets_for_windmill_test [as2_ign_gazebo_assets] added use_sim_time parameter
- added use_sim_time parameter to ign_assets
- Merge pull request #202 from aerostack2/new-windmill [as2_ign_gazebo_assets] Added debug model for visualize in rviz
- added debug model for visualize in rviz
- Contributors: Javier Melero, Javilinos, Miguel Fernandez-Cortizas, RPS98, Rafael P
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | ament_cmake | |
2 | ros_gz_sim | |
2 | ros_gz_bridge | |
1 | rclcpp | |
1 | as2_core | |
2 | sensor_msgs | |
2 | geometry_msgs | |
3 | tf2_msgs | |
3 | tf2_ros |
System Dependencies
Name |
---|
python3-jinja2 |
Dependant Packages
Name | Repo | Deps |
---|---|---|
as2_platform_ign_gazebo | github-aerostack2-aerostack2 |