How to build a drone with ROS2 and (indoor) navigation function

Hello. My name is chaos and I am learning how to control a drone with ROS2.

My current goal is to master indoor drone navigation. I don’t have any experience with this, so I found and tried The Construct’s
ROS Q&A series「2D Drone Navigation」. It’s very helpful and I learned how to build a drone with ROS

But I am a ROS beginner and many people, including the official ROS2 Tutorials, recommend starting with ROS2.

So here are my questions:

How can I reproduce the functions which are introduced in 「2D Drone Navigation」with ROS2? Are there any backwards compatible ROS packages that will work in ROS2 ?
For example, I couldn’t find 「gmapping, amcl and move_base」packages or scripts in turtlebot3_navigation2 ROS2 branch. If there are best practices for this, please tell me.

I am going to try 「[ROS Projects] - Performing LSD-SLAM with a ROS based Parrot AR.Drones」next.
Like question 1, I would like to know whether there is a ROS2 version of these instructions.

My final goal is to realize something like the video below. Are there any ROS2 packages that could help make indoor navigation with a drone easier?
drone indoor navigation with ROS:Corvus One - The World's Best Indoor Intelligence Platform - YouTube

Lastly, I have a question about choosing my drone’s core.

I am learning how to build my drone with ROS2 by watching micro-ros tutorials and using the macro MAV「Crazyflie」used in micro-ros’s demo.

I plan to switch to PX4 in the future because PX4 supports ROS2 and communicates with ROS2 like 「Crazyflie」.

It seems Ardupilot will support ROS2 in the future but still use MAVROS, which is called 「Not future proof」in the video below (DDS/ROS2 bridge vs MAVROS). Therefore, I think PX4 is the best choice for now. Please let me know if my conclusion is wrong.

DDS/ROS2 bridge vs MAVROS 3:01 ~:ROS World 2020: Getting started with ROS 2 and PX4 - YouTube)

Thank you so much for all your help. I hope I haven’t asked too many questions.


Yeah you reached to the correct conclusion.
You can use ROS1 stuff in ROS2 using ROSbridge. That way any stuff you do in ROS1 is usable in ROS2.

If you create a ROSject or Git of this it would be great that you share it and create a video on the matter because all the community will be delighted to have some ROS2 drone example.

Sorry for the late reply.

Thank you for answering my question.

>If you create a ROSject or Git of this it…
That’s a great idea! I am going to create a repository for this and share it through this thread (hopefully sometime this year).

Thank you so much.