Using ROS2 in a quadcopter swarm project

I would like to use ROS2 in a quadcopter swarm project.
The quadcopters would have a companion board and they would be connected via wifi to a gcs.
Is there anything to be aware of?
Is it possible to simulate multi-vehicle with ROS2?

@JonathanPlasse Is there a specific reason you are trying to use ROS2? As ROS2 is used for communication between the firmware and the companion computer, it is not directly related to swarming.

I forgot to specify that I use Vicon to locate the quadcopters.
The FastRTPS aspect of ROS2 as it reliably share time-critical/real-time information (Vicon data).

1 Like

@JonathanPlasse Do you currently have issues with ROS1?

I understand that ROS2 brings alot of advantages, but I don’t see what exactly you are trying to 'solve` by using ROS2. ROS1 is already enough to fly swarms in a mocap system.

I want to a low level control of the quadcopter on the companion computer by controlling motor speed.

@JonathanPlasse May I ask how is that related to simulating multivehicles with ROS2?

I would like to simulate the low level control of the quadcopter.

Simulation : do it on ROS1 with Gazebo. You can simulate the full system out of the box with a lot of tutorials and help online.

ADVICE: ROS2 will only come at a struggle for you right now. Start with ROS1, and later, if you have problems, you can try with ROS2.

1 Like

@Jaeyoung-Lim, @AlexisTM,
Are your recommendation about ROS2 still valid? I’m not asking about swarm, but recently there are many packages developed strictly for ROS2 like gym-gazebo2 for example.

@soldierofhell ROS2 should be in a good shape for PX4

1 Like

Just be aware that you will eventually need to refactor the code to upgrade to the next release. This is getting much much more stable now and should be fine.

If you rely on ROS2 stuff and ROS1 stuff, you can always use ros1_bridge to allow to play with both.

Thank you guys, correct me if I’m wrong, but currently the only available protocol is RTPS? (there’s no support for MAVROS, even through ros1_bridge)