CMRoboBits: Actuators, Motion Manuela Veloso Nick Aiwazian Sonia Chernova Thanks to Jim Bruce, Scott Lenser, and Doug Vail 15-491, Fall 2003 Carnegie Mellon.

Slides:



Advertisements
Similar presentations
Introductory Control Theory I400/B659: Intelligent robotics Kris Hauser.
Advertisements

Add and Use a Sensor & Autonomous For FIRST Robotics
CMRoboBits: Creating an Intelligent AIBO Robot Instructors: Prof. Manuela Veloso & Scott Lenser TAs: Douglas Vail & Nick Aiwazian Further Support: Dr.
Communication Piazza – Code Angel Computers in Lab Joined late – Be sure to me to remind me!
Kinematics & Grasping Need to know: Representing mechanism geometry Standard configurations Degrees of freedom Grippers and graspability conditions Goal.
Forward and Inverse Kinematics CSE 3541 Matt Boggus.
A Momentum-based Bipedal Balance Controller Yuting Ye May 10, 2006.
CSCE 641: Forward kinematics and inverse kinematics Jinxiang Chai.
Robotics CSPP Artificial Intelligence March 10, 2004.
Mechatronics 1 Week 2. Learning Outcomes By the end of this session, students will understand constituents of robotics, robot anatomy and what contributes.
The City College of New York 1 Jizhong Xiao Department of Electrical Engineering City College of New York Manipulator Control Introduction.
Inverse Kinematics How do I put my hand here? IK: Choose these angles!
CS274 Spring 01 Lecture 5 Copyright © Mark Meyer Lecture V Higher Level Motion Control CS274: Computer Animation and Simulation.
Introduction What is this ? What is this ? This project is a part of a scientific research in machine learning, whose objective is to develop a system,
Inverse Kinematics Jacobian Matrix Trajectory Planning
Fast Walking and Modeling Kicks Purpose: Team Robotics Spring 2005 By: Forest Marie.
Biped Robots. Definitions Static Walking Static Walking The centre of gravity of the robot is always within the area bounded by the feet that are touching.
Definition of an Industrial Robot
Optimization-Based Full Body Control for the DARPA Robotics Challenge Siyuan Feng Mar
Lecture 2: Introduction to Concepts in Robotics
Chapter 2 Robot Kinematics: Position Analysis
Inverse Kinematics Find the required joint angles to place the robot at a given location Places the frame {T} at a point relative to the frame {S} Often.
Chapter 5 Trajectory Planning 5.1 INTRODUCTION In this chapters …….  Path and trajectory planning means the way that a robot is moved from one location.
Chapter 5 Trajectory Planning 5.1 INTRODUCTION In this chapters …….  Path and trajectory planning means the way that a robot is moved from one location.
Robotics Chapter 5 – Path and Trajectory Planning
T. Bajd, M. Mihelj, J. Lenarčič, A. Stanovnik, M. Munih, Robotics, Springer, 2010 ROBOT CONTROL T. Bajd and M. Mihelj.
Whitman and Atkeson.  Present a decoupled controller for a simulated three-dimensional biped.  Dynamics broke down into multiple subsystems that are.
Centre for Mechanical Technology and Automation Institute of Electronics Engineering and Telematics  TEMA  IEETA  Simulation.
Evolving Virtual Creatures & Evolving 3D Morphology and Behavior by Competition Papers by Karl Sims Presented by Sarah Waziruddin.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
CS-378: Game Technology Lecture #13: Animation Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica.
ZMP-BASED LOCOMOTION Robotics Course Lesson 22.
Benjamin Stephens Carnegie Mellon University Monday June 29, 2009 The Linear Biped Model and Application to Humanoid Estimation and Control.
Lecture 3 Intro to Posture Control Working with Dynamic Models.
Kinematics in Two Dimensions. Section 1: Adding Vectors Graphically.
Introduction to Biped Walking
Review: Neural Network Control of Robot Manipulators; Frank L. Lewis; 1996.
Chapter 7. Learning through Imitation and Exploration: Towards Humanoid Robots that Learn from Humans in Creating Brain-like Intelligence. Course: Robots.
Accurate Robot Positioning using Corrective Learning Ram Subramanian ECE 539 Course Project Fall 2003.
City College of New York 1 John (Jizhong) Xiao Department of Electrical Engineering City College of New York Mobile Robot Control G3300:
Bill Sacks SUNFEST ‘01 Advisor: Prof. Ostrowski Using Vision for Collision Avoidance and Recovery.
City College of New York 1 Dr. John (Jizhong) Xiao Department of Electrical Engineering City College of New York Review for Midterm.
Control. 3 Motion Control (kinematic control) for mobile platform The objective of a kinematic controller is to follow a trajectory described by its position.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
Robot Intelligence Technology Lab. 10. Complex Hardware Morphologies: Walking Machines Presented by In-Won Park
Intelligent Robot Lab Pusan National University Intelligent Robot Lab Chapter 7. Forced Response Errors Pusan National University Intelligent Robot Laboratory.
Autonomous Dynamically Simulated Creatures for Virtual Environments Paul Urban Supervisor: Prof. Shaun Bangay Honours Project 2001.
Fundamentals of Computer Animation
9/26/ Cognitive Robotics1 Navigating with the Pilot Cognitive Robotics David S. Touretzky & Ethan Tira-Thompson Carnegie Mellon Spring.
9/28/ Cognitive Robotics1 Navigating with the Pilot Cognitive Robotics David S. Touretzky & Ethan Tira-Thompson Carnegie Mellon Spring.
University of Pisa Project work for Robotics Prof. Antonio Bicchi Students: Sergio Manca Paolo Viccione WALKING ROBOT.
Velocity Propagation Between Robot Links 3/4 Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA.
Kinematics 제어시스템 이론 및 실습 조현우
Animating Human Locomotion
Navigating with the Pilot
CSPP Artificial Intelligence March 10, 2004
CSCE 441: Computer Graphics Forward/Inverse kinematics
CMSC Artificial Intelligence March 11, 2008
Trajectory Generation
Character Animation Forward and Inverse Kinematics
Robot Motion Forward and Inverse Kinematics – Next quarter PID Control
Modeling robot systems
Accurate Robot Positioning using Corrective Learning
By: Zeeshan Ansari, BEng (Hons) Electronic Engineering
Zaid H. Rashid Supervisor Dr. Hassan M. Alwan
Special English for Industrial Robot
CSCE 441: Computer Graphics Forward/Inverse kinematics
Computer Graphics Lecture 15.
Special English for Industrial Robot
Chapter 4 . Trajectory planning and Inverse kinematics
Presentation transcript:

CMRoboBits: Actuators, Motion Manuela Veloso Nick Aiwazian Sonia Chernova Thanks to Jim Bruce, Scott Lenser, and Doug Vail , Fall 2003 Carnegie Mellon

Intelligent Complete Robot Action Actuators Perception External World Sensors Cognition

Sony AIBO Robot

AIBO Actuators 18 degrees of freedom with a continuously controllable range of motion – 3 DOF in each leg (12 total) – 3 DOF in the head – 2 DOF in the tail – 1 DOF in the jaw Each joint is controlled by specifying to a desired joint angle to OVirtualRobotComm. 2 binary motors for the ears A speaker for general sound production

CMPack Walk Engine Lowest level: desired angles for joints Interface: CMPack WalkEngine – One level of abstraction – More natural settings to specify desired positions – Includes all the kinematics computation Supports both walking and kicking

Forward Kinematics, Inverse Kinematics, & PID Control in a Nutshell Nick Aiwazian September 15, 2003

Forward Kinematics Determines position in space based on joint configuration Denavit-Hartenberg Convention Conceptually simple (follow convention)

A simple example What is the position & orientation of the tool (end effector) relative to the origin?

Solution Can be solved trigonometrically!

Inverse Kinematics Going backwards Find joint configuration given position & orientation of tool (end effector) More complex (path planning & dynamics) Usually solved either algebraically or geometrically Possibility of no solution, one solution, or multiple solutions

Another example What is the configuration of each joint if the end effector is located at (l 1, l 2, -)? (Solve for (θ 1, θ 2 ) when the tool is at {l1, l2, -}) Let’s assume l 1 = l 2

Solution Or (Two Solutions)

PID Control The Basic Problem: – We have n joints, each with a desired position which we have specified – Each joint has an actuator which is given a command in units of torque – Most common method for determining required torques is by feedback from joint sensors

The Control Loop

What is PID Control? Proportional, Integral, & Derivative Control – Proportional: Multiply current error by constant to try to resolve error – Integral: Multiply sum of errors by constant to resolve steady state error (error after system has come to rest) – Derivative: Multiply time derivative of error change by constant to resolve error as quickly as possible

Summary These concepts make up the low level functionality of the AIBO Implemented once and used repeatedly For more information about PID Control and Forward & Inverse Kinematics take Matt Mason’s Robotic Manipulation course

Robot Motion A 51-parameter structure is used to specify the gait of the robot. Global Parameters: Height of Body (1) Angle of Body (1) Hop Amplitude (1) Sway Amplitude (1) Walk Period (1) Height of Legs (2) Leg Parameters: Neutral Kinematic Position (3x4) Lifting Velocity (3x4) Lift Time (1x4) Set Down Velocity (3x4) Set Down Time (1x4)

Kicking A series of set positions for the robot Linear interpolation between the frames – Kinematics and interpolation provided by CMWalkEngine Set robot in desired positions and query the values of the joints

Very Effective Kicks

High Sensitivity to Parameters Good Settings for Effective Kick

High Sensitivity to Parameters Exact Same Settings - Lab

High Sensitivity to Parameters Good Settings for the Lab

Approaches for Parameter Setting Trial and error – Tedious, but controlled, and provides knowledge of parameters Search – Large parameter space, local vs. global optima Adaptation – Controlled change by feedback

Motor Control Each message to OVirtualRobotComm contains a set of target angles for the joints – Each target is used for a PID controller (part of the AIBO robot) that controls each motor – Each target angle is used for one 8ms motor frame Each message contains at least 4 motor frames (32ms)

Use of Kicks in Behaviors Modeling effects of kicking motions – Ball vision analysis – Ball trajectory angle analysis – Kick strength analysis Kick selection for behaviors – Selection algorithm – Performance comparison (Sonia Chernova’s senior thesis)

Accuracy of Object Detection Varies -- Robot Standing -- Distance (mm)

Accuracy of Object Detection Varies -- Robot Pacing --

Distance (mm) Accuracy of Object Detection Varies – Robot Spinning --

Ball Trajectory Angle Estimate the angle of the ball’s trajectory relative to the robot Track ball’s trajectory after the kick Retain information about ball position in each vision frame Calculate angle of trajectory using linear regression

Angle Analysis Forward KickRight Head KickLeft Head Kick

Kick Strength Estimate the distance the ball will travel after a kick. Impossible to track entire path of the ball Calculate only the final location of the ball relative to the kick position Estimate failure rate of the kick using distance threshold

Forward Kick Distance Analysis

Head Kick Distance Analysis

Kick Selection Incorporate the kick models into the selection algorithm – The robot knows its position on the field relative to the goal and the desired ball trajectory – The robot selects appropriate kick by referencing the kick model – If no kick fits desired criteria, robot selects closest matching kick and turns/dribbles ball to appropriate position

Kick Selection Performance Experiment Results Point CMPack’02 (sec) Modeling & Prediction (sec) P P P P Total

Kick Selection in Action

Summary Effectively moving a four-legged robot is challenging Effectiveness of motion is highly sensitive to motion parameters CMWalk provides the kinematics computations, so parameter setting can be at a high level of abstraction. Ideally, we would like to set parameters automatically.

The Motion Interface Sonia Chernova

The Motion Interface Walk Engine Walk Parameters Frame Interpolator Motion Frames Dynamic Walking Motion Static Frame-Based Motion

Coordinate Frames 0231 y x y x Motion Coordinate Frame Vision Coordinate Frame a a

The Walk Engine All of the inverse kinematics have been done for you! All you have to deal with are the “motion parameters” Your Goal: Create fluid, stable motion

Motion Parameters Neutral Kinematic Position (3x4) Lift Velocity (3x4) Lift Time (1x4) Down Velocity (3x4) Down Time (1x4) Front Leg Height Limit (1) Back Leg Height Limit (1) Height of Body (1) Angle of Body (1) Hop Amplitude (1) Sway Amplitude (1) Walk Period (1) Leg Parameters (46)Body Parameters (5)

Motion Parameters Neutral Kinematic Position (3D vector relative to the motion coordinate frame) - Position of the leg on the ground at some point during the walk cycle Think of it as the position the legs would be in if the dog was pacing in place using your walk parameters Path of the leg during 1 cycle

Motion Parameters Lift Velocity (3D vector) – Velocity (mm/sec) with which the leg is lifted off the ground Down Velocity (3D vector) – Velocity (mm/sec) with which the leg is placed on the ground Lift Time and Down Time – This controls the order of the legs by specifying a percentage of the time through the time cycle that each leg is moved

Motion Parameters Front and Back Leg Height Limit (mm) – Upper bound on the height of the airpath of the front and back legs. Air path of leg with height limit

Motion Parameters Body Angle (radians) – Angle of the body relative to the ground measured at the origin of the motion coordinate frame Body Height (mm) – Height of the body relative to the ground measured at the origin of the motion coordinate frame Walk Period (ms) – Time of one walk cycle Hop and Sway Amplitudes (mm) – Amplitude of vertical and horizontal oscillations (Value usually set to 0)

Creating a Parameter Set (1) Motion::WalkParam wp; wp.leg[0].neutral.set( 125, 82,0); wp.leg[1].neutral.set( 125,-82,0); wp.leg[2].neutral.set( -100, 75,0); wp.leg[3].neutral.set( -100,-75,0); wp.period = 640; wp.leg[0].lift_vel.set(0,0, 100); wp.leg[1].lift_vel.set(0,0, 100); wp.leg[2].lift_vel.set(0,0, 150); wp.leg[3].lift_vel.set(0,0, 150); wp.leg[0].down_vel.set(0,0,-100); wp.leg[1].down_vel.set(0,0,-100); wp.leg[2].down_vel.set(0,0,-100); wp.leg[3].down_vel.set(0,0,-100); Neutral Leg Position Lift Velocity Down Velocity Motion Cycle Period (ms) Parameter Struct Values are in millimeters, milliseconds or radians!

Creating a Parameter Set (2) wp.leg[0].lift_time=0.0000; wp.leg[0].down_time=0.5000; wp.leg[1].lift_time=0.5000; wp.leg[1].down_time=1.0000; wp.leg[2].lift_time=0.5000; wp.leg[2].down_time=1.0000; wp.leg[3].lift_time=0.0000; wp.leg[3].down_time=0.5000; wp.body_angle = RAD(16.0); wp.body_height = 98; wp.hop = 0; wp.sway = 0; wp.front_height = 9.0; wp.back_height = 9.0; out = fopen("walk_xy.prm","wb"); if(out){ fwrite(&wp,sizeof(wp),1,out); fclose(out); } Leg Order Save to.prm File Limit how high the legs are lifted

Primary Motion Parameters Neutral Kinematic Position (3x4) Lift Velocity (3x4) Lift Time (1x4) Down Velocity (3x4) Down Time (1x4) Front Leg Height Limit (1) Back Leg Height Limit (1) Height of Body (1) Angle of Body (1) Hop Amplitude (1) Sway Amplitude (1) Walk Period (1) Leg Parameters (46)Body Parameters (5)

Running Your Code Edit: ~/dogs/agent/Motion/genmot/genwalk.cc Compiling code: ~/dogs/agent/Motion/genmot> make ~/dogs/agent/Motion/genmot>./genmot >Kinemaric Errors=[0] [0] [0] [0] Saving to the stick: ~/dogs/agent/Motion/genmot> mount /memstick ~/dogs/agent/Motion/genmot> cp walk_xy.prm /memstick/motion/ ~/dogs/agent/Motion/genmot> umount /memstick

Running Your Code Compiling code: ~/dogs/agent/Motion/genmot> make ~/dogs/agent/Motion/genmot>./genmot >Kinemaric Errors=[0] [0] [0] [0] Saving to the stick: ~/dogs/agent/Motion/genmot> mount /memstick ~/dogs/agent/Motion/genmot> cp walk_xy.prm /memstick/motion/ ~/dogs/agent/Motion/genmot> umount /memstick What are these errors?

Questions?

Frame-Based Motion

Each motion is described by a series of “frames” which specify the position of the robot, and a time to interpolate between frames Movement between frames is calculated through linear interpolation of each joint

The position of the robot in each frame can be described using any of the following: – Position of the legs - in terms of angles of each joint or position of the foot in motion coordinates – Angle of the head (tilt, pan, roll) – Body height and angle – Angle of the mouth struct BodyState{ BodyPosition pos; LegState leg[4]; HeadState head; MouthState mouth; };

Examples: Valid Motion Frames LegAng(b,0, 0.0, 1.5, 0.0); LegAng(b,1, 0.0, 1.5, 0.0); LegAng(b,2, 0.1, 0.0, 0.2); LegAng(b,3, 0.1, 0.0, 0.2); m[n].body = b; m[n].time = 100; n++; BodyPos(b,98,RAD(16)); HeadAng(b, 0.5, 1.5, 0.0); MouthAng(b,-.7); LegPos(b,0, 123, 85,0); LegPos(b,1, 123,-85,0); LegPos(b,2, -80, 75,0); LegPos(b,3, -80,-75,0); m[n].body = b; m[n].time = 100; n++; BodyPos(b,98,RAD(16)); HeadAng(b, 0.5, 1.5, 0.0); LegPos(b,0, 123, 85, 0); LegPos(b,1, 123,-85, 0); LegAng(b,2, 0.1, 0.0, 0.2); LegAng(b,3, 0.1, 0.0, 0.2); m[n].body = b; m[n].time = 100; n++; m[n].body = b; m[n].time = 100; n++;

Running Your Code Edit: ~/dogs/agent/Motion/genmot/genmisc.cc Compiling code: ~/dogs/agent/Motion/genmot> make ~/dogs/agent/Motion/genmot>./genmot >Kinemaric Errors=[0] [0] [0] [0] Saving to the stick: ~/dogs/agent/Motion/genmot> mount /memstick ~/dogs/agent/Motion/genmot> cp k_bump.mot /memstick/motion/ ~/dogs/agent/Motion/genmot> umount /memstick In your code: command->motion_cmd = MOTION_KICK_BUMP;

Joint Angle Limits

Information Two readings will be made available off the Webpage. Wednesday’s lab will be about debugging tools using wavelan communication to and from the robots. Homework 2 is due in class on Wednesday and Homework 3 will be handed out then. John deCuir, SONY, USA, will present the new ERS-7 robots at the beginning of the class on Monday, September 22 nd.