An object oriented fork of the APM autopilot code supporting multiple vehicle types and with the goal of supporting multiple ArduPilot boards in the future (currently only ArduPilotMega).
Some clarification:
It started as an object oriented (C++) branch of ArduPilotMega. It provides an abstraction layer between the different modules of the autopilot so that they can be shared among different vehicle types. After several discussions, we on the development team choose not to use it as a base for ArduPilotMega and ArduCopter. Think of it more as ArduPilotMega++ if you like.
Currently ArduPilotOne supports: rover(full autopilot), quad (manual flight), boat(full autopilot, not yet tested), plane(full autopilot, not yet tested)
The quad full auto support will be online in a month or so when I have time to sit down with my arducopter again and get the rest of the gains. This isn't meant to compete with ArduCopter, ArduPilotMega, it is simply a different option if you want something that you can have the same code base and is object oriented. The quad/plane code doesn't have nearly as many options as ArduCopter/ ArduPilotMega, but for my research with multiple vehicle cooperation I want a platform where all vehicles run the same c++ code using different modules for unique vehicle differences. It is fairly extensible so it will be easy to add more options as needed.
Notes:
1. There is no command line mode.
2. You must run it with a ground station talking mavlink. If a mavlink packet is not received by the vehicle from the ground station it will go into a failsafe mode.
3. The main ardupilotone.pde sketch is meant as a template. You can easily copy it and modify it to your liking in a different sketch.
4. In ardupilotone.pde the vehicle configuration file is included. Make sure you include CarStampede.h if you want to test the ArduRover functionality. PlaneEasystar.h if you want to test the plane, BoatGeneric.h if you want to test the boat, QuadArducopter.h for the quad etc.
5. Feel free to make your own vehicle config file for your specific vehicle, you can use the others as a template.
Tech Specs:
memory: only 80k
speed: 150 Hz attitude loop, 100 Hz control loop @ 60% load
Hosting site:
Comment by Philippe Petit on August 2, 2011 at 2:01pm 
James, it sounds absolutely amazing!
Does it shrink the size of final hex firmware too?
I'm wondering why need MAVLink even for manual flight of a Quad.
When you said manual, are you meaning acrobatic plus stabilized?
Comment by James Goppert on August 3, 2011 at 4:35am The last time I built APM it was pushing the upper limit of 128k for the atmega 1280, but I think they were/are working on shrinking it by removing the command line etc. This is only 80k so it easily fits on both the atmega 1280 and 2560. If you don't want the mavlink, you simply have to set the heartbeat timeout to zero. Then you can also remove the mavlink communication block, so 2 lines of code. I am leaving it in currently since I want to go full auto with the quad asap and manual with stabilization is the first step. I have successfully flown the quad stabilized. I have not done any acrobatics.
Comment by Junior Sammy on August 3, 2011 at 7:45am It would be nice to have an ArduPilotOne category in the forums. I had so many questions about APO but no one knew what it was at the time :S so I had to figure it out on my own :)
Comment by Richard on August 8, 2011 at 6:21am James, I am interested in starting a project with a boat... I also plan to make my project fully auto in the end... Would this version of software be best to start my project with? also would most of your sensors you have on your rover work with a boat? meaning, I am going to need sonar and a camera, and gps but for no altitude... Also I am interested in getting object avoidance and detection with this project... Does this sound feasible?
I will say, that if most of your code though not tested for a boat will work with a boat, I will be interested in helping with the documentation or any other area of your project if needed...
Comment by Adrian Abordo on August 10, 2011 at 10:33am Hi James, what do the different RC Modes do? RC_MODE_IN, RC_MODE_OUT, RC_MODE_INOUT
Comment by James Goppert on August 12, 2011 at 10:18am @ Richard: The rover currently uses the magnetometer, gyros/accels from the imu board, and a gps. All of these should work for the boat. The obstacle avoidance ultrasonic sensors are optional but should work for obstacle avoidance if you go slow enough with the boat. I have not done any camera work yet. This will require using the Mavlink ROS bridge and a computer onboard running ubuntu/ debian linux or something similar to do the vision processing.
@ Adrian:
RC_MODE_IN:The user can send signals with the remote controller (i.e. bank angle for a quad)
RC_MODE_OUT: The user cannot directly control this signal, it goes directly to a servo (i.e. motor pwm for a quad)
RC_MODE_INOUT: The user can send the signal directly. It is also directly output to a servo.
Comment by James Goppert on August 12, 2011 at 10:22am I have added the RC_MODE information to the wiki. If you guys would like to help out with the documentation, just let me know and I'll add you to the project. http://code.google.com/p/ardupilotone/wiki
Comment by 415porto on December 3, 2011 at 1:57pm Hey buddy that's a dead link
Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.24 members
682 members
184 members
51 members
1288 members
© 2013 Created by Chris Anderson.
Powered by

You need to be a member of DIY Drones to add comments!
Join DIY Drones