Aerostack2
Desarrolla tu enjambre de drones desde simulación a real
Rafael Perez-Segui, Pedro Arias-Perez, 19/09/2024, Sevilla
Aerostack2 - ROSCon España 2024 Workshop
Agenda
2
Aerostack2 - ROSCon España 2024 Workshop
¿Qué es Aerostack2?
Aerostack2 en un framework de código abierto destinado al diseño y creación de sistemas aéreos multiagentes, basado en ROS 2.
Es una evolución de su predecesor Aerostack, usado por nuestro grupo Computer Vision & Aerial Robotics (CVAR) Group desde 2016.
3
Aerostack2 - ROSCon España 2024 Workshop
Especificaciones
4
Aerostack2 - ROSCon España 2024 Workshop
Arquitectura
5
Aerostack2 - ROSCon España 2024 Workshop
Arquitectura
6
Aerostack2 - ROSCon España 2024 Workshop
Interfaz con los actuadores y sensores
Interfaz entre las distintas plataformas aéreas y sus sensores con Aerostack2.
7
Aerostack2 - ROSCon España 2024 Workshop
Plataformas soportadas
8
Bitcraze Crazyflie 2.X
DJI Ryze Tello
Plataformas basadas en PX4 / Mavlink
DJI Matrice 200/300 series
Gazebo
AS2 Multirotor Simulator
Aerostack2 - ROSCon España 2024 Workshop
Gazebo Platform
9
world_name: "empty"
drones:
- model_type: "crazyflie"
model_name: "drone0"
xyz:
- 0.0
- 0.0
- 0.3
- model_type: "crazyflie"
model_name: "drone1"
xyz:
- -0.5
- 0.0
- 0.3
- model_type: "crazyflie"
model_name: "drone2"
xyz:
- -1.0
- 0.0
- 0.3
ros2 launch as2_gazebo_assets launch_simulation.py
simulation_config_file:=<%= simulation_config_file %>
ros2 launch as2_platform_gazebo platform_gazebo_launch.py
namespace:=<%= drone_namespace %>
platform_config_file:=config/config.yaml
simulation_config_file:=<%= simulation_config_file %>
Aerostack2 - ROSCon España 2024 Workshop
Arquitectura
10
Aerostack2 - ROSCon España 2024 Workshop
State Estimator
Encargado de proporcionar el estado del dron.
11
ros2 launch as2_state_estimator state_estimator_launch.py
namespace:=<%= drone_namespace %>
config_file:=config/config.yaml
Aerostack2 - ROSCon España 2024 Workshop
Motion Controller
Encargado del movimiento del dron.
12
ros2 launch as2_motion_controller controller_launch.py
namespace:=<%= drone_namespace %>
config_file:=config/config.yaml
plugin_name:=pid_speed_controller
plugin_config_file:=config/pid_speed_controller.yaml
Aerostack2 - ROSCon España 2024 Workshop
Ejemplos prácticos
13
Aerostack2 - ROSCon España 2024 Workshop
Arquitectura
14
Aerostack2 - ROSCon España 2024 Workshop
Behaviors
15
Aerostack2 - ROSCon España 2024 Workshop
Behaviors
16
# Motion Behaviors
- ros2 launch as2_behaviors_motion motion_behaviors_launch.py
namespace:=<%= drone_namespace %>
config_file:=config/config.yaml
# Trajectory Generation Behavior
- ros2 launch as2_behaviors_trajectory_generation generate_polynomial_trajectory_behavior_launch.py
namespace:=<%= drone_namespace %>
config_file:=config/config.yaml
# Point Gimbal Behavior
- ros2 launch as2_behaviors_perception point_gimbal_behavior.launch.py
namespace:=<%= drone_namespace %>
config_file:=config/config.yaml
Aerostack2 - ROSCon España 2024 Workshop
Arquitectura
17
Aerostack2 - ROSCon España 2024 Workshop
Plan Execution Control
Se encarga de la especificación del plan de misión y la supervisión de su ejecución.
18
import rclpy
from as2_python_api.drone_interface import DroneInterface
rclpy.init()
drone = DroneInterface(drone_id="drone0")
drone.takeoff(height=1.0, speed=0.5)
drone.go_to.go_to_point([1.0, 1.0, 2.0], speed=0.5, frame_id="earth")
drone.land(speed=0.5)
drone.shutdown()
rclpy.shutdown()
"target": "drone0",
"plan": [
{
"behavior": "takeoff",
"args": {"height": 1.0, "speed": 0.5}},
{
"behavior": "go_to",
"method": "go_to_point",
"args": {"point": [1.0, 1.0, 2.0] , "speed": 0.5 , "frame_id": "earth"}},
{
"behavior": "land",
"args": {"speed": 0.5 }}
]
Behavior Trees
AS2 Mission Interpreter
AS2 Python API
Aerostack2 - ROSCon España 2024 Workshop
Arquitectura
19
Aerostack2 - ROSCon España 2024 Workshop
Mission Control
Destinado a facilitar la definición y supervisión de las misiones.
20
AS2 GUI
AS2 Keyboard Teleoperation
AS2 Alphanumeric Viewer
Aerostack2 - ROSCon España 2024 Workshop
Ejemplos prácticos
21
Aerostack2 - ROSCon España 2024 Workshop
Use Cases:
22
Aerostack2 - ROSCon España 2024 Workshop
Use Cases:
23
ARIAS-PEREZ, Pedro, et al. Exploring Unstructured Environments using Minimal Sensing on Cooperative Nano-Drones. arXiv preprint arXiv:2407.06706, 2024.
Aerostack2 - ROSCon España 2024 Workshop
Use Cases:
24
Aerostack2 - ROSCon España 2024 Workshop
Real World Experiment
25
Aerostack2 - ROSCon España 2024 Workshop
Even harder !!
26
Aerostack2 - ROSCon España 2024 Workshop
Agradecimientos
Principales autores:
- Miguel Fernandez-Cortizas
- Pedro Arias-Perez
- Rafael Perez-Segui
- Javier Melero-Deza
- David Perez-Saura
- Martin Molina
- Pascual Campoy
27
Aerostack2 - ROSCon España 2024 Workshop
Gracias por vuestra atención
28
Please consider to star and contribute to our project on GitHub!
Aerostack2 - ROSCon España 2024 Workshop
Aerostack2
Desarrolla tu enjambre de drones desde simulación a real
Rafael Perez-Segui, Pedro Arias-Perez, 19/09/2024, Sevilla
Aerostack2 - ROSCon España 2024 Workshop