Assignment 4 Electrical Engineering Case Study - Robot Kinematics Step 1: Problem Identification and Statement The objective is to design a software to simulate the motion of a multi-degree of freedom...

1 answer below »
The assignment description is written in blue in the Assignment Statement file. Below I will list the C++ topics covered in this course. The code should not contain anything out of the scope of the different programming tools listed below and must follow OBJECT ORIENTED PROGRAMMING (i.e. Classes and Objects in C++).1. Selection2. Loops3. Data files4. Functions5: Arrays6. Pointers7. Object-Oriented Programming


Assignment 4 Electrical Engineering Case Study - Robot Kinematics Step 1: Problem Identification and Statement The objective is to design a software to simulate the motion of a multi-degree of freedom kinematic chains that form the structure of a robotic system. Step 2: Gathering Information and Input and Output Description The Task This assignment involves the design of a software to simulate the motion of a multi-degree of freedom kinematic chains that form the structure of a robotic system. The emphasis on geometry means that the links of the robot are modeled as rigid bodies and its joints are assumed to provide pure rotation or translation. Robot kinematics studies the relationship between the dimensions and connectivity of kinematic chains and the position, velocity and acceleration of each of the links in the robotic system, in order to plan and control movement and to compute actuator forces and torques.The relationship between mass and inertia properties, motion, and the associated forces and torques is studied as part of robot dynamics. Figure 2: (left) Example of a robot chain with three segments, (right) the parameters of a segment. The system has the following components: 1. A segment: A segment is a rigid member connecting two joints. As shown in Figure 1(right), a segment has the following parameters: a starting point (x1 and y1 coordinates), a length, an angle, and an end point (x2 and y2 coordinates). 2. A Robot: A robot is comprised of a chain of segments that are connected via joints. The first segment is called the root as it is connected to the robot base/ground. A robot can have multiple segments, which is commonly known as the degrees of freedom. The end effector of the robot is the end point of the last segment (noted as (x,y) in Figure 1-left). In order to determine the position of the end effector, the position/orientation of all the segments must be determined – which is usually controlled through the angles of the segments. The forward kinematic analysis involves calculating the end effector position for a specific set of angles for the segments. The inverse kinematics analysis involves calculating the angles of all the segments that move the end effector to a particular position. This assignment will focus on the forward kinematics analysis. Background Information on Forward Kinematics Forward kinematics specifies the joint parameters and computes the configuration of the chain. For serial manipulators this is achieved by direct substitution of the joint parameters into the kinematics equations and requires a solution of the set of polynomial constraints to determine the set of possible end-effector locations. According to M. W. Spong’s book on Robot Modeling and Control, “it is customary to establish a fixed coordinate system, called the world or base frame to which all objects including the manipulator are referenced. In this case we establish the base coordinate frame o0x0y0 at the base of the robot, as shown in Figure 1. The coordinates (x, y) of the tool are expressed in this FIgure 1: Coordinate Frames for Two-Link Planar Robot coordinate frame as: in which α1 and α2 are the lengths of the two links, respectively. Also the orientation of the tool frame relative to the base frame is given by the direction cosines of the x2 and y2 axes relative to the x0 and y0 axes, that is, which we may combine into an orientation matrix The 3 equations above are called the forward kinematic equations for this arm.” You will develop three classes: Point to handle the coordinates of a point in 2D space, Segment to store the parameters and associated functions about a specific segment, and Robot to store the information about the chain of segments making up the robot system. The class Point provides storage for a 2D point including the X and Y coordinates. The class should include functions to retrieve/update the coordinates. Appropriate constructor(s) must also be developed. The class Segment provides storage for the segment parameters, including the start point, the end point, the length, and the angle (in radians). The segment class must include a reference to a child segment in order to facilitate the creation of a chain of segments to form the robot system. Note the followings: 1. The constructor function initializes the segment start point, length and angle. A local function must be developed (and called through the constructor) to automatically calculate the coordinates of the end point. The end point data must be updated every time any of the segment data are updated. You may use multiple constructors as needed. 2. The getter/setter functions must be implemented for all the variables. The setEndPoint() function should not be implemented to avoid any discrepencies in the data stored in a Segment object. 3. The printSegmentInfo() function displays the segment information on the output screen. 4. You may implement additional auxiliary functions as needed. The class Robot provides storage for the chain of segments, including the root segment and the number of segments in the chain. Note the followings: 1. The constructor function initializes a robot with no or one root segment. You may use multiple constructors as needed. 2. The Robot class must include functions to add and remove segments from the chain. Adding or removing segments is done at the end effector side (insert or delete segments at the end of the chain). 3. The Robot class must include a function to reset the chain to a default position. The default position is defined as moving all the segments to the positive x-axis with zero angles. 4. The Robot class must include a function to print the current pose of the chain. You may use graphics libraries or asterisks to provide a visual representation of the current pose. 5. The Robot class must include a function to perform the forward kinematics of the chain. The function receives an array of angles corresponding to the segments and returns the end effector position. For example, the first element of the angles array represents the new angle the root segment must be updated to, and so on. 6. You may implement additional auxiliary functions as needed. General Notes: 1. The program must support a robot system with an arbitrary number of segments (no limits must be set for the number of segments). 2. The program has to make sure links length are greater than 0. 3. Feel free to add more classes, data members, and/or functions as deemed appropriate. Assignment 4 - Marking Scheme 1 Detailed Marking Scheme Assignment 4: Robot Kinematics Marking Scheme for the Software Report (100 Marks) Step 1: Problem Identification and Statement The statement should identify and clearly state the problem. The user may have cut and past contents from the assignment description, but the statement should be about the problem and not about how to solve it. /3 Step 2: Gathering Information This step should include information about how to calculate the position of the end effector of a robotics device with a specific number of degrees of freedom. You should provide pope citation for the fundamentals (equations). /5 Input/Output Description Give 2 marks for the I/O diagram or equivalent text description /2 Step 3: Test cases be designed to test the various functions of the software /10 Step 3: Algorithm 6 pts for the Point class 12 pts for the Segment class 12 pts for the Robot class 5 pts for the main() function that will run the simulation Using C++ coding C++ code is absolutely unacceptable in the algorithm deduct marks if C++ coding has been used in any shape or form. We want to get students to focus on logic and be able to express it in either form. /35 Step 4: Code or implementation 4 pts for the Point class 10 pts for the Segment class 10 pts for the Robot class 3 pts for the main() function that will run the simulation 3 pts for arranging the different classes into separate header files. /30 Appropriate comments inside code /5 Step 5: Test and Verification The developed test cases of step 3 must be validated here with snapshots of the working software. /10 Grand Total /100
Answered 7 days AfterNov 28, 2021

Answer To: Assignment 4 Electrical Engineering Case Study - Robot Kinematics Step 1: Problem Identification and...

Kamal answered on Dec 02 2021
116 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here