02/20/08 15-494 Cognitive Robotics 1Navigating with the Pilot15-494 Cognitive RoboticsDavid S. Touretzky &Ethan Tira-ThompsonCarnegie MellonSpring 200802/20/08 15-494 Cognitive Robotics 2How Does AIBO Walk?●Two walk engines incorporated into Tekkotsu:–CMPack '02 walk engine from Veloso et al. (CMU), with modifications by Ethan Tira-Thompson–UPennalizers walk engine from Lee et al. (U. Penn)●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/20/08 15-494 Cognitive Robotics 302/20/08 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/20/08 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 dog were pacing in place (traveling with zero velocity).Path of the leg duringone walk cycleFrom Sonia Chernova's lecture noteslift downdrive02/20/08 15-494 Cognitive Robotics 6Leg Lift and Leg Plant●Left 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/20/08 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/20/08 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 dog takes larger steps; it does not change the period of the walk cycle the way a person would do.From Sonia Chernova's lecture notes02/20/08 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/20/08 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/20/08 15-494 Cognitive Robotics 11Tekkotsu Walk Editor●Root Control > File Access > Walk Edit●Values are stored in a walk parameter file–Default parameter file is walk.prm02/20/08 15-494 Cognitive Robotics 12WalkMC●WalkMC is a motion command that uses the CMPack walk engine to calculate leg trajectories.●Walking is controlled by four parameters:–x velocity (forward motion)–y velocity (lateral motion: strafing)–angular velocity (rotation)–number of steps (-1 = walk forever)02/20/08 15-494 Cognitive Robotics 13WalkNode●Subclass of StateNode●Activates a WalkMC on DoStart()●Deactivates it on DoStop()●Posts a status event when walk completes–Completion only occurs if a fixed number of steps is specified●Provides functions to set (x,y,a) velocities, # steps, etc.02/20/08 15-494 Cognitive Robotics 14Walk Calibration●The surface the dog is walking on will affect its motion.●Robot peculiarities (e.g., one leg stronger than another) will also affect motion.●Tekkotsu provides a walk calibration tool to compensate for these effects.●Collect sample trajectories:–forward/strafe–forward/rotate–strafe/rotate–backward/rotate, backward/strafe–rotate●Create walk calibration matrix; store in .prm file.02/20/08 15-494 Cognitive Robotics 15Waypoint Engine●Takes the dog 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/20/08 15-494 Cognitive Robotics 16Controlling 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/20/08 15-494 Cognitive Robotics 17Arcing 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/20/08 15-494 Cognitive Robotics 18Track 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/20/08 15-494 Cognitive Robotics 19Waypoint Walk Editor●Root Control > File Access > WaypointWalk Control●Allows interactive creation, execution of waypoint file.02/20/08 15-494 Cognitive Robotics 20Sample Waypoint File#WyP#add_{point|arc} {ego|off|abs} x_val y_val {hold|follow} angle_val# speed_val arc_valmax_turn_speed 0.65track_path 0add_point EGO 0.3 0 FOLLOW 0 0.1 0add_point EGO 0.5 0 FOLLOW 0 0.1 1#ENDWaypoint typex,y ordx,dy(meters)angleIsRelativemodeorientationspeed (m/sec.)arc value (radians)02/20/08 15-494 Cognitive Robotics 21WaypointWalk●WaypointWalk is a motion command.●Can load waypoints from a waypoint file, or construct them dynamically with function
View Full Document