Actuators & MotionInstructors: Prof. Manuela Veloso & Dr. Paul E. RybskiTAs: Sonia Chernova & Nidhi Kalra15-491, Fall 2004 http://www.andrew.cmu.edu/course/15-491Computer Science DepartmentCarnegie Mellon University15-491 CMRoboBitsSony AIBO Robot15-491 CMRoboBitsIntelligent Complete RobotActionActuatorsPerception External WorldSensorsCognition15-491 CMRoboBitsRobot MotionForward and Inverse KinematicsPID ControlFrame-Based Motions on the AIBOModeling Effects of MotionsForward Kinematics, Inverse Kinematics, & PID Control in a Nutshell15-491 CMRoboBitsRobotic ArmsRevolute JointPrismatic Joint15-491 CMRoboBitsForward KinematicsThe problem: determine the position of the end of the robotic arm given θ1 and θ2 Geometric ApproachAlgebraic Approach15-491 CMRoboBitsA simple exampleTwo links connected by rotational joints to a stable platformGiven θ1 and θ2, solve for a, b and θ15-491 CMRoboBitsSolutionCan be solved trigonometrically:a = l1 cos (θ1 ) + l2 cos(θ1 + θ2)b = l1 sin (θ1 ) + l2 sin (θ1 + θ2)Θ = θ1 + θ215-491 CMRoboBitsDenavit-Hartenberg NotationAssign each joint its own coordinate frame according to some rules. Describe the motion of each frame relative to the previous frame in terms of four parameters , a , d, Plug these values into the DH matrix to get transformations from one coordinate frame to the nextGet the final transformation matrix from the final frame to the initial frame through a series of DH matrix multiplications[cosθi−sinθi0 ai −1sinθicosα i −1 cosθicosα i −1 −sinα i −1 −sinα i −1 disinθisinα i −1 cosθisinα i −1 cosα i −1 cosα i −1 di0 0 0 1]15-491 CMRoboBitsInverse KinematicsGoing backwardsFind joint configuration given position & orientation of tool (end effector)More complex (path planning & dynamics)Usually solved either algebraically or geometricallyPossibility of no solution, one solution, or multiple solutions15-491 CMRoboBitsAnother exampleLets assume l1 = l2What is the configuration of each joint if the end effector is located at (l1, l2,-)? (ie. Find θ1 and θ2)15-491 CMRoboBitsSolutionθ1=0, θ2 = 90Orθ1=90, θ2 = 0(Two Solutions)15-491 CMRoboBitsThe MathThat was an easy one… what does the math look like?θ1=arcsinl2sin θ2x2 y2arctan2yxc2=a2b2−2 ab cos C x2 y2=l12l22−2 l1l2cos180−θ2cos180−θ2=−cos θ2cosθ2=x2 y2−l12−l222 l1l2θ2=arccosx2 y2−l12−l222 l1l215-491 CMRoboBitsReachable Workspacel1l2Joint Limits:-180 ° ≤ θ1 ≤ 180° -180 ° ≤ θ2 ≤ 180° Reachable Workspace15-491 CMRoboBitsPID ControlProportional Integral Derivative ControlThe Basic Problem:We have n joints, each with a desired position which we have specifiedEach joint has an actuator which is given a command in units of torqueMost common method for determining required torques is by feedback from joint sensors15-491 CMRoboBitsThe Control Loope u15-491 CMRoboBitsWhat is PID Control?Proportional, Integral, & Derivative ControlProportional: Multiply current error by constant to try to resolve error Integral: Multiply sum of previous 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 possible15-491 CMRoboBitsSummaryThese concepts make up the low level functionality of the AIBOImplemented once and used repeatedlyFor more information about PID Control and Forward & Inverse Kinematics take Matt Mason’s Robotic Manipulation course15-491 CMRoboBitsThe Motion Interface15-491 CMRoboBitsAIBO Actuators18 degrees of freedom with a continuously controllable range of motion3 DOF in each leg (12 total)3 DOF in the head2 DOF in the tail1 DOF in the jawEach joint is controlled by specifying to a desired joint angle to OVirtualRobotComm.2 binary motors for the earsA speaker for general sound production15-491 CMRoboBitsMotor ControlEach message to OVirtualRobotComm contains a set of target angles for the jointsEach target is used for a PID controller (part of the OS) that controls each motorEach target angle is used for one 8ms motor frameEach message contains at least 4 motor frames (32ms)15-491 CMRoboBitsThe Motion InterfaceWalk EngineWalk ParametersFrame InterpolatorMotion FramesDynamic Walking MotionStatic Frame-Based Motion15-491 CMRoboBitsFrame-Based MotionEach motion is described by a series of “frames” which specify the position of the robot, and a time to interpolate between framesMovement between frames is calculated through linear interpolation of each joint15-491 CMRoboBitsKickingA series of set positions for the robotLinear interpolation between the framesKinematics and interpolation provided by CMWalkEngineSet robot in desired positions and query the values of the joints15-491 CMRoboBits15-491 CMRoboBitsVery Effective Kicks15-491 CMRoboBitsAnother Kick15-491 CMRoboBitsHigh Sensitivity to ParametersGood Settings for Effective Kick15-491 CMRoboBitsHigh Sensitivity to ParametersExact Same Settings - Lab15-491 CMRoboBitsHigh Sensitivity to ParametersGood Settings for the Lab15-491 CMRoboBitsUse of Kicks in BehaviorsModeling effects of kicking motionsBall vision analysisBall trajectory angle analysisKick strength analysisKick selection for behaviorsSelection algorithmPerformance comparison15-491 CMRoboBitsAccuracy of Object Detection Varies -- Robot Standing --500 1000 1500 2000 2500 3000 3500-1600-1400-1200-1000-800-600-400-2000200400StandingDistance (mm)15-491 CMRoboBitsDistance (mm)Accuracy of Object Detection Varies -- Robot Pacing --15-491 CMRoboBits-1000 0 1000 2000 3000 4000 5000-3000-2000-10000100020003000SpinningDistance (mm)Accuracy of Object Detection Varies Accuracy of Object Detection Varies – Robot Spinning --– Robot Spinning --15-491 CMRoboBitsBall Trajectory AngleEstimate the angle of the ball’s trajectory relative to the robotTrack ball’s trajectory after the kickRetain information about ball position in each vision frameCalculate angle of trajectory using linear regression15-491 CMRoboBitsAngle Analysis-100 -80 -60 -40 -20 0 20 40 60 80 1000510152025Forward KickRight Head Kick Left Head Kick15-491 CMRoboBitsKick StrengthEstimate the distance
View Full Document