CS225A : Experimental Robotics

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