bebop_autonomy
bebop_autonomy copied to clipboard
Anafi Support
Searched for "Anafi" but did not find any existing issues. Are there any plans for adding support for the new Parrot Anafi? Before that can happen, it appears the SDK first has to be made available by Parrot, see Parrot Anafi SDK Thread on the developer forum.
Hey there! The Parrot SDK has been officially updated this week. Now, existing modules for Bebop drones should be usable in Anafi.
Has anyone used this software with the Anafi?
I didn't need it. The Parrot SDK does the work as of now. If you are willing to use ROS/2, you can interface with the SDK quite easily
@espetro , thanks for the quick reply. And what about ROS 1 ? Also, could you point me to the code you used for interfacing ROS2 with the Anafi ?
@fabrizioschiano Did you manage to get a solution to connect a Parrot Anafi to the bebop_autonomy package?
@MaxSmith13, I was working with a colleague on this. He told me: I ended up using Olympe inside my own ROS node, which was part of the reason to look into ROS+Python3.
However, Olympe is basically just a convenient wrapper around the (relatively new) arsdk-ng/arsdk-xml (see: https://github.com/Parrot-Developers/arsdk-ng), so any package based on that should also work. However, from what I could find out, the existing ROS packages for Parrot drones (e.g. bebop_autonomy) use a previous-gen SDK (ARSDK3) and won't work out-of-the-box with the Anafi.
@fabrizioschiano Thank you for your explanation!
Hi @fabrizioschiano @MaxSmith13 ,
Unfortunately I cannot share with you the code as it was done for a private company. Nevertheless, I can depict what I did.
As @fabrizioschiano has said, Olympe is a wrapper for the new version of the Parrot SDK, which is done in Python 3. Sadly, ROS uses Python 2.7 which needs a separate runtime, but I've heard that they're going to do newest versions in Py3. My workaround was to create a Olympe to ROS2 to ROS1 bidirectional channel using rosbridge
, so that I could still use most of the packages in ROS1 yet interfacing with the drone using Olympe.
Hope that this helps you in some way 😄
EDIT: ROS2 uses Py3, so the thing was to connect Olympe-ROS2 by Py3 then ROS2-ROS1 by
rosbridge
.