Developer

I know the topic of adaptive control keeps showing up, but let's try one more time.

I'm trying to implement the Virtual Reference Feedback Tuning  algorithm to tune the PID loops on the ArduPlane software. My final objective is to use this as my graduation project (I'm an E.E. student). I have chosen this method because of some of its characteristics like:

  • Non iterative - Only one experiment needed, with the data collection from the plant
  • Can be used to tune PIDs - So no need to change the main code on APM
  • Can be run offline - This way if the Atmega doen't have enought power to process the data, it can be processed on the Ground Station ( even after the flight, without the use of telemetry).
  • Finds the global minimum directly - Unlike other methods that can lead to sub-optimized controllers.

The paper witch originally describes the algorithm is at this link. And a good explanation of the method and comparisons to others can be found on this book.

I have made for a class last semester a project about this method, the report can be read here. I also made a demo of the software (sorry about the bad diction, English is not my native language and recorders frightens me! feel free to ask anything):

 

I have already started to work on this (this is my git clone of the source), and if you would like to join me I would be pleased. My current strategy is:

  • Run HIL simulation (with X-plane) on the APM
  • Transfer all the necessary data to the Mission Planner via Mavlink. (the necessary data is the output of the PID controllers, and the output of the plant [for example in the roll controller these are: g.channel_roll.servo_out and ahrs.roll_sensor])
  • Collect, format, visualize, and trim the data on Labview. The communication between MP and Labview is via UDP.
  • Transfer the formatted data to Matlab, where the VRFT algorithm is run.

I'm using this data flow because I like to work with these tools, but it could all be hard-coded in MP or in the APM source.I currently have this setup up and running, but the implementation of the algorithm is still dangling. 

My first try was with the Roll PID, but it failed catastrophically since I had bad data. By this i mean the data was not received in a fixed sample rate neither the scale where appropriate. I also had problems with the gain adaptation introduced by the variable speed_scaler.

The second try was using just a P controller for the Yaw_Nav controller, I got I little more successful ( latter if there is interest I can post a video). But again I had problems with offsets, sample rate, and scaling between MP parameters and APM variables.

 

I'm happy to hear any response or ideas (or even to get help :).

 

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • This sounds very interesting. I can't help with APM or planes but I plan to read the paper and see if I stand any chance of understanding and applying :)

This reply was deleted.

Activity

DIY Robocars via Twitter
RT @Jetsonhacks: And I helped with the course! JetBot, JetBot, happy little JetBot! JetBot ... GO! Meet the Jetson Specialists Inspiring a…
7 hours ago
DIY Robocars via Twitter
RT @a1k0n: Designed RPi + camera mounts + new bumper for the new car. Fits great on the car first try, except my longest camera cable doesn…
7 hours ago
gotham liked gotham's profile
yesterday
DIY Robocars via Twitter
RT @RoboticMasters: Monaco GP Circuit in the Donkey Sim (coming soon). Including buildings, tunnel and all! https://github.com/robotics-masters/sim-donkeycar-f1/tree/f1-tracks @diyr…
Wednesday
DIY Robocars via Twitter
RT @breadcentric: Here are the details of #AWSDeepRacer finals: https://blog.deepracing.io/2020/12/01/aws-deepracer-league-finals-2020-round-1-schedule/ #awsreinvent2020 #AWSreInvent https://t.co/ovqsjp8V…
Wednesday
DIY Robocars via Twitter
RT @breadcentric: #AWSDeepRacer League #awsreinvent2020 Open race is on Dec 1st - Dec 31st in three categories, 15 DeepRacer Evo (with LIDA…
Wednesday
DIY Robocars via Twitter
RT @a1k0n: @SmallpixelCar @diyrobocars It's just something that's easy to track with chroma keying. I ended up using different colors on th…
Monday
DIY Robocars via Twitter
Monday
DIY Robocars via Twitter
RT @TinkerGen_: "The Tinkergen MARK ($199) is my new favorite starter robocar. It’s got everything — computer vision, deep learning, sensor…
Nov 23
DIY Robocars via Twitter
Nov 23
DIY Robocars via Twitter
RT @roboton_io: Join our FREE Sumo Competition 🤖🏆 👉 https://roboton.io/ranking/vsc2020 #sumo #robot #edtech #competition #games4ed https://t.co/WOx…
Nov 16
DIY Drones via Twitter
First impressions of Tinkergen MARK robocar https://ift.tt/36IeZHc
Nov 16
DIY Robocars via Twitter
Our review of the @TinkerGen_ MARK robocar, which is the best on the market right now https://diyrobocars.com/2020/11/15/first-impressions-of-tinkergen-mark-robocar/ https://t.co/ENIlU5SfZ2
Nov 15
DIY Robocars via Twitter
RT @Ingmar_Stapel: I have now explained the OpenBot project in great detail on my blog with 12 articles step by step. I hope you enjoy read…
Nov 15
DIY Robocars via Twitter
RT @DAVGtech: This is a must attend. Click the link, follow link to read the story, sign up. #chaos2020 #digitalconnection #digitalworld ht…
Nov 15
DIY Robocars via Twitter
RT @a1k0n: Got a new chassis for outdoor races (hobbyking Quantum Vandal) but I totally didn't expect that it might cause problems for my g…
Nov 11
More…