What is the most accurate and responsive way to control ArduCopter? I’ve found that ArduCopter responds slowly to Mavlink messages and have read that the replies to Mavlink messages only come back at 50Hz rate which is pretty slow when you consider all the types of messages coming into the companion computer.
I watched a presentation recently about doing aerobatics with lua-script but this was more of a “flick a switch and it will do a loop” type thing. It did seem that the drone was responding much more quickly than my experience with Mavlink messages.
I’ve also been reading about something called BlueOS which must have some way of controlling ArduCopter in a responsive manner.
So how does one control ArduCopter best from a companion computer?
What is the problem you’re trying to solve here?
MAVLink is only designed for high-level commands in the 10’s of Hz at best.
If you’re wanting tighter control, I’d suggest looking at our ROS interface. Or as you mentioned, run it all onboard as a Lua script.
EDIT:
BlueOS uses MAVLink. It doesn’t need high update rates.
2 Likes
Thanks for your reply. I want to do aerobatics created on the fly by the companion computer, (ideally created using a GNN). I need the computing power of the companion computer coupled with the safety of having a discrete autopilot.
Are you sure about ROS? I did some research and it seems that is just a higher layer like BlueOS that uses Mavlink to communicate, and because of this, will suffer the latency problems of Mavlink.
The Lua script thing intrigues me but I can’t see how you would tell it to do things from a companion computer as it seems entirely suited to running stand alone on the autopilot. I suppose you could change and read custom params but that seems a bit hacky.
When we talk about ros, we mean native ROS2 DDS. And unlike ROS 1 it does not have the MAVLink overhead of MAVROS.
So yes, ROS2 is fast and it’s the solution you’re looking for.
2 Likes
That’s interesting, I’ll read up more about ROS2 DDS.
In my application I am using Mavlink directly and hence there is no overhead of the MAVROS translation layer.
The issue appears to be the responsiveness of ArduCopter when sending/receiving Mavlink messages which is not great.
If ROS2 DDS works in ArduCopter in a faster way then great.