For some tasks (like Search and Rescue and mapping) what you can do with one vehicle, you can probably do faster with multiple vehicles. To test how well it works in practice I tested controlling three Pixhawk powered IRISs at the same time from the Mission Planner using an Antenna Tracker and six 3DR radios (jump here to skip the intro). A transmitter was attached but I didn't use it.
This test was done with APM:Copter 3.3-rc3 (AC3.2.1 should also work), Antenna Tracker 0.7 (ver 0.6 will work but only for two vehicles), and the latest Mission Planner.
The setup was:
- Each vehicle had a 3DR radio which was paired to a 3DR radio on the antenna tracker. Before the test I connected to each 3DR radio individually once and set their NetIDs to be "23" for the first IRIS and 1st 3DR radio on the tracker, "24" for the second pair, "25" for the 3rd pair.
- The 3DR radios on the tracker were plugged into the Tracker Pixhawk's Telem1, Telem2 and Serial 4/5 ports.
- Changed the Tracker Pixhawk's SERIAL4_PROTOCOL to "1" to redefine the Serial 4/5 port as a MAVLink channel (this is the new piece that's not available in Tracker 0.6 but will be released very soon).
- Connected the Tracker to my Windows PC using a USB cable
To control the vehicles, I:
- plugged in all three vehicles, started MissionPlanner and connected to the tracker and voila! All four vehicles (tracker + 3 IRISs) appeared on the map.
- switched between vehicles using the MP's hidden "Ctrl-X" keystroke. When you switch, the map re-centers on the new vehicle and the HUD, action tabs, etc all show information or allow control of that vehicle.
- The MP's dataflash screen's Action tab can be used to arm the vehicles, and right-mouse-button-clicking on the map and selecting "Take-off" allowed me to get the vehicles into the air without touching the RC transmitter.
- Used the action tab to change each vehicle into "AUTO" mode. I could have done other things like drag them around individually in Guided mode too.
Of course, there were some issues (I ran the test 3 times, the video is from the 2nd time). The biggest problem was that there was too much network traffic clogging up the 3DR radio links so sometimes the vehicle wouldn't respond quickly to the actions sent from the mission planner. So in my first test it was hard to arm and take-off before the vehicle auto-disarmed. We think the issue is that I didn't reduce the data rate and the antenna tracker combines all mavlink streams and then resends them out on all channels. This means a lot of bandwidth is being wasted sending, for example, copter's #1's position to copter #2. We probably want some vehicle information (like position) sent to all vehicles but other data (like IMU readings) isn't useful.
Another small issue was the Mission Planner would not let me send new commands until the last command was accepted/rejected by the vehicle. Makes sense in a single vehicle environment, but at times I wanted to submit a command to each vehicle in rapid succession without waiting for the first vehicle's response.
If I was going to do this often, I would change the setup so that there was a single TX/RX for each vehicle to allow faster manual take-over of a single vehicle. I could of course bring all three vehicles down by switching to stabilize and cutting the throttle, or I could switch a single vehicle to Loiter through the MP and then take-over with the RC but that's all a little clunky in an emergency situation.
I might also use RFD900 radios (or re-flash the 3DR radios with the RFD900 firmware) which would remove the need for the antenna tracker completely because it support multi-point communication.
So some more work to do including getting other GCSs like Droid Planner to handle multiple vehicles as well as the MP but still, I was pretty happy that it worked and I wanted others to know that this multi-vehicle style flying is possible.
Hi Warren, great to hear from you. Many thanks for the info. Was your resulting luck due to latency?
Hi Rico, I did attempt that a couple of years back with 3 with not much luck. By using both Telem sockets on the pix in the repeater aircraft it is possible with 4 radios. The MAVLink forwarding rules in ArduPilot will pass the packets through.
Hi Warren, have you had any experiences with relaying data through a single modem at all? I have 3 RFD900x's which I've just got talking to each other with the asynchronous firmware, no flight tests yet due hardware in transit.
Here is a blog I did on flying a quadcopter and fixed wing simultaneously.
That's awesome! Thank you so much!
I've used the RFD900 Tx/Rx with MultiPoint firmware to control multiple aircraft simultaneously.
Was the antenna tracker the only way you could connect all three vehicles? I'm trying to do the same thing without an antenna tracker and so far no luck.
I've air tested with one fixed wing and Quad.
Quad : Connected with GCS
Fixed Wing : Daisy chained with Quad
Fixed wing flew by 3km away from home in Guided mode and I clicked button RTL in MP several times but it didn't work.
So I landed Quad and let fixed wing directly connected with GCS and I did same thing again....and it worked
( But fixed wing crashed due to battery shortage caused by waiting for my RTL command for long time on way home )
With today test on multi-vehicle, the heavy traffic telemetry must be a big obstacle for commanding from GCS.
I hope you could provide a solution to avoid heavy traffic ^^;
Great to see you're attempting to recreate this. I also saw significant lag. I think the issue is that the antenna tracker is passing all vehicle data around. The way to resolve this is probably to change how the tracker forwards data so that it only forwards vehicle data to the ground station. I'd guess the best way to do that is to enhance the routing code. If I were to do it I would probably record the MAV_TYPE of each sys-id and use that to build up a list of which serial ports have ground stations on them .. and only forward on messages from ports without a GCS attached to ports with a GCS attached.
It's actually come up as an issue on the issues list.
I've set multi-vehicle for ground test as below
But I found issue on traffic - data rate.
The wiki says in order to reduce data rate, to do like below image
But I experienced bigger latency of artificial horizon refresh than I expected.
It's almost 2 seconds latency.
Is there any other way to reduce data rate?