CSIS 0801 Final Year Project. Implementation of An Intelligent Hexapod Robot. Individual Final Report - Kinematics

Size: px
Start display at page:

Download "CSIS 0801 Final Year Project. Implementation of An Intelligent Hexapod Robot. Individual Final Report - Kinematics"

Transcription

1 CSIS 0801 Final Year Project Implementation of An Intelligent Hexapod Robot Individual Final Report - Kinematics FYP Account: fyp14013 Name: Yip Sit Wun (Terry) UID: HKU CS FYP14013 Implementation of An Intelligent Hexapo 1

2 Table of Content 1 Introduction 2 Kinematics Algorithm 2.1 Forward Kinematics General Approach Analytical Approach 2.2 Inverse Kinematics General Approach Analytical Approach 2.3 Body Kinematics Body Translation Body Rotation Rotation Matrix 2.4 Leg Kinematics 3 Locomotion 3.1 Alternating Tripod Gait 3.2 Metachronal Gait 4 Design & Implementation 4.1 Coordinate System Body Frame Leg Frame 4.2 Implementation of Leg Kinematics 4.3 Implementation of Body Kinematics 4.4 Implementation of Gait Tripod Walking Straight Forward Backward Right Left Tripod Wheeling Forward Right/Left Wheel Backward Right/Left Wheel Tripod Rotating Right Rotating Left Rotating Implementation of Loop Initial Design Final Design 5 Conclusion 6 Reference HKU CS FYP14013 Implementation of An Intelligent Hexapo 2

3 1 Introduction The primary goal of this project is to make the hexapod robot being able to walk. In order to make this goal achievable, there are two components that we have to study and implement, combining them and make them working together. The first component is Kinematics and the second one is the Gait. The part that I am responsible for is the study of this kinematics problem, to find some applicable theories and to design a feasible solution that can reach one of the major goal in our Hexapod Robot project, to let the robot able to walk. 2 Kinematics Algorithm Kinematics, which is a branch of Mechanics, is the study of motion of objects. In our case, what we concern and focus most are the Kinematics of the legs and the body of the Hexapod Robot. Kinematics is important not only because we need to know how the legs and the body should move, but also keeping the balance of the Hexapod Robot so that it would not fall during any body motion. In our robot architecture design, we make the robot moves by controlling the servos directly, sending a signal to the servo and it will then turn to our desired angle (detailed design and control please refer to Group Report Servos by Arack). In this way, we only need to deal with the different joint parameters (servo angle) when we are implementing the Kinematics solution. To keep the robot balance when moving, we have to consider the centre of mass of the robot. The centre of mass should always be above and in between the centre of pivot, which is the centre of the edges where the end-effectors (endpoint of the legs) touch the ground. The Kinematic problems here are that we need to know exactly where the legs are and where they need to be next when walking the robot. There are two different approaches in solving the Kinematics problem, one is Forward Kinematics and the other one is Inverse Kinematics, which are both commonly used in real life robotics product. In the following, we then study and discuss the ideas of the two Kinematics theories. 2.1 Forward Kinematics The basic idea of Forward Kinematics is that when we are given all the joint parameters (servo angles) and all the length of links (robot arms), we can compute the exact coordinate (with respect to the Origin of the leg) of its end-effector (endpoint of the leg), for details of the coordinate system of the robot please refer to 4.1 Coordinate System. We will then always have only one solution for the problem using Forward Kinematics and there are two different approaches to solve the problem General Approach A general approach of solving the problem of any robot arms of n links uses a matrix called D-H Matrix. It is derived by Denavit and Hartenberg in 1950 s that they found the HKU CS FYP14013 Implementation of An Intelligent Hexapo 3

4 representation of a general transformation of a link (between two joints) require four parameters, which are known as D-H parameters. The coordinate transformation is represented as follow: Where d is the distance measured between the two perpendiculars along the joint axis, θ is the joint angle about vertical axis measured between the two perpendiculars, r is the distance measured between two joint axis along the mutual perpendicular, α is the joint relative twist (angle) between the two joint axis measured about the mutual perpendicular. d, θ, r, α are the D-H parameters. The four operations are then represented as follow: And together it gives the follow finale representation: However, this general solution is not trivial and seldom the most computationally efficient, as in real life practice it need more specialization in order to fit the Hexapod Robot. We now look at another simpler approach Analytical Approach When there are only two or three links in an robot arm, it might be possible to solve the problem analytically by using geometry and trigonometry. The simple example below can demonstrate this idea clearly. Diagram below is a robot arm lying in a 2D-plane. There are two links, Arm1 and Arm2 and two joint parameters, θ 1 and θ 2. The red point is the end-effector where ( x, y ) is our desired location HKU CS FYP14013 Implementation of An Intelligent Hexapo 4

5 By using simple trigonometry, x = L 1 cosθ 1 + L 2 cos(θ 1 + θ 2 ) y = L 1 sinθ 1 + L 2 sin(θ 1 + θ 2 ) we then have exact coordinate ( x, y ) But having the exact coordinate ( x, y ) does not really help in our case. We want the Hexapod Robot walks and that means we want the end-effector moves to a specific coordinate. The change of coordinate of the end-effector usually cannot be achieved by simply changing one single joint parameters. This make the forward kinematics not very useful as we have to input the joint parameters one by one and test if the end-effector reach our desired coordination. Therefore, we want a opposite approach and that is the Inverse Kinematics. 2.2 Inverse Kinematics Inverse Kinematics is the inverse of Forward kinematics. The idea is that when we are given the desired end-effector coordinates and all the lengths of links, we can then use these inputs to compute the required joint angles to achieve the goal. Again, there are two different approaches to solve the problem using inverse Kinematics General Approach The general idea of solving the problem is that when given the current coordinate and the desired coordination of the end-effector, we start with the joint nearest to the end-effector. We rotate the nearest joint in the way that the end-effector moves toward to the required coordinate. We then repeat it with the next joint in an iterative manner until the base joint is rotated. Such idea can be implemented by using the Jacobian matrix. However, in our case, this method is not what we focus on as the solution is not as trivial as the analytical HKU CS FYP14013 Implementation of An Intelligent Hexapo 5

6 approach and the implementation of matrix and vector does not give a satisfying performance Analytical Approach Same as the analytical approach used in solving Forward Kinematics as mentioned before, we can solve the problem using trigonometry. Below is a 2D-plane example: The green dot is the desired coordination where the end-effector located, is the length of link and γ is the required angle. L 1 Given the desired coordination ( x, y ), we have the required angle computed by γ = tan 1 ( x) y 2.3 Body Kinematics We now know that there are two different Kinematics theories and two different approaches to solve the Kinematics problem, however, only knowing the equations doesn t help in achieving our goal. We need to consider applying the Kinematics equation on the body of the hexapod robot to achieve all our desired body motions. Although our primary goal is to make the hexapod robot walk, there are two more body motions other than just walking that we need to concern. These body motions help balancing the body and they are Body Rotation and Body Translation Body Translation Body translation is the shift of centre of the body horizontally to X-Y plane or vertically to Z plane without changing any of the coordinate of all the end-effectors. Diagrams below show all the Body Translation along three axes. HKU CS FYP14013 Implementation of An Intelligent Hexapo 6

7 HKU CS FYP14013 Implementation of An Intelligent Hexapo 7

8 We can see that the actual position of all the endpoint of the legs remain the same in the two diagrams, however, the centre of the body did shift and there is a relative change in the coordinate of the legs but the actual position actually remains. The approach on solving the Body Translation is pretty straightforward, the idea is that we can pass the change of coordinate of the body (Origin of the body taken at the centre of mass of the body) to the Leg Kinematics. Let s say if we want the robot do a Body Translation along Z-axis, the value of z can be directly passed to the Leg Kinematics of the six different legs, then the six different legs will move together with the same displacement along Z-axis. Thus, achieving the desired Body Translation along Z-axis Body Rotation Similar to Body Rranslation, Body Rotation is a kind of body motion that moves only the relative position of the legs but not the actual position. There are three kinds of Body Rotation and the diagrams below show these three different kinds of body motion along the three different axes. a. Roll (Rotation about Y-axis) b. Yaw (Rotation about Z-axis) c. Pitch (Rotation about X-axis) HKU CS FYP14013 Implementation of An Intelligent Hexapo 8

9 HKU CS FYP14013 Implementation of An Intelligent Hexapo 9

10 For all of the three Body Rotations, we can see that the endpoint of all legs of the hexapod robot remain the same actual positions throughout the motion. There are multiple usages of Body Rotation and Translation, a simple usage would be a demo of the hexapod robot dancing with the beats of music using these body motions. A more practical usage is that these Body Kinematics actually provide the foundation of achieving the goal of a walking robot. Unlike Body Translation, we don t have a direct and simple approach on solving Body Rotation. What we need is the Rotation Matrix Rotation Matrix One solution to those Body Rotations is the Rotation Matrix. Rotation Matrix is a matrix that is used to perform a rotation in 3D-space, there are three basic rotations about the three axes and they are shown as follow. Where θ is the angle rotated. When considering our cases, we want a general equation representing the overall rotation of the body. Such equation can be given by as follow: Where α, β, γ is the yaw, roll, pitch angle in our case respectively (as we take X-axis as the axis along the head-tail of the body and Y-axis as the left-right axis, details please refer to 4.1 Coordinate System ). Thus, by expanding this equation we have the following: HKU CS FYP14013 Implementation of An Intelligent Hexapo 10

11 So, given the current coordinate and the desired yaw, roll, pitch angle, we can compute the new desired coordinate by the following derived equation. Where x, z, y is the new desired coordinate, x, y, z, R are the previous coordinate and the Rotation Matrix defined above. We can take body rotation, Yaw, as an simple example of how to resolve Body Kinematics problem. Say if we want the Hexapod Robot to yaw for 30 degrees, the robot needs to move its legs to a new position. The new desired coordinates of each leg can be easily found by using trigonometry, s in(30) or c os(30) in this case, or more precise by using the equation above, then by passing the new desired coordinates to the Leg Kinematics, the Leg Kinematics will actually calculate every required joint angles for moving all the legs to the new coordinates. Thus the Body Rotation - Yaw can be achieved. We will look into how the Leg Kinematics works in the following. 2.4 Leg Kinematics Leg Kinematics is needed for achieving all the desired body motions. The working principle of Leg Kinematics is that given any desired coordinate of the end-effector, the Leg Kinematics can then calculated all the required joint parameters to achieve such position. We start to solve our leg kinematics problem by analysing the proposed design. Our hexapod robot consists of six legs, each leg has three links and three joints (servos), of which two joints lie on the vertical plane and the other one joint lies on horizontal plane. The three link are namely Coxa, Femur and Tibia. The three joint parameters are namely γ Gamma (horizontal), α Alpha (vertical) and β Beta (vertical). The graph below on the left is the sketch of one of the leg. HKU CS FYP14013 Implementation of An Intelligent Hexapo 11

12 Now we take a look at the graph on the right. It demonstrates how we solve the problem using Inverse Kinematics. First, we solve joint parameter γ by viewing the problem from above. The colour blue, red and green represent three different links and the green dot represents the position of the end-effector. Similar to the example we mentioned in Analytical Approach, we can obtain the required angle γ and perpendicular length of end-effector to the base of link L 1 easily by using Trigonometry and Pythagoras Theorem as follow: γ = tan 1 y x L 1 = x2 + y 2 Then we take the front view of this leg as shown below. Blue colour link is link Coxa, where red one is Femur and Green one is Tibia. To make the calculation easier, we divided required joint parameter α into α 1 and α 2. HKU CS FYP14013 Implementation of An Intelligent Hexapo 12

13 of Z offset. We first measured the length of all three links, C oxa, F emur, T ibia and the height The length L can be easily found by using Pythagoras Theorem: L = (L oxa) Z 1 C offset Then together with Cosine Law, we can find the two required joint parameters easily. Where α 1 = cos 1 Z ( offset ), α 2 = cos ( Femur +L Tibia ), β = cos ( Femur +Tibia L ) L 2 Femur L 2 Femur Tibia and α = α 1 + α 2. So by using all these equation, when we input a desired coordinate implemented function will output the required joint angle α and β. ( x, y, z ), the However, since our derived equation may give one or more solution or no solution to the inputted desired coordinate, we have to set some limits with respect to the physical constraint of the robot. For instance, the physical length of link C oxa, F emur, T ibia. is the physical limit that the leg can stretch to its farthest. We now have the solution of of Body Kinematics and Leg Kinematics, but the Hexapod Robot still would not be able to walk without the last major component, the solution of Gait. 3 Locomotion After studying and designing the Kinematics solution, we come to the study of Gait. The reason why we need Gait study is that Kinematics solution only solves the problems of HKU CS FYP14013 Implementation of An Intelligent Hexapo 13

14 finding where the leg should be and how it should be, by determining the required joint angles. It did not solve how the robot should walk and how it can walk. The problem is that only moving all the legs from one coordinate to the desired coordinate does not mean it can achieve the desired body movement. Let s say when we give the new desired coordinate to the Leg Kinematics, it can only solve the required joint parameters for moving the legs to the desired position. For instance, if we want the robot walk forward, the legs will only shift forward but not rising and putting again like what a natural walking motion should be. Gait study is the solution to this problem. Gait study is the study of pattern of movement of the limbs of animals/insects. Most animals use different gaits and we will study some of them and decide which one to implement so that the hexapod robot can walk naturally. As the hexapod robot looks very much like a spider, there are a few common insects gaits that we can start with, one is Alternating Tripod Gait and one is Metachronal Gait. 3.1 Alternating Tripod Gait The Tripod Gait is the fastest gait found in insects. When walking, the insect always has three legs on the ground (two legs on one side and one leg on the other side) so that it forms a tripod for balancing. That means the insect is moving three legs in the form of tripod in the same time. The figure below shows a hexapod walking in the Tripod Gait. 3.2 Metachronal Gait The Metachronal Gait is the slowest gait found in insects. When the insect is moving, it moves only one leg at a time and keeping the other five in contact with the ground. HKU CS FYP14013 Implementation of An Intelligent Hexapo 14

15 The graph above has shown the comparison between a) Metachronal Gait and b) Tripod Gait. Both gaits give great stability as the centre of mass stays consistently within the centre of pivot during the leg movements. 4 Design & Implementation After going through all the basic ideas on the Kinematics and Gait, we now come to the design and implementation of those solutions towards our problems. In order to achieve all our desired robot movement, we need to implement the Gait, Body and Leg Kinematics in a way that all these essential components would work together. The initial idea is to first apply Inverse Kinematics on the leg and body of the Hexapod Robot, that the first goal would be achieving all desired leg and body motion. Then we would implement the Gait and use the Leg and Body kinematics to make it work. After studying the two different Kinematics and the two different approaches in solving the problem, we decided to use the Inverse Kinematics together with Analytical Approach in this project. The reason is that the idea of Inverse Kinematics fits our needs better, as we want to the legs to reach a destined position but we don t know how it can be achieved, Inverse Kinematics gives a way to solve the required joint angle out. Besides the benefits that the Analytical Approach solution is straightforward and trivial, it also have advantages in implementation. As this method requires only simple trigonometry function, we can implement it easily by using the standard library of many programming language. Also, the processing speed of trigonometry function is fast and it enhances the performance of our Hexapod Robot. So we made the decision in using Analytical Inverse Kinematics as our approach to solve the kinematics problem. To make the implementation easier to manage, we split Analytical Inverse Kinematics solution into two parts, the Body Kinematics and the Leg Kinematics. The idea of splitting it is that imagine if we want to control the Hexapod Robot walking straight forward, we should consider how the body motion is but not considering each leg separately. Let s say we have the centre of mass of the body as the Origin (0, 0, 0 ), Z-plane HKU CS FYP14013 Implementation of An Intelligent Hexapo 15

16 as the vertical plane and X-Y-plane as the horizontal plane, moving the robot forward or backward or left or right should only have changes in X-Y coordinates. We can then pass these coordinate changes to the Leg Kinematics of the six different legs, resulting in changes of coordinate of all the end-effectors, so that each leg can then achieve it desired coordinate. This makes the Kinematics problem easier to solve and extends the usability of these Kinematics solution. Before we move on to the design and implementation of leg and body, we first talk about how we define our Coordinate System of our Hexapod Robot. 4.1 Coordinate System Before we start designing the Leg and Body Kinematics solution, the first thing we need to solve is to set a Coordination System as the basis of all our design and implementation. As the Kinematics solution involves a lot of rotation matrix equation, we want a Coordinate System that will ease the implementation. After discussion with the other teammates, for the ease of calculation and implementation, we decided to set the Coordinate System as follow. Here we define different Coordinate System for the Body Frame and Leg Frame. A Frame is an Axis System. The reason why we do this is that the body and the legs are actually in a different frame. The body of the robot has its own Axis System while every legs also has its own Axis System. HKU CS FYP14013 Implementation of An Intelligent Hexapo 16

17 4.1.1 Body Frame As shown in the graph above, this is the sketch of Hexapod Robot from the view above (vertical view of the horizontal X-Y plane). The red O is the Origin (0, 0, 0 ) of the Body Frame, which is located at the centre of the body of the hexapod robot. The distance between the O rigin of the leg and the O rigin of the body is indicated as the blue arrow and such distance is called the leg offset. The two red arrows indicated the positive direction of the X-Y axes. The six legs of the robot namely from leg0 to leg5 is indicated in the graph too. leg0, leg1 and leg2 belong to the the negative Y-Axis (the right side of the robot) on the graph where leg3, leg4 and leg5 belong to the positive Y-Axis (the left side of the robot). Where the legs lie on the positive side or negative is very important as this difference directly affects the calculation using rotational matrix and the implementation of the equations. The graph of viewing the robot from the front (horizontal view of Z-Y plane) is shown below. Z-Axis is the vertical axis. HKU CS FYP14013 Implementation of An Intelligent Hexapo 17

18 The scale of this coordination system is taken as implementation and testing. 1 = 1 cm for the ease of design, Leg Frame After defining the Body Frame, we need to define the frame for all of the six legs. The graph below shows how we define the Leg Frame. We take the base of the leg (End point of link C oxa, which is connected to the body, as the Origin (0, 0, 0 ) of the leg. The green O indicates the Origin (0, 0, 0 ) of the leg and the green arrows indicate the direction of the X-Y Axis. The vertical Z-Axis is not shown in the graph but it is the same as the Body Frame, positive side being vertically up and negative side being down. We are defining this Leg Frame on all of the six legs. HKU CS FYP14013 Implementation of An Intelligent Hexapo 18

19 As mentioned in Rotation Matrix, since we are using the Rotation Matrix to solve most of our Kinematics problem, we need to consider one important property of Rotation Matrix. The important property is that given a rotation angle θ, if θ is positive (i.e. θ = 90 ) then the direction of rotation is counterclockwise if θ is positive, and obviously, the direction is clockwise if θ is negative (i.e. θ = 90 ). So in our cases, when designing the Gait and Kinematics solution, we need to consider the following diagram for every Leg Frame and Body Frame in deciding the value of input and direction of movement. HKU CS FYP14013 Implementation of An Intelligent Hexapo 19

20 The above diagram show the value of rotation angle direction in our Coordination System when applying on the Hexapod Robot. 4.2 Implementation of Leg Kinematics θ and its corresponding rotation In our implementation, we implement the derived equation (please refer to the 2.4 Leg Kinematics ) directly using ACOS2, ATAN function with the four measured parameters, oxa, F emur, T ibia, Z. When we input a desired coordinate (x,y,z), the implemented C offset function will output the required joint angle α and β. As we mentioned, since our derived equation may give one or more solution or no solution to the inputted desired coordinate, we have to set some limits with respect to the physical constraint of the robot. For instance, our first prototype (just a single leg of the hexapod robot), we measured the link C oxa = 3 cm, F emur = 9.5 cm, T ibia = 16.5 cm. We take the coordinate scale as 1 = 1 cm, that is for example a desired coordinate ( 0, 29, 0 ) would be the physical limit that the leg can stretch (since the total length of C oxa, F emur, T ibia is 29 cm). Besides this physical limit of the leg, we also did some fine tunes in the implementation by providing different offset measured after assembling the leg. Such offset is essential as the assembling of servos onto the leg is not always perfect, we need to measure and test the offset of each component. However, when we tested the implementation of leg, we found that the degree calculated by the algorithm is different from what we expected to pass to the control of the servos. The angle of the servos are different from the angle calculated from the Kinematics algorithm. Adjustment is then made to solve the problem, details of the problem and solution please refer to Group Report How to Convert Program Calculate Degrees to Servo Actual Degrees by Arack. HKU CS FYP14013 Implementation of An Intelligent Hexapo 20

21 The implementation of the Leg Kinematics is pretty straight forward. After having it as the basis of Body Kinematics, we move to the implementation of Body Kinematics. 4.3 Implementation of Body Kinematics The implementation of Body Kinematics is again straightforward. We apply the derived equation in 2.3 Body Kinematics directly. As declared in 4.1 Coordinate System, we take the centre of the body as the Origin (0, 0, 0 ) of the Hexapod robot. However, for a better design in the sense of neat and tidy, we did not implement a general Body Kinematics solution. Instead, we implement it in a way that it will work on each leg separately, in connection to the implementation of Leg Kinematics solution. In our implementation, there are six required parameters, representing the two different kinds of body motion, Translation and Rotation (Yaw, Pitch, Roll angle), and they work together with the the current coordinate of the endpoint of the legs. The six parameters are as follow: translation_x (posx), translation_y (posy), translation_z (posz), rotation_x (rotx), rotation_y (roty), rotation_z (rotz). These parameters store exactly the value in translation along three different axis and the degree in rotation about three different axis. Then together with the current coordinate of all the end-effectors, the implemented solution will return the new desired coordinates and pass them to the Leg Kinematics solution for solving. Detailed elaboration about these parameters please refer to Group Report Implementation Body Inverse Kinematic Algorithm by Arack. Again, similar as implementation of Leg Kinematics in 3.2, there are physical limitations on the degree of movement that the Hexapod Robot can perform. Such limitations are tested and we set restrictions according to the test results in our implementation. In our first implementation, we found that the Body Kinematics solution did not really work. After reviewing our implementation, we found that problem come from the missing of considering the offset of each leg to the centre of body. HKU CS FYP14013 Implementation of An Intelligent Hexapo 21

22 So in our fixed implementation, for each of the leg, we consider the current coordinate of the end-effector (with respect to the base of the leg) as well as the leg offset (distance between base of the leg and Origin of the body) as indicated as the blue arrow in the diagram above. The implementation of Body Kinematics together with Leg Kinematics is then able to perform all our desired movement. At this step, we finished the implementation of most of the body motion. However, the Hexapod Robot still does not know how to walk! Imagine if we want to move the robot by changing let s say the X-coordinate of the centre of the body (as walking straight forward/backward is the same as changing X-coordinate), such change in coordinate would only result in the same shift of all coordinates of all the endpoint of the legs. That would only result in the body X-translation but not actual walking. With only the Leg and Body Kinematics the robot would not know how to walk, what we need now is the design and implementation of Gait, which perform the walking of the robot together by the Leg and Body Kinematics Solution. 4.4 Implementation of Gait In 3. Locomotion, we covered two different kinds of Gait. The Alternating Tripod Gait and Metachronal Gait. We decided to choose Alternating Tripod Gait to implement as it is easier in design and can achieve fastest speed in walking. Though Metachronal Gait is the best in the sense of balancing the body (since there is only one leg above the ground at HKU CS FYP14013 Implementation of An Intelligent Hexapo 22

23 one moment), Alternating Tripod Gait can also achieve excellent balance with correct setting and Metachronal Gait is the slowest gait. The initial idea of how to implement the gait is that we will predefine a loop of sequences of steps (predefined coordinates). From the graph below you can actually see that the legs performing Tripod Gait is actually repeating its own sequence of steps. So in our approach, first of all we define the Natural Position of the Hexapod Robot. The Natural Position is that when Tibia is vertically aligned to the ground and Femurs aligned horizontally to Coxa. This Natural Position is useful in calibration of the all the joints offset and also as the base of the loop of Gait. Assume we have a predefined loop of 10 steps, each leg is then assigned to start with different steps (assigned according to the step of Tripod Gait shown above). Then we can just loop the sequence of steps and achieve the desired body movement. There are 3 different kinds of walking that we want to achieve. a. Walking straight (forward, backward, left, right) b. Wheeling (forward and backward right, forward and backward and left) c. Rotating (right, left) And we are going to cover them one by one in the following section Tripod Walking Straight After studying the loop demonstrated in last section, we come up with the idea of designing two different loops in each motion. There are two loops of different phase as the Tripod Gait works in a way that two legs on one side and one leg on the other side are moving in the same phase, while the other three legs are moving in the other phase at the HKU CS FYP14013 Implementation of An Intelligent Hexapo 23

24 same time. Consider the graph below: For instances, leg0, leg2, leg4 are of the same phase (green circle) and leg1, leg3, leg5 are of the other phase (yellow circle). So when we just consider the leg on the two different sides, we have the graph below. This graph is a draft of how the legs should move in the loop. The graph on the left is the leg on the right side of the robot, which is viewing from the right side of the body. The graph on the right is the leg on the left side of the robot, which is viewing from the left HKU CS FYP14013 Implementation of An Intelligent Hexapo 24

25 side of the body. Axes directions are drawn in grey colour. The red dots are end point of the leg and the black arrow indicate how the endpoint of the leg should move in order to achieve the desired movement. A diagram of the actual Hexapod Robot moving its leg in loop A B C is shown as follow. In our design, point D is the Natural Position of the leg, where point B is vertically above point D, and point A and C are horizontally align with point D Forward So by analyzing the graph in last above, we then figure out that we need two different loop of steps to make this movement feasible. They are as follow: Phase 1 (leg0, leg2, leg4): A B C D A Phase 2 (leg1, leg3, leg5): C D A B C The two different phases are assigned to the legs as shown. The loop is a complete loop which gone through every point as stated in the graph Backward Right It is basically the inverse of sequence of walking forward. Phase 1 (leg0, leg2, leg4): C B A D C Phase 2 (leg1, leg3, leg5): A D C B A For this case, it is pretty different from the above two directions. We can consider the following graphs for design idea. HKU CS FYP14013 Implementation of An Intelligent Hexapo 25

26 This graph actually shows the loop of leg1 and leg4 when walking towards right. The two legs are walking in the same direction. For the overview of all the legs movement, see below. HKU CS FYP14013 Implementation of An Intelligent Hexapo 26

27 This graph demonstrates exactly how should each leg should move in their own loop in order to walk rightwards. Therefore, deriving from this graph, we have the following different loops. Right side Phase 1 (leg1): A B C D A Left Right side Phase 2 (leg0, leg2): C D A B C Left side Phase 1 (leg3, leg5): C B A D C Left side Phase 2 (leg4): A D C B A For walking leftwards, we can just invert the flow of walking rightwards. Right side Phase 1 (leg1): A D C B A Right side Phase 2 (leg0, leg2): C B A D C Left side Phase 1 (leg3, leg5): C D A B C HKU CS FYP14013 Implementation of An Intelligent Hexapo 27

28 Left side Phase 2 (leg4):a B C D A Tripod Wheeling The idea of how to implement Tripod Wheeling is extremely direct and simple. We simply consider the Hexapod Robot walking same as in Tripod Walking Straight, but with one side of the legs walking with smaller degree of movement while the other side of legs walking with greater degree of movement. Therefore, the Forward Wheeling has the same loop as walking straight forward in Forward and the Backward Wheeling has the same loop as walking straight backward in Backward. When we want to do Right Wheel, we can set the degree of movement of legs on right side (leg0, leg1, leg2) smaller and those legs on left side (leg3, leg4, leg5) larger. For Left Wheel, it is just exactly the opposite, larger degree of movement on legs on right side and smaller degree for those on left side Forward Right/Left Wheel Phase 1 (leg0, leg2, leg4): A B C D A Phase 2 (leg1, leg3, leg5): C D A B C For the diagrams of the steps, please refer to Tripod Walking Straight Backward Right/Left Wheel Phase 1 (leg0, leg2, leg4): C B A D C Phase 2 (leg1, leg3, leg5): A D C B A For the diagrams of the steps, please refer to Tripod Walking Straight Tripod Rotating Tripod rotating is that we want the robot to rotate itself (i.e. changing the heading direction with no displacement made). This can easily be achieved by having one side of the body walking forward and the other side of the body walking backward, depending on which direction to rotate. For instance, if we want the robot does a Right Rotating, the legs on the right side of the body should do the same movement as walking straight backward and those legs on the left side of the body should do the same movement as walking straight forward. For Left Rotating, it is just the opposite Right Rotating So for the legs on right side we just use the loop of walking in Backward and for legs on left side, we use the loop of Forward. Right side Phase 1 (leg1): A D C B A Right side Phase 2 (leg0, leg2): C B A D C Left side Phase 1 (leg3, leg5): C D A B C Left side Phase 2 (leg4):a B C D A HKU CS FYP14013 Implementation of An Intelligent Hexapo 28

29 For the diagrams of the steps, please refer to Tripod Walking Straight Left Rotating For rotating left, it is again just the opposite of Right Rotating. Right side Phase 1 (leg1): A B C D A Right side Phase 2 (leg0, leg2): C D A B C Left side Phase 1 (leg3, leg5): C B A D C Left side Phase 2 (leg4): A D C B A For the diagrams of the steps, please refer to Tripod Walking Straight Implementation of Loop We now have all the design of loop of steps to achieve different kinds of movement, but how do we actually implement the loop? The points of loop, A, B, C, D, are actually different coordinates of the endpoint of each of the legs, so a very direct approach would be directly inputting all the respective coordinates and store them as an array/list and use it for looping Initial Design We need a loop of different coordinates, so how we find those desired coordinates? Our initial approach is to solve this problem by empirical study. We simply measure the length of X, Y, Z of the endpoint respective to its O rigin of leg, as our Coordinate System uses the scale of 1:1 cm. For instance, when implementing the Tripod Walk Straight Forward function, we have the following coordinates measured. Diagram shown below is an extraction of the implementation, details about the design of coding (i.e. Point Object) please refer to Group Report Point Object by Arack. Our approach is simple, we define the number of legs and the number of different points required, then we store the desired coordinate in the Point Object, we then use different arrays to store the whole loop of these steps. We test this code and we immediately engaged with a major problem, the legs were moving too fast from the current coordinate to the desired coordinate, that the robot was HKU CS FYP14013 Implementation of An Intelligent Hexapo 29

30 not able to walk at all. The problem origins from the control of the servo and we solved it by dividing the motion between the current coordinate to desired coordinate into smaller slices such that we can control the moving speed of each servo. Detailed problem and solution please refer to Group Report How does the hexapod move in a different speed? by Arack. After solving this problem, the robot is now able to walk. However, we found that the movement is unstable that the robot can hardly maintain its balance during walking. It keeps falling after walking several steps. Such problem is found to be caused by the lack of power of servos and also the design problems of the legs. After several discussion and review of the design, we suggest Sherman to shorten the length of link Femur, as the shorter the distance between endpoint of the leg to the centre of the body, the more powerful that the leg can stand. We also changed all the servos to a more powerful one such that it can provide a better balance, detailed problem and solution please refer to Group Report Short leg joint (Femur) by Sherman Final Design After we solved all the control and physical problems that affect the body movement of the Hexapod Robot, our initial implementation already works and able to perform all the desired body movement. However, the initial implementation is not good in the sense that we actually hard-coded each of the steps in the loop that perform body movement. The problem with our initial design is that it solely relies on the physical properties of our robot (i.e. the length of each link of the leg and the coordinates we measured by hand). This caused the problem when we want to make changes to the design of the robot or the gait. We need a more flexible design that allow us making changes to the gait and robot without updating lots of the code. The approach we used here is that instead of measuring each desired coordinate of the loop by hands, we use the design data from 3D modeling (the length of all the links) as the basis for processing new coordinate. With those data, we can have the coordinates of the Natural position and use it as a reference point for calculating all other desired coordinates by using Forward Kinematics (detail please refer to Group Report How does the hexapod move with different altitudes of the center? by Arack). The idea of using a loop of coordinates to perform body movement remains the same but the way how we obtain the desired coordinates differ from the initial approach. The code shown below is an extraction from our implementation. HKU CS FYP14013 Implementation of An Intelligent Hexapo 30

31 You can actually see that we specified the joint angle for rotation of the reference point (natural_gait_right) and then the new desired coordinates is stored in the array of Point Objects. By using the Forward Kinematics to calculated our desired coordinates, the result is much accurate that it also gives better accuracy in results given by our Inverse Kinematics Solution for solving the required joint parameters to reach these new desired coordinates. This is our final design and implementation of the Gait. It works together with Forward Kinematics and Inverse Kinematics Solution and a loop of those calculated coordinates to achieve our desirable movement. 5 Conclusion In conclusion of this part of our Hexapod Robot project, Kinematics is surely the major component or even the core of of our robot. Through the study of different kinematics problems and solutions, we are able find some applicable theories to solve our problem. The approach that we used to solve the Kinematics problem is simple and easy to follow. Future development on better and more Gaits implementation is also possible. There are more natural animal gaits than the two we mentioned in this report. In short, with the design and implementation of Body and Leg Kinematics and Gait interacting with each other, all the components are working together to carry out the goal of walking of the robot and we are glad to see the robot being able to perform all the desired motion. This goal is achieved by the collaboration between my teammates and I. While I am responsible for studying and designing all the kinematics solution, my teammate Arack handle all the implementation details as well as the design of the architecture of the robot so that I need not to know about the control of the servo and stay my focus on solving the Kinematics problem. I studied the Kinematics theories and design the feasible solutions, then I wrote the pseudocode of those Kinematics solution to Arack and he turned it into real code that works on the robot. We tested the Kinematics and Gait algorithm and solved the problems together by suggesting different ideas on the possible solutions to each other. For instance, the design on how to smooth the gait movement and the design of the loop are results of our discussions. Besides, Sherman, who are in charged of the design of the body of the robot, also join hands together in reaching the goal of a walking robot. He took our advice on the body design and we discuss together on how to make the robot more stable during walking by redesigning the leg and other components. A great thanks to all my teammates as without their support and opinions, the Kinematics solution won t come to life and our Hexapod Robot won t be able to walk at all. Last but not least, a special thanks to Oscar Liang, who shared all his ideas and his design of his Hexapod Robot on his webpage. His ideas shed light on our design and implementation. HKU CS FYP14013 Implementation of An Intelligent Hexapo 31

32 6 Reference [2] Forward Kinematics - Rich's Robot Musings Retrieved from [2.1] Forward Kinematics - Wikipedia Retrieved from [2.1.1] Denavit Hartenberg parameters - Wikipedia Retrieved from [2.2] Inverse Kinematics Basics Tutorial - OscarLiang.net Retrieved from [2.2] Inverse Kinematics - Rich's Robot Musings Retrieved from [2.2] Inverse Kinematics - Wikipedia Retrieved from [2.3] Inverse Kinematics for Hexapod and Quadruped Robots - OscarLiang.net Retrived from ts/ [2.2.1] Jacobian matrix and determinant - Wikipedia Retrieved from [2][3] iitsii the Hexapod Robot - Robugtix Retrieved from [3] Gait - Wikipedia Retrieved from HKU CS FYP14013 Implementation of An Intelligent Hexapo 32

33 [3] Insect Locomotion - MindCreators.com Retrieved from [2.3.3] Rotation Matrix - Wikipedia Retrieved from HKU CS FYP14013 Implementation of An Intelligent Hexapo 33

Forward kinematics and Denavit Hartenburg convention

Forward kinematics and Denavit Hartenburg convention Forward kinematics and Denavit Hartenburg convention Prof. Enver Tatlicioglu Department of Electrical & Electronics Engineering Izmir Institute of Technology Chapter 5 Dr. Tatlicioglu (EEE@IYTE) EE463

More information

θ x Week Date Lecture (M: 2:05p-3:50, 50-N202) 1 23-Jul Introduction + Representing Position & Orientation & State 2 30-Jul

θ x Week Date Lecture (M: 2:05p-3:50, 50-N202) 1 23-Jul Introduction + Representing Position & Orientation & State 2 30-Jul θ x 2018 School of Information Technology and Electrical Engineering at the University of Queensland Lecture Schedule Week Date Lecture (M: 2:05p-3:50, 50-N202) 1 23-Jul Introduction + Representing Position

More information

Industrial Robots : Manipulators, Kinematics, Dynamics

Industrial Robots : Manipulators, Kinematics, Dynamics Industrial Robots : Manipulators, Kinematics, Dynamics z z y x z y x z y y x x In Industrial terms Robot Manipulators The study of robot manipulators involves dealing with the positions and orientations

More information

Motion Control (wheeled robots)

Motion Control (wheeled robots) Motion Control (wheeled robots) Requirements for Motion Control Kinematic / dynamic model of the robot Model of the interaction between the wheel and the ground Definition of required motion -> speed control,

More information

3.0 Trigonometry Review

3.0 Trigonometry Review 3.0 Trigonometry Review In trigonometry problems, all vertices (corners or angles) of the triangle are labeled with capital letters. The right angle is usually labeled C. Sides are usually labeled with

More information

MTRX4700 Experimental Robotics

MTRX4700 Experimental Robotics MTRX 4700 : Experimental Robotics Lecture 2 Stefan B. Williams Slide 1 Course Outline Week Date Content Labs Due Dates 1 5 Mar Introduction, history & philosophy of robotics 2 12 Mar Robot kinematics &

More information

CMPUT 412 Motion Control Wheeled robots. Csaba Szepesvári University of Alberta

CMPUT 412 Motion Control Wheeled robots. Csaba Szepesvári University of Alberta CMPUT 412 Motion Control Wheeled robots Csaba Szepesvári University of Alberta 1 Motion Control (wheeled robots) Requirements Kinematic/dynamic model of the robot Model of the interaction between the wheel

More information

An object in 3D space

An object in 3D space An object in 3D space An object's viewpoint Every Alice object has a viewpoint. The viewpoint of an object is determined by: The position of the object in 3D space. The orientation of the object relative

More information

Kinematics, Kinematics Chains CS 685

Kinematics, Kinematics Chains CS 685 Kinematics, Kinematics Chains CS 685 Previously Representation of rigid body motion Two different interpretations - as transformations between different coord. frames - as operators acting on a rigid body

More information

Grasping Known Objects with Aldebaran Nao

Grasping Known Objects with Aldebaran Nao CS365 Project Report Grasping Known Objects with Aldebaran Nao By: Ashu Gupta( ashug@iitk.ac.in) Mohd. Dawood( mdawood@iitk.ac.in) Department of Computer Science and Engineering IIT Kanpur Mentor: Prof.

More information

Planar Robot Kinematics

Planar Robot Kinematics V. Kumar lanar Robot Kinematics The mathematical modeling of spatial linkages is quite involved. t is useful to start with planar robots because the kinematics of planar mechanisms is generally much simpler

More information

MATHEMATICS FOR ENGINEERING TUTORIAL 5 COORDINATE SYSTEMS

MATHEMATICS FOR ENGINEERING TUTORIAL 5 COORDINATE SYSTEMS MATHEMATICS FOR ENGINEERING TUTORIAL 5 COORDINATE SYSTEMS This tutorial is essential pre-requisite material for anyone studying mechanical engineering. This tutorial uses the principle of learning by example.

More information

Developing a Robot Model using System-Level Design

Developing a Robot Model using System-Level Design Developing a Robot Model using System-Level Design What was once the stuff of dreams, being secretly developed in high-security government labs for applications in defense and space exploration, is now

More information

A Simple Introduction to Omni Roller Robots (3rd April 2015)

A Simple Introduction to Omni Roller Robots (3rd April 2015) A Simple Introduction to Omni Roller Robots (3rd April 2015) Omni wheels have rollers all the way round the tread so they can slip laterally as well as drive in the direction of a regular wheel. The three-wheeled

More information

Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ x + 5y + 7z 9x + 3y + 11z

Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ x + 5y + 7z 9x + 3y + 11z Basic Linear Algebra Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ 1 5 ] 7 9 3 11 Often matrices are used to describe in a simpler way a series of linear equations.

More information

10/11/07 1. Motion Control (wheeled robots) Representing Robot Position ( ) ( ) [ ] T

10/11/07 1. Motion Control (wheeled robots) Representing Robot Position ( ) ( ) [ ] T 3 3 Motion Control (wheeled robots) Introduction: Mobile Robot Kinematics Requirements for Motion Control Kinematic / dynamic model of the robot Model of the interaction between the wheel and the ground

More information

2.0 Trigonometry Review Date: Pythagorean Theorem: where c is always the.

2.0 Trigonometry Review Date: Pythagorean Theorem: where c is always the. 2.0 Trigonometry Review Date: Key Ideas: The three angles in a triangle sum to. Pythagorean Theorem: where c is always the. In trigonometry problems, all vertices (corners or angles) of the triangle are

More information

DAY 1 - GEOMETRY FLASHBACK

DAY 1 - GEOMETRY FLASHBACK DAY 1 - GEOMETRY FLASHBACK Sine Opposite Hypotenuse Cosine Adjacent Hypotenuse sin θ = opp. hyp. cos θ = adj. hyp. tan θ = opp. adj. Tangent Opposite Adjacent a 2 + b 2 = c 2 csc θ = hyp. opp. sec θ =

More information

Unit 2: Trigonometry. This lesson is not covered in your workbook. It is a review of trigonometry topics from previous courses.

Unit 2: Trigonometry. This lesson is not covered in your workbook. It is a review of trigonometry topics from previous courses. Unit 2: Trigonometry This lesson is not covered in your workbook. It is a review of trigonometry topics from previous courses. Pythagorean Theorem Recall that, for any right angled triangle, the square

More information

Keyframing an IK Skeleton Maya 2012

Keyframing an IK Skeleton Maya 2012 2002-2012 Michael O'Rourke Keyframing an IK Skeleton Maya 2012 (This tutorial assumes you have done the Creating an Inverse Kinematic Skeleton tutorial in this set) Concepts Once you have built an Inverse

More information

Robotics (Kinematics) Winter 1393 Bonab University

Robotics (Kinematics) Winter 1393 Bonab University Robotics () Winter 1393 Bonab University : most basic study of how mechanical systems behave Introduction Need to understand the mechanical behavior for: Design Control Both: Manipulators, Mobile Robots

More information

Automatic generation of humanoid s geometric model parameters

Automatic generation of humanoid s geometric model parameters Automatic generation of humanoid s geometric model parameters Vincent Hugel and Nicolas Jouandeau LISV, University of Versailles and LIASD, University of Paris 8 Abstract. This paper describes a procedure

More information

METR 4202: Advanced Control & Robotics

METR 4202: Advanced Control & Robotics Position & Orientation & State t home with Homogenous Transformations METR 4202: dvanced Control & Robotics Drs Surya Singh, Paul Pounds, and Hanna Kurniawati Lecture # 2 July 30, 2012 metr4202@itee.uq.edu.au

More information

Triangulation: A new algorithm for Inverse Kinematics

Triangulation: A new algorithm for Inverse Kinematics Triangulation: A new algorithm for Inverse Kinematics R. Müller-Cajar 1, R. Mukundan 1, 1 University of Canterbury, Dept. Computer Science & Software Engineering. Email: rdc32@student.canterbury.ac.nz

More information

ME5286 Robotics Spring 2014 Quiz 1 Solution. Total Points: 30

ME5286 Robotics Spring 2014 Quiz 1 Solution. Total Points: 30 Page 1 of 7 ME5286 Robotics Spring 2014 Quiz 1 Solution Total Points: 30 (Note images from original quiz are not included to save paper/ space. Please see the original quiz for additional information and

More information

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES YINGYING REN Abstract. In this paper, the applications of homogeneous coordinates are discussed to obtain an efficient model

More information

An Interactive Software Environment for Gait Generation and Control Design of Sony Legged Robots

An Interactive Software Environment for Gait Generation and Control Design of Sony Legged Robots An Interactive Software Environment for Gait Generation and Control Design of Sony Legged Robots Dragos Golubovic and Huosheng Hu Department of Computer Science, University of Essex, Colchester CO4 3SQ,

More information

Trigonometry I. Exam 0

Trigonometry I. Exam 0 Trigonometry I Trigonometry Copyright I Standards 006, Test Barry Practice Mabillard. Exam 0 www.math0s.com 1. The minimum and the maximum of a trigonometric function are shown in the diagram. a) Write

More information

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 3: Forward and Inverse Kinematics

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 3: Forward and Inverse Kinematics MCE/EEC 647/747: Robot Dynamics and Control Lecture 3: Forward and Inverse Kinematics Denavit-Hartenberg Convention Reading: SHV Chapter 3 Mechanical Engineering Hanz Richter, PhD MCE503 p.1/12 Aims of

More information

Exam in DD2426 Robotics and Autonomous Systems

Exam in DD2426 Robotics and Autonomous Systems Exam in DD2426 Robotics and Autonomous Systems Lecturer: Patric Jensfelt KTH, March 16, 2010, 9-12 No aids are allowed on the exam, i.e. no notes, no books, no calculators, etc. You need a minimum of 20

More information

Using Algebraic Geometry to Study the Motions of a Robotic Arm

Using Algebraic Geometry to Study the Motions of a Robotic Arm Using Algebraic Geometry to Study the Motions of a Robotic Arm Addison T. Grant January 28, 206 Abstract In this study we summarize selected sections of David Cox, John Little, and Donal O Shea s Ideals,

More information

THE FOURTH DIMENSION (AND MORE!)

THE FOURTH DIMENSION (AND MORE!) THE FOURTH DIMENSION (AND MORE!) The text leads us from zero dimensions (a point), to one dimension (a line), to two dimensions (a plane), to three dimensions (our familiar space), and then to four dimensions

More information

Cognitive Robotics

Cognitive Robotics 04-801 Cognitive Robotics David Vernon Carnegie Mellon University Africa vernon@cmu.edu www.vernon.eu Cognitive Robotics 1 Carnegie Mellon University in Rwanda Lecture 11 Robot Arms II Example robot programming

More information

Vector Addition and Subtraction: Analytical Methods

Vector Addition and Subtraction: Analytical Methods Connexions module: m42128 1 Vector Addition and Subtraction: Analytical Methods OpenStax College This work is produced by The Connexions Project and licensed under the Creative Commons Attribution License

More information

Robotics kinematics and Dynamics

Robotics kinematics and Dynamics Robotics kinematics and Dynamics C. Sivakumar Assistant Professor Department of Mechanical Engineering BSA Crescent Institute of Science and Technology 1 Robot kinematics KINEMATICS the analytical study

More information

UNIVERSITY OF OSLO. Faculty of Mathematics and Natural Sciences

UNIVERSITY OF OSLO. Faculty of Mathematics and Natural Sciences Page 1 UNIVERSITY OF OSLO Faculty of Mathematics and Natural Sciences Exam in INF3480 Introduction to Robotics Day of exam: May 31 st 2010 Exam hours: 3 hours This examination paper consists of 5 page(s).

More information

Inverse Kinematics Analysis for Manipulator Robot With Wrist Offset Based On the Closed-Form Algorithm

Inverse Kinematics Analysis for Manipulator Robot With Wrist Offset Based On the Closed-Form Algorithm Inverse Kinematics Analysis for Manipulator Robot With Wrist Offset Based On the Closed-Form Algorithm Mohammed Z. Al-Faiz,MIEEE Computer Engineering Dept. Nahrain University Baghdad, Iraq Mohammed S.Saleh

More information

This week. CENG 732 Computer Animation. Warping an Object. Warping an Object. 2D Grid Deformation. Warping an Object.

This week. CENG 732 Computer Animation. Warping an Object. Warping an Object. 2D Grid Deformation. Warping an Object. CENG 732 Computer Animation Spring 2006-2007 Week 4 Shape Deformation Animating Articulated Structures: Forward Kinematics/Inverse Kinematics This week Shape Deformation FFD: Free Form Deformation Hierarchical

More information

Kinematics. Kinematics analyzes the geometry of a manipulator, robot or machine motion. The essential concept is a position.

Kinematics. Kinematics analyzes the geometry of a manipulator, robot or machine motion. The essential concept is a position. Kinematics Kinematics analyzes the geometry of a manipulator, robot or machine motion. The essential concept is a position. 1/31 Statics deals with the forces and moments which are aplied on the mechanism

More information

ME5286 Robotics Spring 2013 Quiz 1

ME5286 Robotics Spring 2013 Quiz 1 Page 1 of 7 ME5286 Robotics Spring 2013 Quiz 1 Total Points: 36 You are responsible for following these instructions. Please take a minute and read them completely. 1. Put your name on this page, any other

More information

Inverse Kinematics for Humanoid Robots using Artificial Neural Networks

Inverse Kinematics for Humanoid Robots using Artificial Neural Networks Inverse Kinematics for Humanoid Robots using Artificial Neural Networks Javier de Lope, Rafaela González-Careaga, Telmo Zarraonandia, and Darío Maravall Department of Artificial Intelligence Faculty of

More information

Chapter 5. Transforming Shapes

Chapter 5. Transforming Shapes Chapter 5 Transforming Shapes It is difficult to walk through daily life without being able to see geometric transformations in your surroundings. Notice how the leaves of plants, for example, are almost

More information

Introduction to Robotics

Introduction to Robotics Université de Strasbourg Introduction to Robotics Bernard BAYLE, 2013 http://eavr.u-strasbg.fr/ bernard Modelling of a SCARA-type robotic manipulator SCARA-type robotic manipulators: introduction SCARA-type

More information

Algebra II Trigonometric Functions

Algebra II Trigonometric Functions Slide 1 / 162 Slide 2 / 162 Algebra II Trigonometric Functions 2015-12-17 www.njctl.org Slide 3 / 162 Trig Functions click on the topic to go to that section Radians & Degrees & Co-terminal angles Arc

More information

Chapter 2 Trigonometry

Chapter 2 Trigonometry Chapter 2 Trigonometry 1 Chapter 2 Trigonometry Angles in Standard Position Angles in Standard Position Any angle may be viewed as the rotation of a ray about its endpoint. The starting position of the

More information

Kinematics and Orientations

Kinematics and Orientations Kinematics and Orientations Hierarchies Forward Kinematics Transformations (review) Euler angles Quaternions Yaw and evaluation function for assignment 2 Building a character Just translate, rotate, and

More information

Unit 1, Lesson 1: Moving in the Plane

Unit 1, Lesson 1: Moving in the Plane Unit 1, Lesson 1: Moving in the Plane Let s describe ways figures can move in the plane. 1.1: Which One Doesn t Belong: Diagrams Which one doesn t belong? 1.2: Triangle Square Dance m.openup.org/1/8-1-1-2

More information

PreCalculus Unit 1: Unit Circle Trig Quiz Review (Day 9)

PreCalculus Unit 1: Unit Circle Trig Quiz Review (Day 9) PreCalculus Unit 1: Unit Circle Trig Quiz Review (Day 9) Name Date Directions: You may NOT use Right Triangle Trigonometry for any of these problems! Use your unit circle knowledge to solve these problems.

More information

Planning, Execution and Learning Application: Examples of Planning for Mobile Manipulation and Articulated Robots

Planning, Execution and Learning Application: Examples of Planning for Mobile Manipulation and Articulated Robots 15-887 Planning, Execution and Learning Application: Examples of Planning for Mobile Manipulation and Articulated Robots Maxim Likhachev Robotics Institute Carnegie Mellon University Two Examples Planning

More information

Vector Addition. Qty Item Part Number 1 Force Table ME-9447B 1 Mass and Hanger Set ME Carpenter s level 1 String

Vector Addition. Qty Item Part Number 1 Force Table ME-9447B 1 Mass and Hanger Set ME Carpenter s level 1 String rev 05/2018 Vector Addition Equipment List Qty Item Part Number 1 Force Table ME-9447B 1 Mass and Hanger Set ME-8979 1 Carpenter s level 1 String Purpose The purpose of this lab is for the student to gain

More information

Trigonometry I -- Answers -- Trigonometry I Diploma Practice Exam - ANSWERS 1

Trigonometry I -- Answers -- Trigonometry I Diploma Practice Exam - ANSWERS 1 Trigonometry I -- Answers -- Trigonometry I Diploma Practice Exam - ANSWERS www.puremath.com Formulas These are the formulas for Trig I you will be given on your diploma. a rθ sinθ cosθ tan θ cotθ cosθ

More information

Robot Inverse Kinematics Asanga Ratnaweera Department of Mechanical Engieering

Robot Inverse Kinematics Asanga Ratnaweera Department of Mechanical Engieering PR 5 Robot Dynamics & Control /8/7 PR 5: Robot Dynamics & Control Robot Inverse Kinematics Asanga Ratnaweera Department of Mechanical Engieering The Inverse Kinematics The determination of all possible

More information

Modular robotics and locomotion Juan Gonzalez Gomez

Modular robotics and locomotion Juan Gonzalez Gomez Modular robotics and locomotion Juan Gonzalez Gomez School of Engineering Universidad Autonoma de Madrid (Spain) Uni Hamburg. FB Informatik. AB TAMS. April 2006 Index Introduction to Modular robotics Starting

More information

Algebra II. Slide 1 / 162. Slide 2 / 162. Slide 3 / 162. Trigonometric Functions. Trig Functions

Algebra II. Slide 1 / 162. Slide 2 / 162. Slide 3 / 162. Trigonometric Functions. Trig Functions Slide 1 / 162 Algebra II Slide 2 / 162 Trigonometric Functions 2015-12-17 www.njctl.org Trig Functions click on the topic to go to that section Slide 3 / 162 Radians & Degrees & Co-terminal angles Arc

More information

Sphero Lightning Lab Cheat Sheet

Sphero Lightning Lab Cheat Sheet Actions Tool Description Variables Ranges Roll Combines heading, speed and time variables to make the robot roll. Duration Speed Heading (0 to 999999 seconds) (degrees 0-359) Set Speed Sets the speed of

More information

DIMENSIONAL SYNTHESIS OF SPATIAL RR ROBOTS

DIMENSIONAL SYNTHESIS OF SPATIAL RR ROBOTS DIMENSIONAL SYNTHESIS OF SPATIAL RR ROBOTS ALBA PEREZ Robotics and Automation Laboratory University of California, Irvine Irvine, CA 9697 email: maperez@uci.edu AND J. MICHAEL MCCARTHY Department of Mechanical

More information

ME5286 Robotics Spring 2015 Quiz 1

ME5286 Robotics Spring 2015 Quiz 1 Page 1 of 7 ME5286 Robotics Spring 2015 Quiz 1 Total Points: 30 You are responsible for following these instructions. Please take a minute and read them completely. 1. Put your name on this page, any other

More information

Mobile Robot Kinematics

Mobile Robot Kinematics Mobile Robot Kinematics Dr. Kurtuluş Erinç Akdoğan kurtuluserinc@cankaya.edu.tr INTRODUCTION Kinematics is the most basic study of how mechanical systems behave required to design to control Manipulator

More information

Basics of Computational Geometry

Basics of Computational Geometry Basics of Computational Geometry Nadeem Mohsin October 12, 2013 1 Contents This handout covers the basic concepts of computational geometry. Rather than exhaustively covering all the algorithms, it deals

More information

Figure 1: 2D arm. Figure 2: 2D arm with labelled angles

Figure 1: 2D arm. Figure 2: 2D arm with labelled angles 2D Kinematics Consier a robotic arm. We can sen it commans like, move that joint so it bens at an angle θ. Once we ve set each joint, that s all well an goo. More interesting, though, is the question of

More information

which is shown in Fig We can also show that the plain old Puma cannot reach the point we specified

which is shown in Fig We can also show that the plain old Puma cannot reach the point we specified 152 Fig. 7.8. Redundant manipulator P8 >> T = transl(0.5, 1.0, 0.7) * rpy2tr(0, 3*pi/4, 0); The required joint coordinates are >> qi = p8.ikine(t) qi = -0.3032 1.0168 0.1669-0.4908-0.6995-0.1276-1.1758

More information

Abstract. Introduction

Abstract. Introduction The efficient calculation of the Cartesian geometry of non-cartesian structures J.M. Freeman and D.G. Ford Engineering Control and Metrology Research Group, The School of Engineering, University of Huddersfield.

More information

INSTITUTE OF AERONAUTICAL ENGINEERING

INSTITUTE OF AERONAUTICAL ENGINEERING Name Code Class Branch Page 1 INSTITUTE OF AERONAUTICAL ENGINEERING : ROBOTICS (Autonomous) Dundigal, Hyderabad - 500 0 MECHANICAL ENGINEERING TUTORIAL QUESTION BANK : A7055 : IV B. Tech I Semester : MECHANICAL

More information

Mithras3D Team Description Paper 2014 Soccer Simulation 3D League

Mithras3D Team Description Paper 2014 Soccer Simulation 3D League Mithras3D Team Description Paper 2014 Soccer Simulation 3D League Armita Sabeti Ashraf, Atieh Alsadat Moosavian, Fatemeh Gerami Gohar, Fatima Tafazzoli Shadpour, Romina Moradi, Sama Moayeri Farzanegan

More information

SM 2. Date: Section: Objective: The Pythagorean Theorem: In a triangle, or

SM 2. Date: Section: Objective: The Pythagorean Theorem: In a triangle, or SM 2 Date: Section: Objective: The Pythagorean Theorem: In a triangle, or. It doesn t matter which leg is a and which leg is b. The hypotenuse is the side across from the right angle. To find the length

More information

Review of Trigonometry

Review of Trigonometry Worksheet 8 Properties of Trigonometric Functions Section Review of Trigonometry This section reviews some of the material covered in Worksheets 8, and The reader should be familiar with the trig ratios,

More information

Open Access The Kinematics Analysis and Configuration Optimize of Quadruped Robot. Jinrong Zhang *, Chenxi Wang and Jianhua Zhang

Open Access The Kinematics Analysis and Configuration Optimize of Quadruped Robot. Jinrong Zhang *, Chenxi Wang and Jianhua Zhang Send Orders for Reprints to reprints@benthamscience.ae The Open Automation and Control Systems Journal, 014, 6, 1685-1690 1685 Open Access The Kinematics Analysis and Configuration Optimize of Quadruped

More information

Trigonometric Ratios and Functions

Trigonometric Ratios and Functions Algebra 2/Trig Unit 8 Notes Packet Name: Date: Period: # Trigonometric Ratios and Functions (1) Worksheet (Pythagorean Theorem and Special Right Triangles) (2) Worksheet (Special Right Triangles) (3) Page

More information

ISE 422/ME 478/ISE 522 Robotic Systems

ISE 422/ME 478/ISE 522 Robotic Systems ISE 422/ME 478/ISE 522 Robotic Systems Overview of Course R. Van Til Industrial & Systems Engineering Dept. Oakland University 1 What kind of robots will be studied? This kind Not this kind 2 Robots Used

More information

Homogeneous coordinates, lines, screws and twists

Homogeneous coordinates, lines, screws and twists Homogeneous coordinates, lines, screws and twists In lecture 1 of module 2, a brief mention was made of homogeneous coordinates, lines in R 3, screws and twists to describe the general motion of a rigid

More information

Control of an 8-Legged, 24 DOF, Mechatronic Robot

Control of an 8-Legged, 24 DOF, Mechatronic Robot Control of an 8-Legged, 24 DOF, Mechatronic Robot Submitted by Brian Lim Youliang Kuvesvaran s/o Paramasivan National Junior College Assoc. Prof. Dr. Francis Malcolm John Nickols Abstract The objective

More information

3. Manipulator Kinematics. Division of Electronic Engineering Prof. Jaebyung Park

3. Manipulator Kinematics. Division of Electronic Engineering Prof. Jaebyung Park 3. Manipulator Kinematics Division of Electronic Engineering Prof. Jaebyung Park Introduction Kinematics Kinematics is the science of motion which treats motion without regard to the forces that cause

More information

Modular robotics and locomotion Juan Gonzalez Gomez

Modular robotics and locomotion Juan Gonzalez Gomez Modular robotics and locomotion Juan Gonzalez Gomez School of Engineering Universidad Autonoma de Madrid (Spain) Uni Hamburg. FB Informatik. AB TAMS. May 2006 Contents Introduction to robotics Introduction

More information

Adding vectors. Let s consider some vectors to be added.

Adding vectors. Let s consider some vectors to be added. Vectors Some physical quantities have both size and direction. These physical quantities are represented with vectors. A common example of a physical quantity that is represented with a vector is a force.

More information

Simulation-Based Design of Robotic Systems

Simulation-Based Design of Robotic Systems Simulation-Based Design of Robotic Systems Shadi Mohammad Munshi* & Erik Van Voorthuysen School of Mechanical and Manufacturing Engineering, The University of New South Wales, Sydney, NSW 2052 shadimunshi@hotmail.com,

More information

SNAP Centre Workshop. Introduction to Trigonometry

SNAP Centre Workshop. Introduction to Trigonometry SNAP Centre Workshop Introduction to Trigonometry 62 Right Triangle Review A right triangle is any triangle that contains a 90 degree angle. There are six pieces of information we can know about a given

More information

A lg e b ra II. Trig o n o m e tric F u n c tio

A lg e b ra II. Trig o n o m e tric F u n c tio 1 A lg e b ra II Trig o n o m e tric F u n c tio 2015-12-17 www.njctl.org 2 Trig Functions click on the topic to go to that section Radians & Degrees & Co-terminal angles Arc Length & Area of a Sector

More information

Theory of Robotics and Mechatronics

Theory of Robotics and Mechatronics Theory of Robotics and Mechatronics Final Exam 19.12.2016 Question: 1 2 3 Total Points: 18 32 10 60 Score: Name: Legi-Nr: Department: Semester: Duration: 120 min 1 A4-sheet (double sided) of notes allowed

More information

Robot mechanics and kinematics

Robot mechanics and kinematics University of Pisa Master of Science in Computer Science Course of Robotics (ROB) A.Y. 2016/17 cecilia.laschi@santannapisa.it http://didawiki.cli.di.unipi.it/doku.php/magistraleinformatica/rob/start Robot

More information

Answers to practice questions for Midterm 1

Answers to practice questions for Midterm 1 Answers to practice questions for Midterm Paul Hacking /5/9 (a The RREF (reduced row echelon form of the augmented matrix is So the system of linear equations has exactly one solution given by x =, y =,

More information

AQA GCSE Further Maths Topic Areas

AQA GCSE Further Maths Topic Areas AQA GCSE Further Maths Topic Areas This document covers all the specific areas of the AQA GCSE Further Maths course, your job is to review all the topic areas, answering the questions if you feel you need

More information

Inverse Kinematics for Humanoid Robots Using Artificial Neural Networks

Inverse Kinematics for Humanoid Robots Using Artificial Neural Networks Inverse Kinematics for Humanoid Robots Using Artificial Neural Networks Javier de Lope, Rafaela González-Careaga, Telmo Zarraonandia, and Darío Maravall Department of Artificial Intelligence Faculty of

More information

Section 7.1. Standard position- the vertex of the ray is at the origin and the initial side lies along the positive x-axis.

Section 7.1. Standard position- the vertex of the ray is at the origin and the initial side lies along the positive x-axis. 1 Section 7.1 I. Definitions Angle Formed by rotating a ray about its endpoint. Initial side Starting point of the ray. Terminal side- Position of the ray after rotation. Vertex of the angle- endpoint

More information

Working with the Dope Sheet Editor to speed up animation and reverse time.

Working with the Dope Sheet Editor to speed up animation and reverse time. Bouncing a Ball Page 1 of 2 Tutorial Bouncing a Ball A bouncing ball is a common first project for new animators. This classic example is an excellent tool for explaining basic animation processes in 3ds

More information

Maya Lesson 8 Notes - Animated Adjustable Desk Lamp

Maya Lesson 8 Notes - Animated Adjustable Desk Lamp Maya Lesson 8 Notes - Animated Adjustable Desk Lamp To Model the Lamp: 1. Research: Google images - adjustable desk lamp. 2. Print several images of lamps for ideas to model. 3. Make a sketch of the lamp

More information

Kinematics of Machines Prof. A. K. Mallik Department of Mechanical Engineering Indian Institute of Technology, Kanpur. Module 10 Lecture 1

Kinematics of Machines Prof. A. K. Mallik Department of Mechanical Engineering Indian Institute of Technology, Kanpur. Module 10 Lecture 1 Kinematics of Machines Prof. A. K. Mallik Department of Mechanical Engineering Indian Institute of Technology, Kanpur Module 10 Lecture 1 So far, in this course we have discussed planar linkages, which

More information

Chapter 2 Kinematics of Mechanisms

Chapter 2 Kinematics of Mechanisms Chapter Kinematics of Mechanisms.1 Preamble Robot kinematics is the study of the motion (kinematics) of robotic mechanisms. In a kinematic analysis, the position, velocity, and acceleration of all the

More information

This overview summarizes topics described in detail later in this chapter.

This overview summarizes topics described in detail later in this chapter. 20 Application Environment: Robot Space and Motion Overview This overview summarizes topics described in detail later in this chapter. Describing Space A coordinate system is a way to describe the space

More information

sin30 = sin60 = cos30 = cos60 = tan30 = tan60 =

sin30 = sin60 = cos30 = cos60 = tan30 = tan60 = Precalculus Notes Trig-Day 1 x Right Triangle 5 How do we find the hypotenuse? 1 sinθ = cosθ = tanθ = Reciprocals: Hint: Every function pair has a co in it. sinθ = cscθ = sinθ = cscθ = cosθ = secθ = cosθ

More information

2.3 Circular Functions of Real Numbers

2.3 Circular Functions of Real Numbers www.ck12.org Chapter 2. Graphing Trigonometric Functions 2.3 Circular Functions of Real Numbers Learning Objectives Graph the six trigonometric ratios as functions on the Cartesian plane. Identify the

More information

MDP646: ROBOTICS ENGINEERING. Mechanical Design & Production Department Faculty of Engineering Cairo University Egypt. Prof. Said M.

MDP646: ROBOTICS ENGINEERING. Mechanical Design & Production Department Faculty of Engineering Cairo University Egypt. Prof. Said M. MDP646: ROBOTICS ENGINEERING Mechanical Design & Production Department Faculty of Engineering Cairo University Egypt Prof. Said M. Megahed APPENDIX A: PROBLEM SETS AND PROJECTS Problem Set # Due 3 rd week

More information

2. Periodic functions have a repeating pattern called a cycle. Some examples from real-life that have repeating patterns might include:

2. Periodic functions have a repeating pattern called a cycle. Some examples from real-life that have repeating patterns might include: GRADE 2 APPLIED SINUSOIDAL FUNCTIONS CLASS NOTES Introduction. To date we have studied several functions : Function linear General Equation y = mx + b Graph; Diagram Usage; Occurence quadratic y =ax 2

More information

To Measure a Constant Velocity. Enter.

To Measure a Constant Velocity. Enter. To Measure a Constant Velocity Apparatus calculator, black lead, calculator based ranger (cbr, shown), Physics application this text, the use of the program becomes second nature. At the Vernier Software

More information

SYNTHESIS OF PLANAR MECHANISMS FOR PICK AND PLACE TASKS WITH GUIDING LOCATIONS

SYNTHESIS OF PLANAR MECHANISMS FOR PICK AND PLACE TASKS WITH GUIDING LOCATIONS Proceedings of the ASME 2013 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference IDETC/CIE 2013 August 4-7, 2013, Portland, Oregon, USA DETC2013-12021

More information

Graphics and Interaction Transformation geometry and homogeneous coordinates

Graphics and Interaction Transformation geometry and homogeneous coordinates 433-324 Graphics and Interaction Transformation geometry and homogeneous coordinates Department of Computer Science and Software Engineering The Lecture outline Introduction Vectors and matrices Translation

More information

Project 1 : Dead Reckoning and Tracking

Project 1 : Dead Reckoning and Tracking CS3630 Spring 2012 Project 1 : Dead Reckoning and Tracking Group : Wayward Sons Sameer Ansari, David Bernal, Tommy Kazenstein 2/8/2012 Wayward Sons CS3630 Spring 12 Project 1 Page 2 of 12 CS 3630 (Spring

More information

Vector Calculus: Understanding the Cross Product

Vector Calculus: Understanding the Cross Product University of Babylon College of Engineering Mechanical Engineering Dept. Subject : Mathematics III Class : 2 nd year - first semester Date: / 10 / 2016 2016 \ 2017 Vector Calculus: Understanding the Cross

More information

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates Department of Computer Science and Software Engineering The Lecture outline Introduction Vectors and matrices Translation

More information

Section 4.1: Introduction to Trigonometry

Section 4.1: Introduction to Trigonometry Section 4.1: Introduction to Trigonometry Review of Triangles Recall that the sum of all angles in any triangle is 180. Let s look at what this means for a right triangle: A right angle is an angle which

More information

and how to label right triangles:

and how to label right triangles: Grade 9 IGCSE A1: Chapter 6 Trigonometry Items you need at some point in the unit of study: Graph Paper Exercise 2&3: Solving Right Triangles using Trigonometry Trigonometry is a branch of mathematics

More information