Our lab is trying to develop an autopilot for a fixed wing UAV capable of flight in GPS denied environments (as a follow on to our work with the quadrotors, that's been highlighted on this site previously). We would like to continue using our intel atom based onboard computer, and as such need a way to interface with the servos/receivers over serial (or usb)
We have been unable to find an off the shelf package that does what want in terms of interfacing with the servos. I would think that this is a standard need for any autopilot, so it has surprised us that what we want doesn't exist...
Basically, we are looking for a product that can:
-control a set of servos over serial
-switch between serial, and R/C control
-read the commands being sent to the servos over serial (or just the commands coming from the R/C receiver)
-handle 6-8channels
Communication over USB would be slightly preferred, but would probably limit the usefulness for other projects...
In my mind, these seem like a basic capability that would be useful for most any robot, but certainly for a UAV.
So far we've found several parts from Pololu that when cobbled together would do what we want, but it's messy, and would be heavier than we'd like/seems necessary.
to switch between manual and autopilot control:
R/C servo multiplexer
need 2 since, this is only 4 channels
Servo Driver:
micro serial servo controller
Servo reader:
Trex Jr
This part provides this capability, but does a lot more in terms of motor drivers and stuff... and is the ugliest piece.
the ppm encoder
with a PIC to convert the PPM to serial would be better.
A request for such a device was discussed in this thread
but the conclusion was that there wasn't a clean off the shelf package for this (has this changed in the meantime?)
anyway, I think that Pololu could make such a device relatively easily, but so far we have been unable to convince them that a big enough market exists... (part of the reason for starting this thread).
Alternatively, if someone else has a different solution, we'd love to hear it.
Finally, if someone has the skills/time to put something like this together, we could probably fund the development.
thanks!
-=Abe
Replies
http://store.diydrones.com/product_p/br-ppme.htm
to produce the pwm from serial input and then use two of
http://store.diydrones.com/product_p/br-0001-10.htm
to pick the signal you want to use. All those boards are really small and the fail safe ones don't need to be changed at all. Granted that's 3 little boards but none require hardware mods. Let me know if you need help with any of that.
I have adapted a $25 ardupilot to do exactly what you are asking for. The only thing is that the ardupilot can only drive 4 channels out and my firmware changes only handle 4 channels in. The newer ardupilot-mega should be able to handle 8 channels in and out but I haven't tested one myself. I have about 100 minutes of autonomous flight using my ardupilot in this capacity--plus a ton of bench testing, and so far so good.
- decodes 4 channels from your RC receiver
- sends the 4 RC channels + the state of your auto/manual selection switch + 4 optional analog input channels to a main flight computer via TTL level serial communication.
- accepts actuator commands from the main flight computer via the same TTL level serial port.
- separate onboard circuitry reads channel #5 on your RC receiver (or which ever channel you connect) to switch between full manual pass through, and autopilot control.
In my application the main autopilot code is running on a gumstix and the entire servo control + manual fail-safe switch + receiver decoding is handled by the ardupilot. I don't use the ardupilot for any flight control tasks.
One thought ... it's very easy to get hung up on the number of channels required (you specified 6-8 which is a reasonable request.) But my observation in my personal life is I have always bought 6 or more channel radio system for my RC sport, I have over a dozen airplanes, and none of them is more than 4 channels. I've built a couple autonomous aircraft ... 3 of them were big composite flying wings -- but they require 3 channels to fly. The other one is a classic 4 channel arrangement.
If you do actually need additional channels, another option would be to add a 2nd ardupilot if you have a spare serial port or can string on another usb->serial converter. Or perhaps use something from pololu if you just need to control additional output channels (i.e pan/tilt or whatever.)
Lot's of ways to do things, but the ardupilot has performed really well for me, and done so in actual autonomous flight.
Curt.
http://www.millswoodeng.com.au/failsafe_device.html
Cheers,
Andrew.
We have the artwork,board making (SMD P&Pmachines) and coding skills within our small team to do i think what you need.
PM me and we can have a proper chat to see if its practical & workable.
Mike.