I'm pleased to announce that we've joined forces with the other Arduino-based powerhouse in the aerial robotics world, the AeroQuad quadcopter team, to extend the ArduPilot platform to whirlybirds of all kinds. The project, called ArduCopter, will use the ArduPilotMega and IMU shield hardware along with a low-cost custom platform that will be available commercially to provide a full quad UAV with both stabilization and GPS waypoint navigation. It builds on the awesome work of Jose Julio in ArduPilot quad development, with the excellent full-systems integration of the AeroQuad team. We expect that first code and hardware will be available this summer.
And here's the impressive work of the AeroQuad team:
Another team is also extending this to traditional helis, starting with the Trex 450 heli (and its equivalents), which should be ready for release this fall. Along with Blimpduino, this should make for 100% coverage of all aerial robotics platforms on the Arduino platform, with shared libraries and ground stations across projects. Go Arduino!
We'll be setting up a proper microsite here, along with dedicated tab, for the project in the next few days.
If you haven't already seen this preview of what the ArduPilot/ArduIMU combo can do with quads, check this out:
And here's the impressive work of the AeroQuad team:
Here's the announcement from the AeroQuad team:
ArduCopter - The Full Featured UAV Multicopter!
Hey guys, as many of you know the AeroQuad has teamed up with DIY Drones on developing a very full featured multicopter! Chris from DIY Drones has proposed the name of this new effort to be called the ArduCopter! It will be based on the ArduPilot Pro Mega (APM) and the APM sensor board currently nicknamed the Oil Pan. Here's an initial feature list and software road map. Please chime in! Your input is valuable! I'll keep updating this front page until we agree on the first version of the ArduCopter's capabilities.
ArduCopter Feature ListSoftware Roadmap
- 6 Degree of Freedom IMU stabilized control
- Gyro stabilized flight mode enabling acrobatics (loops and barrel rolls)
- GPS for position hold
- Magnetometer for heading determination
- Barometer for altitude hold
- IR sensor integration for obstacle avoidance
- Sonar sensor for automated takeoff and landing capability
- Automated waypoint navigation
- Motor control using low cost standard PWM Electronics Speed Controllers (ESC's)
- On board flight telemetery data storage
- Mounted camera stabilization capability
- Wireless command & telemetry for long distance communication
- Capability to fly in "+", "x", hexa and octo configurations
- Battery level detection
- User configurable LED flight pattern
- Capability to use any R/C receiver
- ArduCopter Configuration and Ground Control Software
- Realtime graphs of flight data
- GUI for configuration of PID and other flight parameters
- On Screen Display integration
- Waypoint programming using Google Maps
- Mixertable view to auto configure "+", "x", hexa and octo configurations
- Initial baseline using Jose Julio's v3 software
- Provides absolute angle PID flight control
- Obstacle avoidance
- Waypoint navigation
- Generalize basic ArduCopter functions (ie. Separate PPM receiver input and motor control functions into separate libraries. Allows future coding of PWM vs. I2C ESC's)
- Emphasis on developing new capability into easy to use C++ libraries
- Integrate user defined EEPROM storage capability
- Develop/optimize AeroQuad serial real-time command/telemetry for ArduCopter
- Integrate AeroQuad Configurator for external software configuration of ArduCopter
- Rename Configurator to Ground Control Station and integrate graphical programming of waypoint navigation
- Integrate AeroQuad rate PID control
- Integrate mixertable configuration for multicopter configurations
- Integrate AeroQuad camera stabilization
- Integrate I2C motor control
- Develop capability to wirelessly control ArduCopter directly from Ground Control Station (USB joystick controller from laptop or through waypoint programming)
Comments
control_pitch = Kp_RatePitch*err_pitch + Kd_RatePitch*pitch_D + Ki_RatePitch*pitch_I;
Unfortunately I could not be able to figure out PID of stable mode. I have to study it more.
Can you suggest us a method to adjust PID values?
Looks like the D values from the "Configurator stable mode page" is saved in the STABLE_MODE_KP_RATE_XXXX variable.
Eks from the code:
control_roll = STABLE_MODE_KP_RATE_ROLL*err_roll;
And we all now that zero in multiplication returns zero.
I think the D values in the configurator, are not actual a real derivative value.
Also I was not able to adjust PIDs using classical method (first set I and D = 0, and increase P until you observe oscillations etc..). I mean it is very different than adjusting PIDs of a temperature controller.. I did not see any oscillation even at P=20, I=0 and D=0 (all motors runs and quad falls one side)..
You should see big differences if you change those settings. If you use Configurator, remember to click update after every change. And change only one value at time like Stable P value. But naturally you need to change P for both roll and pitch axis.
I think I had even 6, 0.5, 2 on one of my test quads and it was like rock in air but we can only say suitable PID values for official ArduCopter with our official hardware, everyone else has to find their own values and they can be totally different than ours.
Magneto position: "no have", we are currently testing and working with it so we don't have official verdict on that yet. This is due we need to work with ArduPilot/ArduHeli people too and they all have different requirements. So we are trying to find our golden path for it.
Official Alpha_RC1 release does not include GPS/Magneto support, we need to solve few issues before we include that on any official releases.
Currently I connect LEDs on my test quads directly to OUT4-7, one LED one output. No resistors or anything is needed due all those outputs have already resistors so you can connect LED directly. This will change in future because we need those outputs for different things.
If your cookbox is sealed, yes it will affect on readings. If have big enough holes on box, it should be fine but putting in box always affects a bit on readings.
All objects above GPS antenna will affect it's performance, different materials and different distances are altering different ways so it's really hard to say. More closer, more effect. I personally have not tested yet but one my friend said that kevlar has least effect on it. They make their quad boxes from carbon fiber and top is kevlar.
Yeah there is ski resort even in Dubai too .. And I'm Iceskating monthly in Bangkok :)
You should tune your PID settings a bit more. It's not "stable" yet. Try to play with P and D values, start rising both P and D values to see if you can get away from that wagging. It looks like gyro/acc output is not strong enough