cmd_vel in crazyflie_controller_bridge.py
Posted: Tue Feb 12, 2019 1:16 pm
Hello,
My name is Agustín Ramos and I am a researcher at the University of Seville (Spain) in the group of Robotics, Vision and Control. Since a month ago we are testing the Loco Positioning System with 6 nodes in TWR mode and with one cf2. We are using ROS Kinetic, Ubuntu 16.04 and the drivers lps-ros and crazyflie_ros to do autonomous missions, following these instructions: https://wiki.bitcraze.io/doc:lps:ros.
Analyzing the code, specifically in lps-ros/scripts/crazyflie_controller_bridge.py, I do not understand why in (x, y) you subscribe in goal and publish in cmd_vel directly, without a coordenates transformation between the target world and the target drone: https://github.com/bitcraze/lps-ros/blo ... py#L79-L80. I think it has no sense. I have been looking for in the code but I can not find where changes the targets. I realized that whoenig in https://github.com/whoenig/crazyflie_ro ... pp#L75-L76 does something similar with a external PID controlller, but that has more sense because in this case there is a transform drone - world.
Another question related to the previous is about how and where the crazyflie-firmware receives this cmd_vel published in crazyflie_controller_bridge.py to do the internal PID controller in https://github.com/bitcraze/crazyflie-f ... ller_pid.c. I assume that, although crazyflie_controller_bridge.py publishes in cmd_vel, this script uses the PIDs in position_controller_pid.c to fly (viewtopic.php?f=16&t=2474&p=12516&hilit), but I can not find how the crazyflie_firmware takes the cmd_vel topic to do the PID control.
All these doubts are because our purpose is to do autonomous missions using ROS, commanding waypoints in velocity and using the internal PID controller of the firmware, but first of all we need to understand the code we are using to improve the flight tuning the PIDs.
Thank you in advanced.
Best regards,
Agustín.
My name is Agustín Ramos and I am a researcher at the University of Seville (Spain) in the group of Robotics, Vision and Control. Since a month ago we are testing the Loco Positioning System with 6 nodes in TWR mode and with one cf2. We are using ROS Kinetic, Ubuntu 16.04 and the drivers lps-ros and crazyflie_ros to do autonomous missions, following these instructions: https://wiki.bitcraze.io/doc:lps:ros.
Analyzing the code, specifically in lps-ros/scripts/crazyflie_controller_bridge.py, I do not understand why in (x, y) you subscribe in goal and publish in cmd_vel directly, without a coordenates transformation between the target world and the target drone: https://github.com/bitcraze/lps-ros/blo ... py#L79-L80. I think it has no sense. I have been looking for in the code but I can not find where changes the targets. I realized that whoenig in https://github.com/whoenig/crazyflie_ro ... pp#L75-L76 does something similar with a external PID controlller, but that has more sense because in this case there is a transform drone - world.
Another question related to the previous is about how and where the crazyflie-firmware receives this cmd_vel published in crazyflie_controller_bridge.py to do the internal PID controller in https://github.com/bitcraze/crazyflie-f ... ller_pid.c. I assume that, although crazyflie_controller_bridge.py publishes in cmd_vel, this script uses the PIDs in position_controller_pid.c to fly (viewtopic.php?f=16&t=2474&p=12516&hilit), but I can not find how the crazyflie_firmware takes the cmd_vel topic to do the PID control.
All these doubts are because our purpose is to do autonomous missions using ROS, commanding waypoints in velocity and using the internal PID controller of the firmware, but first of all we need to understand the code we are using to improve the flight tuning the PIDs.
Thank you in advanced.
Best regards,
Agustín.