Hi,
I've have been lurking for some time - been using an APM in a Multiplex Xeno for about 2 years, and have recently started scaling up to an x8 to enable me to carry more gear (Samsung NX1000) and cover more ground. My primary interest is DEM generation for wind and hydro resource assessment, and I'll certainly share both findings and progress over the next few months - I really believe that drones will change the way we carry out land surveys in future, especially as our ground based computers become more powerful: allowing us to use the data for much more detailed CFD based resource analysis. (I am also looking at the feasibility of a semi-automatic toolchain from visual SFM to Meshlab and then open-foam as an alternative to Agisoft and Ansys Fluent which I am currently using..) So now that's out the way lets get onto the good stuff:
I've been building an antenna tracker for use with mission planner using a Servocity pan/tilt gimbal. All the gear I normally take to the field has been placed inside an enclosure thats got a tripod quick release mount on the bottom of it, significantly reducing setup time and clutter.
I'm using an apm1 with oilpan as the tracker controller, and have re-written/updated the Ardutracker code for the newest versions of arduplane using the HAL layer. It would be great to use the ahrs, compass and gps from the apm to provide fully automatic tracking, and allow a moving ground station that does not rely on a pc for data. This would be especially useful in the UK as we are currently allowed to operate up-to 500m away from our control point - being able to move easily from one location to another would enable surveying of larger areas in a single flight.
Though in theory this should be simple, and I can see all the peices of the puzzle are there, I'm really struggling to put them together. I think what should be going on is somthing like this:
- Initialisation
- Define tracker variables (servo max/mins for pwm and angle)
- Begin serial comms
- Get sensors up and running
- Loop
- Find where it should be pointing
- Update ahrs, compass and gps
- Use APmount to point tracker in correct direction
I've got some of this stuff done and have put a copy of the code up with this post, but would really appreciate some help in getting to the next step: intercepting a mavlink stream (and opening it/sending heartbeats to keep it going if required) and calling amount to control the servos.
Incase anyones interested the enclosure on my tracker contains:
- Powered USB2 Hub
- Fdti-USB adapter to a 433Mhz 3DR module (not shown in the pics as I'm updating the Moxon I use for comms, and building a mount for it. I cannot recommend this antenna design highly enough: compact easy to manufacture and great performance similar to a 2-3 element yagi, it will be mounted horizontally 6" above the floor of the camera mount to give good performance when no camera is mounted, and hopefully acceptable performance when one is...)
- Pinnacle DVC100 video capture
- 32Gb Storage (I use a 64Gb macbook air so it's appreciated!)
- USB cable to connect to APM
- Power distribution
- 12v Buck-boost for video receiver (with heavy RC filter on output)
- 5v BEC for APM
- 6v BEC for tilt servo
- 7.4v BEC for pan servo
- External Connectors
- 5m USB lead for GCS connection
- Deans connector (can run off 4-6s battery - I pretty much use 5000mAh 4s batteries for everything... )
- Composite Video out - for connection to monitor/dvr
Once I've got the core code up and running (hopefully with some help! :) ) I've got a few projects planned for this thing: I've used a camera pan/tilt for a reason, as a connected APM would effectively become a "follow-me" box for ground based applications, which would allow a whole new world of applications (eg. wire-cams, telescope control etc...) with appropriate hardware.. On a personal note I'm really interested in the possibility of wire-cams for filming mountain biking with a cinestar or rusty type gimbal - it would certainly make setting them up a lot easier if you didn't have to get the tension so high to eliminate unwanted movement (which is minor, ie slow, in comparison to a multicopter).
Lastly I'd like to apologise for the people who's code I have butchered and not attributed, this community really is a beacon of light in the world of OS hardware, and the codebase that the contributors have produced is a testament to this. It does however exceed my abilities at this stage! to misquote a film it certainly an "abstraction to far" for me to get my head round at the moment, but once I've got this nut cracked I'd love to help out in anyway I can.