CS225A : Experimental Robotics Lecture 7 : Tuning and customizing controllers Samir Menon Apr 21, 2015 Final projects and groups... ● ● From the google doc: ● Arm Rehab Robot ● Catching Ball with mobile base ● Tactobot ● Kendama ● Ping Pong ● Shooting a Helicopter Larger groups will be held to a higher standard ● Please be clear about each member's contribution Deadlines : Detailed project plan ● Due on April 30 ● Report=Project website with the following details 1. Set up specific goals for Milestone 1 (May 14) 2. Specify your preliminary control formulation 3. Specify how to test your controller (in sim) 4. State hardware requirements for your project 5. Specify expected time required with the robot 6. Specify each member's contribution Detailed project plan : Set up project website http://cs.stanford.edu/groups/manips/teaching/cs225a/project-template.html (TAs will contact you with more details) Deadlines : Milestone I ● Due on May 14 ● Report=Update website with these details 1. How you met your planned goals 2. Test results from your controller (in sim) 3. Project breakdown into 3 stages ● Stage 1 : Simplest possible working demo ● Stage 2 : Minimal “complete” demo ● Stage 3 : Experimental parts Deadlines : Milestone II ● Due on May 29 ● Report=Update website with these details ● Stage 1 : Simple possible working demo ● ● Stage 2 : Minimal “complete” demo ● ● Must work reliably! Works. May require some fine-tuning. Stage 3 : Experimental components ● May or may not work. It's ok! Final Demonstration ● On June 04 ● Final demonstration sequence ● Short presentation about work and simulation tests ● Discussion about each member's contribution ● Insights gained while programming robot ● If possible, quantify performance ● Most important : Live demonstration Tuning controllers for our robot of choice ● Lecture goals: ● How controller gains and robot inertia affect motion ● Task space control ● Null space control (damping) ● Combining multiple control tasks ● Implementation in code / xml Control Formulation .. Theory Practice... ● Gains? ● Rate of dynamics update? ● Inertial errors? SCL : Fine Tuning Controller Specification Understand how control and inertial specifications affect motion ● ● Understand how to debug control specifications ● Use advanced features in SCL to simplify your life ● Tutorial applications are basic and very verbose. ● Instead, we will use the example controller: ● scl.git/applications-linux/scl_example_ctrl/ ● Offers easy manipulation with a GUI/keyboard SCL : Run controller in real-time The default scl_eg_ctrl application runs (much) faster than real-time for simple robots ● ● So we will slow it down SCL : Run controller in real-time The default scl_eg_ctrl application runs (much) faster than real-time for simple robots ● ● So we will slow it down (look for the code!) scl.git/applications-linux/scl_example_ctrl/CExampleApp.cpp (~line 175) SCL : Run controller for the Puma robot SCL : Monitor robot stats SCL : Monitor robot stats (parsed spec) SCL : Monitor robot stats (dynamic state) ● Press “enter” to repeat last command ● E.g., keep “enter” pressed to constantly print state SCL : Monitor robot controller; one/all tasks SCL : XML Controller Specification scl.git/specs/Puma/PumaCfg.xml (~line 68) SCL : PumaBot Demo SCL : Effect of link inertia scl.git/specs/Puma/Puma-AKB86.xml (~line 140) ● Observe low inertias at the end-effector ● What aspect of the demo motion is affected? SCL : Effect of link inertia ● Let us increase the inertia (artificially high now) ● Effect on motion? SCL : PumaBot w/ Wrist Inertia Demo SCL : Low Task-Space Damping Gain scl.git/specs/Puma/PumaCfg.xml (change the controller spec to this) SCL : Low Task-Space Damping Gain ● Note high null-space damping gain... SCL : Low Task-Space Damping Gain ● Try this yourself: What motion would you expect? SCL : PumaBot w/ Low Task-damping Demo SCL : Low Null-Space Damping Gain scl.git/specs/Puma/PumaCfg.xml (change the controller spec to this) SCL : Low Null-Space Damping Gain ● Try this yourself: What motion would you expect? SCL : PumaBot w/ Low Null-damping Demo SCL : Dynamics Update Rate scl.git/applications-linux/scl_example_ctrl/CExampleApp.cpp (~line 175) SCL : Dynamics Update Rate ● Speeds up controller for large robots ● Not really a problem for the Puma (already fast) ● Try a few values: What motion would you expect? SCL : PumaBot w/ Slow Dyn Update Demo SCL : Multiple Tasks with Equal Priority scl.git/specs/Pr2/Pr2Cfg.xml (~line 65) SCL : Pr2 w/ Equal Priority Hand Tasks SCL : Multiple Prioritized Tasks scl.git/specs/Pr2/Pr2Cfg.xml (change task spec to this ) SCL : Multiple Prioritized Tasks ● Note: Links are separated by many dof! SCL : Multiple Prioritized Tasks ● What motion do you predict? ● Are the forces reasonable? SCL : Pr2 w/ Prioritized Hand Tasks
© Copyright 2024