# 16: 08 In-Class Assignment - The Kinematics of Robotics

16: 08 In-Class Assignment - The Kinematics of Robotics

## 16: 08 In-Class Assignment - The Kinematics of Robotics

Assignment 0: Getting started. Assigned on Monday, 9/12 due on Tuesday, 9/13 by 11:55 pm.

Reading: Read Chapters 1 and 2 in Mataric.

Lab: Introduction to LEGO Programming. Assigned on Wednesday, 9/14. Nothing to turn in. Should be completed before class on Friday, 9/16.

Reading: Read in Bagnall chapter 1 (skip pages 31-45), chapter 2 (skip pages 50-65 and 72-81), chapter 3, and chapter 4. It isn't my expectation that you will have absorbed all of this material in one reading, especially API details and that sort of thing. But I want you to know what material is here so that you can refer to it later if necessary.

Assignment 1: Teleoperation. Assigned on Wednesday, 9/14. Java code for Parts 1 and 2 due in hand-in folder on Courses by Monday, 9/19 by 11:55 pm. Java code for Part 3 due in hand-in folder by Wednesday, 9/21 at 11:55 pm. Find me sometime within a week to do a demo.

Reading: Read The Art of LEGO Design, which gives you great detailed information on LEGO constuction. Skim Bagnall chapter 5, which is much of the same information. Also read chapters 3, 4, and 5 in Mataric.

Reading: Look at this Introduction to Homogeneous Transformations and Robot Kinematics. I am basing our in-class discussions fairly heavily on this material, so it is a worthwhile reference.

Assignment 2: Scientific Measurement. Assigned on Wednesday, 9/21. Java code due in hand-in folder on Courses by Wednesday, 9/28 by 11:55 pm. Find me sometime within a week to do a demo.

Reading: Read chapters 7, 8, and 9 in Mataric.

Assignment 3: Manipulation. Assigned on Wednesday, 9/28. Due on paper in class on Monday, 10/3. Make sure that your paper submission, whether it be handwritten or printed, whether it be manually generated or partially computer generated, is well-organized and easy to follow.

Reading: Read chapters 10, 11, 12, and 13 in Mataric.

Assignment 4: PID Controller. Assigned on Monday, 10/3. Java code due in hand-in folder on Courses, by Monday, 10/10 by 11:55 pm. Find me sometime within a week to do a demo.

Reading: Read chapters 14, 15, 16, and 17 in Mataric.

Assignment 5: Exploration. Assigned on Friday, 10/14. Java code due in hand-in folder on Courses, by Sunday, 10/23 by 11:55 pm. Demo in class on Monday, 10/24.

Assignment 6: Search and Retrieve. Assigned on Monday, 10/24. Java code due in hand-in folder on Courses, by Sunday, 10/30 by 11:55 pm. Demo in class on Monday, 10/31.

Final project proposal presentations: in class on Monday, 11/7.

Battlebots. Java code due in hand-in folder before in-class demo in Wednesday, 11/9.

Final project demonstrations: in class on Wednesday, 11/16.

Reading: Learning to Coordinate Behaviors, by Pattie Maes and Rodney A. Brooks

## Instructor

Khatib's current research is in human-centered robotics, human-friendly robot design, dynamic simulations, and haptic interactions. His exploration in this research ranges from the autonomous ability of a robot to cooperate with a human to the haptic interaction of a user with an animated character or a surgical instrument. His research in human-centered robotics builds on a large body of studies he pursued over the past 25 years and published in over 200 contributions in the robotics field.

Prof. Khatib was the Program Chair of ICRA2000 (San Francisco) and Editor of The Robotics Review'' (MIT Press). He has served as the Director of the Stanford Computer Forum, an industry affiliate program. He is currently the President of the International Foundation of Robotics Research, IFRR, and Editor of STAR, Springer Tracts in Advanced Robotics. Prof. Khatib is IEEE fellow, Distinguished Lecturer of IEEE, and recipient of the JARA Award.

## Actuating Morphing Linkages

Target Profiles for Morphing Linkage

Lawrence Funke and Prof. James Schmiedeler of the University of Notre Dame Locomotion and Biomechanics Lab show that the movement of a morphing linkage through its target profiles can be improved by coordinating actuation of the sub-chains. This was presented at the Mechanisms and Robotics Conference which was part of the 2015 ASME Design Engineering Technical Conferences, August 2-5, in Boston, MA. The video below shows the improvement obtained by moving from 1 to 3 coordinated actuators.

## 16: 08 In-Class Assignment - The Kinematics of Robotics

Watch these video lectures:

(a) Robotics Bangla 11 | Vector and Kinematics in Robotics | Tajim

(b) Robotics Bangla 12 | 2-D Transformation | Tajim

(c) Robotics Bangla 13 | 3-D Transformation | Tajim

1. What is your understanding of Using Vector in Robotics from (a)? Why we use differentiation in Kinematics? What is your understanding of Using Kinematics in Robotics from (a)? What you have learned about Velocity, Acceleration, Jerk, Joint space, Dot Products and Cross Products from (a)?

3. Which Laws of Kinematics are explained in (a)? What is your Understanding about 2D Transformation, 2D Rotation, 2D Translation, 2D Scaling, 2D Reflection, 2D Shear and 2D Transformation in robotics from (b)? Explain Each one with an Example.

4. What is your Understanding about 3D Transformation, 3D Rotation, 3D Translation, 3D Scaling, 3D Reflection, 3D Shear, 3D Transformation in robotics, 3D modeling and 3D viewing from (c)? Explain Each one with an Example.

N.B. Plagiarism will be checked automatically.

The attendance session is given in BCL. Give your attendance and then participate in the Exam. After the exam no attendance will be taken.

At first, read the questions and instructions clearly and multiple times. Then watch the mentioned lectures multiple times. Then write the answers and submit them. You can submit this only once. So, be careful. If you Write by hand make only one PDF File of full exam and upload it in BLC.

## Instructor

Khatib's current research is in human-centered robotics, human-friendly robot design, dynamic simulations, and haptic interactions. His exploration in this research ranges from the autonomous ability of a robot to cooperate with a human to the haptic interaction of a user with an animated character or a surgical instrument. His research in human-centered robotics builds on a large body of studies he pursued over the past 25 years and published in over 200 contributions in the robotics field.

Prof. Khatib was the Program Chair of ICRA2000 (San Francisco) and Editor of The Robotics Review'' (MIT Press). He has served as the Director of the Stanford Computer Forum, an industry affiliate program. He is currently the President of the International Foundation of Robotics Research, IFRR, and Editor of STAR, Springer Tracts in Advanced Robotics. Prof. Khatib is IEEE fellow, Distinguished Lecturer of IEEE, and recipient of the JARA Award.

## Inverse Kinematics

The Inverse Kinematics block uses an inverse kinematic (IK) solver to calculate joint configurations for a desired end-effector pose based on a specified rigid body tree model. Create a rigid body tree model for your robot using the rigidBodyTree class. The rigid body tree model defines all the joint constraints that the solver enforces.

Specify the RigidBodyTree parameter and the desired end effector inside the block mask. You can also tune the algorithm parameters in the Solver Parameters tab.

Input the desired end-effector Pose, the Weights on pose tolerance, and an InitialGuess for the joint configuration. The solver outputs a robot configuration, Config, that satisfies the end-effector pose within the tolerances specified in the Solver Parameters tab.

• Etienne Burdet, David W. Franklin, and Theodore E. Milner, Human Robotics: Neuromechanics and Motor Control, MIT Press, 2013
• Reza Shadmehr and Steven P. Wise, The Computational Neurobiology of Reaching and Pointing: A Foundation for Motor Learning, MIT Press, 2004
• John J. Craig , Introduction to Robotics: Mechanics and Control (3rd Edition), Pearson, 2004

Students missing three or more lectures will lose all the 3% for attendance

Students are required to actively ask and answer questions from the instructor and from each other in class, and answer each other’s questions on the Piazza forum. To avoid miscalculation, student will submit a note with the listed summary of what questions they have asked and answered by the end of the lecture, and submit a one-page summary of the discussion they have participated in on the Piazza forum.

## Converting chassis speeds to module states¶

The toSwerveModuleStates(ChassisSpeeds speeds) (Java) / ToSwerveModuleStates(ChassisSpeeds speeds) (C++) method should be used to convert a ChassisSpeeds object to a an array of SwerveModuleState objects. This is useful in situations where you have to convert a forward velocity, sideways velocity, and an angular velocity into individual module states.

The elements in the array that is returned by this method are the same order in which the kinematics object was constructed. For example, if the kinematics object was constructed with the front left module location, front right module location, back left module location, and the back right module location in that order, the elements in the array would be the front left module state, front right module state, back left module state, and back right module state in that order.

### Module angle optimization¶

The SwerveModuleState class contains a static optimize() (Java) / Optimize() (C++) method that is used to “optimize” the speed and angle setpoint of a given SwerveModuleState to minimize the change in heading. For example, if the angular setpoint of a certain module from inverse kinematics is 90 degrees, but your current angle is -89 degrees, this method will automatically negate the speed of the module setpoint and make the angular setpoint -90 degrees to reduce the distance the module has to travel.

This method takes two parameters: the desired state (usually from the toSwerveModuleStates method) and the current angle. It will return the new optimized state which you can use as the setpoint in your feedback control loop.

## Project

The project is to write and present a grant proposal for a new medical robot or medical robotics technology. Student teams will collect preliminary data or perform design/simulations to support the proposal. This project is designed to give students experience with the initiation of a new research project in the field of medical robotics. This will develop skills such as: describing motivation and significance, performing a literature review, developing supporting evidence, data presentation, and oral presentation. The proposal will be in the National Institutes of Health R21 format.