Joystick flying with ArduCopter
Awhile ago I promised a more postings and so here we go. I know that many of you have been waiting this fun to be true... Now it is.
One our friend came to visit today at jDrones and they wanted to see latest software and other improvements on the whole project so we went to our local flying area next to our office and started to play with our birds.
We tested different combinations from quads to hexas but most memorable moment for our guests was that when I started to fly without any RC controller. Just had Laptop, Joystick and XBee telemetry. Well what else you need?? :)
Ok I would not say that everyone should rush to it but this is a good start. We still need to solve several issues on failsafes and so on but we are close. All I can do is to give big hoooray to our development team on all the achievements that we have been done.
Video might be a bit shaky but so it the pilot (my second time to fly our hexas with joystick).
Have fun and we will be there......
Br,
Jani
Comments
Thanks Jani for the extra response! It is great that the latency is not horrible (depending on opinion). I wonder if it would be even further improved with a 2.4Ghz setup. Does ArduCopter still do 57.6K with a 2.4Ghz setup even though this supports a much higher Baud rate (256K, I think)? If so, this might be a barrier to any improvement through a switch to 2.4Ghz. Obviously range/interference would be affected by changing the frequency.
For the controls, I would agree that it was too sensitive. However, I would think that this could easily be controlled just by changing the settings for the Joystick on the PC (nothing to do with ArduCopter). I think the "sensitivity” controls on the PC (via DirectX or windows gamepad, etc.) should be reduced until you find yourself using the entire range on the joystick. If you never use the most drastic range of the joystick (or at least close), then I think the sensitivity is too high. From watching the video, it seemed like you were barely even moving the joystick at all or your joystick has a very limited range of motion.
For the throttle, I again think that the sensitivity was an issue. A whole different thought process is that the throttle should be taken out of the human interface. I think that a joystick slider of some sort might be better utilized as a “elevation up / down” control. The further the slider in the direction then the faster the climb/drop rate would be. The center position would be essentially be an “altitude hold”. The forward/backward of the joystick (Y) controls forward and back while the side to side (X) controls side to side. A Z axis on the joystick could control rotation.
With this said, I think that I might eventually prefer a bluetooth Xbox/PS3 controller. Once a computer is in the middle, you can easily make this transition with a program like “MotionJoy”. This also allows you to program every axis and button to whatever function that you might like. I think MotionJoy might even be able to inherently link a button to Macros or button combinations. I use MotionJoy all the time and think that it is awesome (but I have not used Macros or button combinations in particular). If using these controllers, I think that the left joystick would be forward/backward/left/right while the right joystick would be elevation control and rotation. Again, I don’t think throttle control would be inherent in the human interface … just a thought.
I think the main work that you are doing to put the “computer in the middle” is awesome. I think this is where there needs to be a lot of work done. Once that is complete … putting things like MotionJoy or others are completely open. PCs are by nature much more open than standard RC. I think that gives us a lot more options.
Today, we standardly have two different communication methods (three if you count FPV) – RC control and telemetry. I think if we combine these two into one then you can potentially reduce weight, complexity, and spectrum use. With that said, I think that I would probably still have two frequencies (so I wouldn't reduce weight or anything! :) ). Probably a 2.4Ghz for very quick latency/control and then a very low frequency for long range “short” commands (depends on ArduCopter native baud rate, I think though). If this is the route, BOTH would still be controlled via the PC.
Anyways, lots of ideas on the subject. Thank you for the work/fun that you are doing! Please keep moving forward with this! I am also interested if anything changes with the new ArduPilot hardware …. V2.0 … are you working off that hardware (probably not because it just came out)? If not, do you have plans on switching over?
We did run Xbee 900 telemetry with 57600 Baud which is default for ArduCopter. As for latency I would say none till 0.5 seconds. All controls worked almost instantly. I think I noticed minor delay only once during whole flight and even that was really small eg did not affect on flying it self.
If there would be a lot of latency, it would affect a lot especially on landings. Landings are easy after you get hang of it..
Biggest challenge was to make small enough moves with Throttle as my throttle slider was without any "feel". We also need to have a lot on exposure on center stick areas.. Maybe even to rethink whole scaling of control commands.
As seen on video, after 30 secs or so I was able to fly it already rather nice.. First 30 secs are a bit jumpy due made too big throttle moves.. It's sensitive like Ferrari :)
For reliability we still need to work a lot more so BE EXTRA CAREFUL if you plan to do same thing with current softwares. As there are no failsafe for joystick control yet.
Range totally depends on telemetry modems that you use and also interference on your area. We have been using 900Mhz XBees 2 km ranges without any problem but that has been only for normal telemetry, would i go and start to fly with relying just for those now.. I would not do it yet and would suggest not to do it either. Let us to get failsafes for better before planning any longer flights.
But after all.. it was really fun to fly like that thou not easy as used to fly with RC radios... Maybe it will change in future.
Just picked up the exact joystick by chance at Good Will second-hand shop today. Can't wait to try!
While a main function of a UAV is to be autonomous, having deep control options is essential too.
Default hobby RC is limited by nature (# of channels, semi-capped input methods, etc.)
If this can be done right (latency, reliability, etc), I think this is the future method.
Great job! Now, how reliable is this in terms of latency, bandwidth, number of droppped packets and number of control messages per second?
Looks good, I particularly like the dust cloud at about 0.30s into the video!
Have you done any testing at extended range?
Looks great.
Great Work Jani :)
Best ..
Roberto
How's the latency with a joystick ?
Jani, you sure need to import chairs form europe, those thai chairs sure seem too small for you ;)
Ceeers,
-S
Dangerous! :) hehe you got the hang of it! wow....