02/17/10 15-494 Cognitive Robotics 1Navigating with the Pilot15-494 Cognitive RoboticsDavid S. Touretzky &Ethan Tira-ThompsonCarnegie MellonSpring 201002/17/10 15-494 Cognitive Robotics 2How Does the Robot Walk?●Multiple walk engines incorporated into Tekkotsu:–CMPack '02 AIBO walk engine from Veloso et al. (CMU), with modifications by Ethan Tira-Thompson–UPennalizers AIBO walk engine from Lee et al. (U. Penn)–XWalk engine by Ethan Tira-Thompson for the Chiara●Basic idea is the same:–Cyclic pattern of leg motions–Parameters control leg trajectory, body angle, etc.–Many different gaits are possible by varying phases of the legs–“Open loop” control: no force feedback–Can't adapt to rough terrain–Can move quickly, but not very accurately02/17/10 15-494 Cognitive Robotics 302/17/10 15-494 Cognitive Robotics 4Modified CMPack Walk Engine46 Leg Parameters:●Neutral kinematic position (3x4)●Lift velocity (3x4)●Lift time (1x4)●Down velocity (3x4)●Down time (1x4)●Sag distance (1)●Differential drive (1)5 Body Parameters:●Height of body (1)●Angle of body (1)●Hop amplitude (1)●Sway amplitude (1)●Walk period (1)Modified fom Sonia Chernova's lecture notes02/17/10 15-494 Cognitive Robotics 5Neutral Kinematic Position●Position (x,y,z) of the leg on the ground at some fixed point during the walk cycle.●Where the legs would hit the ground if the robot were pacing in place (traveling with zero velocity).Path of the leg duringone walk cycleFrom Sonia Chernova's lecture noteslift downdrive02/17/10 15-494 Cognitive Robotics 6Leg Lift and Leg Plant●Lift velocity vector (mm/sec) determines how leg is lifted off the ground●Down velocity vector (mm/sec) determines how leg is placed back on the ground.●Lift time and down time (1 value each per leg) control the order of leg motions.–Expressed as a percentage of time through the walk cycle that the leg is raised and lowered.–Governs which legs move together and which move at opposite times: pace vs. trot vs. gallop.From Sonia Chernova's lecture notes02/17/10 15-494 Cognitive Robotics 7Body Angle/Height; Hop & Sway●Body angle (radians) relative to the ground, measured at the origin of the motion coordinate frame.–Controls whether the robot is pitched up or down.●Body height (mm) relative to the ground, measured at the origin of the motion coordinate frame.●Hop and sway amplitudes (mm) constrain the body's vertical and horizontal oscillations during walking. (Usually set to 0.)From Sonia Chernova's lecture notes02/17/10 15-494 Cognitive Robotics 8Walk Period●The walk period (msec) specifies the time of one walk cycle.●Note that this is independent of speed.●To walk faster, the AIBO takes larger steps; it does not change the period of the walk cycle the way a person would do.●Chiara walks are statically stable, and period does vary with speed.From Sonia Chernova's lecture notes02/17/10 15-494 Cognitive Robotics 9New CMPack Parameter: Front & Back Leg Height Limits●Height of the air path of the front and back legs.●Upper bound: may not be reached, depending on other leg motion parameters. Air path heightFrom Sonia Chernova's lecture notes02/17/10 15-494 Cognitive Robotics 10Walk Parameter Optimization●Many RoboCup groups use machine learning techniques to optimize walk parameters.●CMPack uses a genetic algorithm.●Candidates are evaluated by having the robot walk and measuring the results.●CMPack got 20% speedup over previous hand-tuned gaits.02/17/10 15-494 Cognitive Robotics 11Tekkotsu Walk Editor●Root Control > File Access > XWalk Edit●Values are stored in a walk parameter file–Default parameter file is walk.plist02/17/10 15-494 Cognitive Robotics 12Chiara Gaits●One leg at a time (default). walk.plist–Requires the least power.–Slow: 6 beats/cycle.●Two legs at a time. walk2.plist–Intermediate speed and power.–3 beats/cycle.●Three legs at a time: tripod gait. walk3.plist–Fastest gait that is still statically stable.–Requires lots of power.–2 beats/cycle.02/17/10 15-494 Cognitive Robotics 13XWalkMC●XWalkMC is a motion command that uses the Chiara walk engine to calculate leg trajectories.●Walking is controlled by three parameters:–x velocity (forward motion)–y velocity (lateral motion: strafing)–angular velocity (rotation)02/17/10 15-494 Cognitive Robotics 14XWalkNode●Subclass of StateNode●Activates an XWalkMC on start()●Deactivates it on stop()●Provides functions to set (x,y,a) velocities●XWalkNode($, xvel, yvel, avel)–xvel, yvel in mm/sec; avel in rad/sec●XWalkNode($, xvel, xdisp, yvel, ydisp, avel, adisp)–velocities in mm/sec and rad/sec; 0 means “max speed”–displacements in mm and rad02/17/10 15-494 Cognitive Robotics 15WalkNode●For the iRobot Create, “walking” means driving.●WalkNode($, xvel, yvel, avel)–xvel = velocity in mm/sec–yvel must be zero–avel = angular velocity in radians/s●WalkNode($, xdist, ydist, adist, 1)–xdist = distance in mm–ydist must be zero–adist = angle in radians02/17/10 15-494 Cognitive Robotics 16Waypoint Engine●Takes the robot through a path defined by a series of waypoints.●Each waypoint specifies a position (x,y) and orientation.●Three waypoint types:Egocentric“Three steps forward”Offset“Three steps north”Absolute“To (30,12)”02/17/10 15-494 Cognitive Robotics 17Controlling Body OrientationangleIsRelative == trueThe angle is relative to the path, so an angle of 0 means the robot's body will follow the direction of travel.angleIsRelative == falseThe angle is relative to the world coordinate system, so the body will hold a constant heading while walking.02/17/10 15-494 Cognitive Robotics 18Arcing Trajectories●Paths can be either straight lines or arcs.●Arc parameter (in radians, not degrees) corresponds to the angle of the circle which is swept.●Don't use values > 180o.02/17/10 15-494 Cognitive Robotics 19Track Path (Error Correction)●setCurPos() function can be used to correct position if you have a localization module.●When trackPath flag is true, the robot will attempt to return to its planned path after a perturbation.●When false, it just goes straight to the destination.02/17/10 15-494 Cognitive Robotics 20Waypoint Walk Editor●Root Control > File Access > WaypointWalk Control●Allows interactive creation, execution of waypoint file.02/17/10 15-494 Cognitive Robotics 21Sample Waypoint File#WyP#add_{point|arc}
View Full Document