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.
- 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.
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.
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).
TO-DO.
- Crazyflie python library: Robotic-Park-Lab branch
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
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
https://www.bitcraze.io/documentation/repository/crazyflie-firmware/master/api/logs/#pm
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
TO-DO
TO-DO
- Mañas-Álvarez, F.J., Guinaldo, M., Dormido, R., Socas, R., Dormido, S. Control basado en eventos mediante umbral relativo aplicado al control de altitud de cuadricópteros Crazyflie 2.1. En XLII Jornadas de Automática: libro de actas. Castelló, 1-3 de septiembre de 2021 (pp. 341-348). DOI capítulo: https://doi.org/10.17979/spudc.9788497498043.341 DOI libro: https://doi.org/10.17979/spudc.9788497498043