Robot Arm Tutorial

March 26, 2018 | Author: julfo05 | Category: Torque, Robot, Technology, Robotics, Rotation Around A Fixed Axis


Comments



Description

ROBOT ARM TUTORIALDegrees of Freedom Robot Workspace Mobile Manipulators Force Calculations Forward Kinematics Inverse Kinematics Motion Planning Velocity Sensing End Effector Design About this Robot Arm Tutorial The robot arm is probably the most mathematically complex robot you could ever build. As such, this tutorial can't tell you everything you need to know. Instead, I will cut to the chase and talk about the bare minimum you need to know to build an effective robot arm. Enjoy! To get you started, here is a video of a robot arm assignment I had when I took Robotic Manipulation back in college. My group programmed it to type the current time into the keyboard . . . (lesson learned, don't crash robot arms into your keyboard at full speed while testing in front of your professor) Degrees of Freedom (DOF) The degrees of freedom, or DOF, is a very important term to understand. Each degree of freedom is a joint on the arm, a place where it can bend or rotate or translate. You can typically identify the number of degrees of freedom by the number of actuators on the robot arm. Now this is very important - when building a robot arm you want as few degrees of freedom allowed for your application!!! Why? Because each degree requires a motor, often an encoder, and exponentially complicated algorithms and cost. Denavit-Hartenberg (DH) Convention The Robot Arm Free Body Diagram (FBD) The Denavit-Hartenberg (DH) Convention is the accepted method of drawing robot arms in FBD's. There are only two motions a joint could make: translate and rotate. There are only three axes this could happen on: x, y, and z (out of plane). Below I will show a few robot arms, and then draw a FBD next to it, to with a translation joint: 5 DOF Robot Arm: . Note that I did not count the DOF on the gripper (otherwise known as the end effector).demonstrate the DOF relationships and symbols. three are out of plane: 3 DOF Robot Arm. 4 DOF Robot Arm. so for simplicity it is treated as separate in basic robot arm design. The gripper is often complex with multiple DOF. no human joint can rotate more than about 200 degrees. you would just say link length = 0. etc. . For example. If you were to mathematically represent this. actuator capabilities. The shoulder actually has three coincident DOF. Also note that a DOF has its limitations. Not all joints can swivel 360 degrees! A joint has some max angle restriction. Sometimes a joint can have multiple DOF in the same location. An example would be the human shoulder. servo max angle.Notice between each DOF there is a linkage of some particular length. Limitations could be from wire wrapping. It is a good idea to label each link length and joint max angle on the FBD. known as the configuration space. from now on we will only talk about the one shown below. Since there are many possible configurations for your robot arm.(image credit: Roble. the arm link lengths. . etc. The workspace is dependent on the DOF angle/translation limitations. then that is a translational joint.info) Your robot arm can also be on a mobile base. if it can move forward. I chose this 3 DOF configuration because it is simple. the angle at which something must be picked up at. This mobile manipulator robot is an example of a 1 DOF arm on a 2 DOF robot (3 DOF total). If the wheeled robot can rotate. that is a rotation joint. yet isnt limiting in ability. Robot Workspace The robot workspace (sometimes known as reachable space) is all places that the end effector (gripper) can reach. The workspace is highly dependent on the robot configuration. adding additional DOF. If you change the link lengths you can get very different sizes of workspaces. To determine the workspace. we have this workspace image. trace all locations that the end effector can reach as in the image below. This creates a workspace of a shelled semisphere (its a shape because I said so). Any location outside of this space is a . all joints are limited to a max of 180 degrees. Remember that because it uses servos. but this would be the general shape. because mostservo motors cannot exceed that amount. Now rotating that by the base joint another 180 degrees to get 3D.Now lets assume that all joints rotate a maximum of 180 degrees. If there are objects in the way of the arm. the workspace can get even more complicated. Here are a few more robot workspace examples: Cartesian Gantry Robot Arm Cylindrical Robot Arm Spherical Robot Arm Scara Robot Arm .location the arm cant reach. but the DOF of the vehicle is added to the DOF of the arm. that would give the robot arm a total sum of 7 DOF. but also what the robot arm will carry (the blue ball in the image below). This will give you a fundamental understanding of moment armcalculations. Before even continuing. I strongly recommend you read the mechanical engineering tutorials for statics anddynamics. They work just like other robotic arms. with the robot arm stretched out to its maximum length. What do you think the workspace on this type of robot would be? Force Calculations of Joints This is where this tutorial starts getting heavy with math. The first step is to label your FBD. The point of doing force calculations is for motor selection. If say you have a differential drive robot (2 DOF) with a robot arm (5 DOF) attached (see yellow robot below). You must make sure that the motor you choose can not only support the weight of the robot arm. .Articulated Robot Arm Mobile Manipulators A moving robot with a robot arm is a sub-class of robotic arms. Too lazy to calculate forces and torques yourself? Try my robot arm calculatorto do the math for you. and the joint weights get heavier. You will also see that shorter arm lengths allow for smaller torque requirements. here we calculate end effector location with given joint angles and link lengths. This particular design has just two DOF that requires lifting. all you need is highschool trig and algebra. To calculate forward kinematics. and the center of mass of each linkage is assumed to be Length/2. . This calculation must be done for each lifting actuator. given the joint angles and link lengths of the robot arm. I drew blue triangles and labeled the angles.Choose these parameters: o weight of each linkage o weight of each joint o weight of object to lift o length of each linkage Next you do a moment arm calculation. For our robot arm example. for each DOF you add the math gets more complicated. To make visualization easier for you. Forward Kinematics Forward kinematics is the method for determining the orientation and position of the end effector. Torque About Joint 1: M1 = L1/2 * W1 + L1 * W4 + (L1 + L2/2) * W2 + (L1 + L3) * W3 Torque About Joint 2: M2 = L2/2 * W2 + L3 * W3 As you can see. multiplying downward force times the linkage lengths. what angles should each joint go to? Although way more useful than forward kinematics. Too lazy to calculate forward kinematics yourself? Check out my Robot Arm Designer v1 in excel. this calculation is much more complicated too.L1^2 . This is when you have a desired end effector position. The first step would be to locate x and y of each joint. in this example. I will not show you how to derive the equation based on your robot arm configuration. Joint 0 (with x and y at base equaling 0): x0 = 0 y0 = L0 Joint 1 (with x and y at J1 equaling 0): cos(psi) = x1/L1 => x1 = L1*cos(psi) sin(psi) = y1/L1 => y1 = L1*sin(psi) Joint 2 (with x and y at J2 equaling 0): sin(theta) = x2/L2 => x2 = L2*sin(theta) cos(theta) = y2/L2 => y2 = L2*cos(theta) End Effector Location (make sure your signs are correct): x0 + x1 + x2. The robot sees a kitten and wants to grab it. in cylindrical coordinates The angle of the end effector. I will just give you the equations for our specific robot design: psi = arccos((x^2 + y^2 . is equal to theta + psi. there are other reasons too.Assume that the base is located at x=0 and y=0.L2^2) / (2 * L1 * L2)) theta = arcsin((y * (L1 + L2 * c2) . As such. and s2 = sqrt(1 . .L1^2 . Instead.x * L2 * s2) / (x^2 + y^2)) where c2 = (x^2 + y^2 .L2^2) / (2 * L1 * L2). or L0 + L1*sin(psi) + L2*cos(theta) z equals alpha. but need to know the joint angles required to achieve it. So what makes inverse kinematics so hard? Well.c2^2). Inverse Kinematics Inverse kinematics is the opposite of forward kinematics. or 0 + L1*cos(psi) + L2*sin(theta) y0 + y1 + y2. other than the fact that it involvesnon-linear simultaneous equations. how does the arm move through the workspace to reach a certain point? To do this. Maybe the location is outside the workspace. How would your arm choose which is optimal. Too lazy to calculate inverse kinematics yourself? Check out my Robot Arm Designer v1 in excel. What if you want your robot end effector to draw straight lines with a pencil? Getting it to go from point A to point B in a straight line is relatively simple to solve. No point in having advanced equations on a processor that cant keep up. . Singularities. The final motion will come out as a . Motion Planning Motion planning on a robot arm is fairly complex so I will just give you the basics.First. Suppose your robot arm has objects within its workspace. What your robot should do. previous arm position.? There is the possibility of zero solutions. based on torques. a place of infinite acceleration. can blow up equations and/or leave motors lagging behind (motors cant achieve infinite acceleration). etc. This is extremely difficult to do . gripping angle. exponential equations take forever to calculate on a microcontroller. assume your robot arm is just a simple mobile robot navigating in 3D space. . or maybe the point within the workspace must be gripped at an impossible angle. The end effector will traverse the space just like a mobile robot. there is the very likely possibility of multiple. number of solutions (as shown below). by using inverse kinematics. except now it must also make sure the other joints and links do not collide with anything too. And lastly. is go to many points between point A and point B. sometimes infinite. or curve. and tell the robot how to go between the two points (straight line. the arm is told to get to the red point as fast as possible. fast as possible. . the quickest way between two points is often not a straight line. but can go in many directions. or tell all the joints to go as fast as possible . The end effector can follow a straight line. you could use the wavefront algorithm to plan this two point trajectory. In the top example. then max velocity can vary between them. the end effector travels a straight line. or carry different loads. With robot arms. as it requires the momentum change for movement (momentum = mass * velocity). Usually you want straight lines when the object the arm moves is really heavy. so I will go only into the basics. For further reading.smooth straight line. Which method is better? There are many deciding factors. etc. In the image below the end effector of the robot arm is moving from the blue point to the red point. Have it follow a straight line between both points.). This is the only possible motion this arm can perform to travel a straight line. but curved ones too. When you tell the end effector to go from one point to the next. Given many different trajectories. On expensive professional robotic arms all you need to do is program two points. so therefore the velocity is Velocity of end effector on straight arm = 2 * pi * radius * rpm However the end effector does not just rotate about the base. If two joints have two different motors. The simplest way to do it is assume your robot arm (held straight out) is a rotating wheel of L diameter. you have two decisions. the arm goes the method that allows the joints to rotate the fastest. You can not only do this method with straight lines. The joint rotates at Y rpm. In the bottom example.leaving the end effector to possibly swing wildly between those points. Velocity (and more Motion Planning) Calculating end effector velocity is mathematically complex. etc. what torque does the J0 motor need? Well. we get torque = (mass * distance^2) * (angular_velocity / change_in_time) where distance is defined as the distance from the rotation axis to the center of mass of the arm: center of mass of the arm = distance = 1/2 * (arm_length) (use arm mass) but you also need to account for the object your arm holds: center of mass of the object = distance = arm_length (use object mass) . Putting this in equation form we get this: torque = moment_of_inertia * angular_acceleration breaking that equation into sub components we get: torque = (mass * distance^2) * (change_in_angular_velocity / change_in_time) and change_in_angular_velocity = (angular_velocity1)-(angular_velocity0) angular_velocity = change_in_angle / change_in_time Now assuming at start time 0 that angular_velocity0 is zero. J0 is not affected by gravity. or just light objects) you would want maximum joint speeds. Now suppose you want your robot arm to operate at a certain rotational velocity.But for maximum speed (perhaps the arm isn't carrying anything. how much torque would a joint need? First. so all we need to consider is momentum and inertia. lets go back to our FBD: Now lets suppose you want joint J0 to rotate 180 degrees in under 2 seconds. as close to the robot arm base as possible.So then calculate torque for both the arm and then again for the object. When designing your arm. This is when an arm is too long and heavy. But it gets harder . . if J0 was additionally affected by gravity. . Look up something called a Jacobian if you enjoy mathematical pain =P In order to better understand robot arm dynamics. To avoid doing this by hand. Do a finite element analysis to determine bending deflection/stress such as I did on my ERP robot: Keep the heaviest components. such as motors. add the torque required to lift the arm to the torque required to reach the velocity you need. It might be a good idea for the middle arm joint to be . Each team programs an arm to do two tasks:  Try to place all three of its pegs in the opponents' goal  Block opponent pegs from going in your own goal Enjoy! (notice the different arm trajectories) Arm Sagging Arm sagging is a common affliction of badly designed robot arms. just use the robot arm calculator. bending when outwardly stretched. make sure the arm is reinforced and lightweight. we had a robot arm bowling competition using the same DENSO 6DOF robot arms as in the clocks video. the above equation is for rotational motion and not for straight line motions. then add the two torques together for the total: torque(of_object) + torque(of_arm) = torque(for_motor) And of course. some robot arms have feed back sensors (such as touch) that gets directed back to the human (vibrating the glove. The solve this. it could actually reach for it (visual tracking and servoing). If the arm can locate a position in X-Y space of an image. . it could then direct the end effector to go to that same X-Y location (by using inverse kinematics). etc.). A robot arm without video sensing is like an artist painting with his eyes closed. please read the Computer Vision Tutorials for more information. Giving the arm a red ball. touch. Haptic sensing is a little different in that there is a human in the loop. such as encoders. implement a PID controller so as to slow the arm down before it makes a full stop. Sensing Most robot arms only have internal sensors. etc. The human controls the robot arm movements remotely. or by operating a miniature model with position sensors.chain/belt driven by a motor located at the base (to keep the heavy motor on the base and off the arm). locking model joints. Also to note. If you are interested in learning more about the vision aspect of visual servoing. a robot arm could go from point to point on its own without a list of preprogrammed positions. The sagging problem is even worse when the arm wobbles between stop-start motions. Using basic visual feedback algorithms. This could be done by wearing a special glove. But for good reasons you may want to add additional sensors. haptic. Robotic arms for amputees are doing a form of haptic sensing. such as video. . meaning a collision has occurred. .no precisionencoders required for perfect contact! End Effector Design In the future I will write a separate tutorial on how to design robot grippers.sudden large current draws generally mean a collision/contact has occurred. . and not grasp too tight or too lightly. move your hand slowly to reach for your computer mouse. After that finger touches. Do it!!!! You will see why soon .perhaps even identify the object by its weight. and put both of your hands in your lap. your hand will suddenly re-adjust its position because it now knows exactly where that mouse is. Close your eyes.Tactile sensing (sensing by touch) usually involves force feedback sensors andcurrent sensors. as it will require many more pages of material. An arm could also adjust end effector velocity by knowing if it is carrying a heavy object or a light object . These sensors detect collisions by detecting unexpected force/current spikes. just by measuring force. Try this. This is the benefit of tactile sensing . Now keeping your eyes closed. but at least one of your fingers will touch the mouse. Now what will happen is that your hand will partially miss. A robot end effector can detect a successful grasp. Another method would be to use current limiters . In the meantime. I also went in to some detail describing my robot arm card dealing gripper. Anyway. you might be interested in reading the tutorial for calculating friction and force for robot end effectors. I hope you have enjoyed this robot arm tutorial! .
Copyright © 2024 DOKUMEN.SITE Inc.