Hi,
I am looking into hosting an external computer/microcontroller on board a copter with an APM. The goal is to provide vision assistance for the sparkfun AVC competition. I have looked into the commands and some arduino Mavlink examples, but I am still struggling with the implementation.
The idea is to have the APM run an autonomous mission but if a waypoint is specified(by the user) as a vision assisted waypoint it will look for an object while flying towards it. If an object is detected then the external computer will request to control the APM. If given control it will enter altitude hold mode, emulate RC controls, and fly the copter until the object is lost. Once the object is lost(hopefully popped in this case), the computer will start the mission where it left off (increment a waypoint), and give control back to the APM.
The external computer needs to handle the following Mavlink commands:
Send a heart beat
Request pitch of craft
Request altitude of craft
Request Current mission status(the current action the APM is autonomously executing)
Request control
Change flight mode
Send RC Commands
Start mission at specified point
If I read the documentation properly all these commands are supported. I am just not sure how to implement them in arduino. I only understand the heartbeat.
Does anyone have any advice or some example code involving using an external computer to control the APM/Pixhawk over Mavlink? Or is there a way to see Mavlink packets that are being sent between the ground station and APM?
The computer can currently track objects and has the logic to emulate RC control if you're wondering.
Thanks,
Daniel
Replies
Hey Daniel.
I recognized, meanwhile you realized the precision landing on another type of companion computer.
I am working on a precision landing procedure as well (unfortunately I just noticed your project this week). I am currently working on some issues you might fixed before.
The Arduino sends the RC commands to the Pixhawk using the MAVLink message rc_channels_override. I read that the override is only possible in Guided mode, but my tests with ArduCopter V.3.2.1 show, that Pixhawk also gets controlled by these commands in Stabilize or Alt_Hold mode. I want to switch between a "controlled-by-arduino"- and "controlled-by-remote-control"-mode. I don´t wan´t change the Pixhawk flight control stack. Is is possible to simply parametrize Pixhawk / the flight modes for this task?
Thanks,
Stephan
Is there a way for me to get sample code from you?
Note: My code wasn't optimized but it was definitely pushing its limits.
For something more powerful look at the odroid u3, banana pi, or hummingbird.
Hi Daniel, thank you fir your reply.
We are working on that, and maybe we use in the future something like http://www.directindustry.com/prod/fastwel/epic-single-board-comput...
Carlos.
Wow that seems powerful. What is the price tag?
What kind of onboard computer do you use?
We work on that topic, any advance?