Skip to content

Simulador Hardware-in-the-Loop del dron crazyflie 2.1 en ROS, Gazebo y Matlab

License

Notifications You must be signed in to change notification settings

Robotic-Park-Lab/uned_crazyflie_ros_pkg

Repository files navigation

uned_crazyflie_ros_pkg

Repositorio con los paquetes de ROS2 y ficheros de configuración para la teleoperación y simulación del dron crazyflie 2.1 en ROS2, Gazebo y Matlab. La finalidad es obtener una herramienta Hardware-in-the-Loop que sea facilmente escalable y mantenible.

Estructura

  • doc. Contiene un fichero .tex que aborda más en detalle toda la información relacionada con el repositorio: esquemas de ROS, búsquedas bibliográficas, enlaces de interés, etc.
  • scripts. Contiene aquellos ficheros auxiliares que no forman parte de ningún paquete de ROS. Por ejemplo, ficheros .sh para automatizar procesos repetitivos como la conversión de los ficheros .bag a txt o los scripts de Matlab para representar datasets.
  • uned_crazyfldie_config. Paquete de ROS2. Contiene aquellos elementos auxiliares para la configuración del entorno, así como los .launch.py para la ejecución en bloque de las diferentes estructuras del sistema.a
  • uned_crazyflie_controllers. Paquete de ROS2. Contiene los nodos de control en función de las diferentes arquitecturas de control: PID Periódico y PID Basado en Eventos.
  • uned_crazyflie_driver. Paquete de ROS2. Contiene los nodos para la comunicación con los crazyflies a través de la librería cflib: crazyflie_driver y swarm_driver.
  • uned_crazyflie_gui. Paquete de ROS2. Contiene la interfaz de gráfica para el manejo del robot individual. En desarrollo
  • uned_crazyflie_task.
  • uned_crazyflie_test_ros2. Paquete de ROS2. Paquete en el que se incluyen todos los elementos destinados a realizar comprobaciones en el sistema de forma rápida. Por ejemplo los nodos talker y listener que se desarrollan al empezar a usar ROS, que en este caso se usan para comprobar la correcta comunicación entre máquinas en el sistema distribuido.
  • uned_crazyflie_webots.

Instalación 📖

El objetivo es implementar una versión del sistema en ROS2 Humble Hawksbill y Windows 10 para poder ejecutar todo el sistema sobre el PC (Windows) en el que está instalado el sistema de posicionamiento de Vicon.

Pre-requisitos 📋

ROS2

Lo primero debe ser tener instalada la correspondiente versión de ROS2 para el sistema operativo del dispositivo. Se recomienda seguir las instrucciones disponibles en la documentación oficial (Humble).

Matlab

TO-DO.

Dependencias

- Windows 10

La configuración del entorno de trabajo para el paquete desarrollado se muestra a continuación.

md \dev_ws\src
cd \dev_ws\src
git clone -b humble-dev https://github.com/Robotic-Park-Lab/uned_crazyflie_ros_pkg.git
cd ..
colcon build --merge-install

- Ubuntu 22.04

La configuración del entorno de trabajo para el paquete desarrollado se muestra a continuación.

cd \path_ws\src
git clone -b humble-dev https://github.com/Robotic-Park-Lab/uned_crazyflie_ros_pkg.git
cd ..
colcon build --symlink-install

Uso 🔧

Variables

https://www.bitcraze.io/documentation/repository/crazyflie-firmware/master/api/logs/#pm

ROS2

cd \dev_ws
colcon build --merge-install --packages-select uned_crazyflie_driver
ros2 run uned_crazyflie_driver crazyflie_driver

Actualmente (2021-09-28), solo está implementada la función de despegue y aterrizaje mediante un topic. Las instrucciones para ello son:

ros2 topic pub /cf_order std_msgs/String "{data: 'take_off'}"
ros2 topic pub /cf_order std_msgs/String "{data: 'land'}"
ros2 launch uned_crazyflie_config test.launch.py

Alt text

Controlador en Matlab

TO-DO

Hardware-in-the-Loop

TO-DO

Autores ✒️

Publicaciones asociadas 📎

About

Simulador Hardware-in-the-Loop del dron crazyflie 2.1 en ROS, Gazebo y Matlab

Resources

License

Stars

Watchers

Forks