Published using Google Docs
Humanoid Robotics Assignment - Kinematics
Updated automatically every 5 minutes

Humanoid Robotics - Forward and Inverse Kinematics

Release Date: Fri., 19th Sept. 2014

Due Date: Tue., 30th Sept. 2014 14:00

Demonstration Thu., 2nd Oct. 2014 14:00

Content

The goal of this assignment is to develop and implement solutions to the forward and inverse kinematics problem for a humanoid robot. Base your implementation on either the DARwIn-OP or our new teen sized humanoid robotics platforms.

You need to model the individual kinematic chains of the robot: left leg, right lef, left arm, right arm, and head.

You should use python3 and matplotlib to implement your solution.

Add a routine to your program which converts angles into ticks of the servo motor.

Forward Kinematics

The first part of this assignment is the implementation of the forward kinematics. Measure the necessary dimensions of your robot and calculate the necessary transformation matrices using the Denavit Hartenberg convention.

Implement a program that allows you to specify servo motor ticks for any of the kinematic chains and then calculate the position of the end effector for this kinematic chain.

Show a figure of the robot with the given joint angles.

Inverse Kinematics

Next, implement a solution to the inverse kinematics problem for all kinematic chains of the robot.

Implement a program that given a target location of the end effector of a kinematic chain prints out the servo motor ticks that will result in the end effector being at the target location.

Other Sources

If you use code from other sources, then you must say so clearly in your assignment README file.

Submission

This assignment must be done individually.

Your solution must run under a current version of Anaconda.

To hand in your assignment:

  1. create a directory to hold all of your data. The directory name should be 7950_a<number>_<login_name>, where <login_name> is your myumanitoba email prefix and <number> is the number of the assignment,
  2. inside of the directory 7950_a<number>_<login_name>, create a directory source
  3. put the source code, which may contain of multiple files, for your assignment’s solution into the directory source.
  4. Your program must compile by just running the command make in the source directory
  5. place a copy of the honesty declaration (modified to include your own name and student number) in the 7950_a<number>_<login_name> directory. Make sure that you understand that doing so and handing it in from your account both securely identifies you and holds you to the responsibilities of a paper honesty declaration.
  6. write a README file to explain anything you feel is necessary or important about your submission. This may include special features/bugs of your program. Describe what parts of the assignment you implemented. It is in your interest to simplify the job of the marker.
  7. once you're happy that you have everything and it all works the way it should, move to the parent of the 7950_a<number>_<login_name> directory (i.e. make sure you can see the name of the 4550_a<number>_<login_name> directory in the list of files if you do an ls command).
  8. create a compressed tar file for this directory and email the compressed file to the marker’s email.

 

If you change your mind about what is handed in or think you've made a mistake, you can enter the handin command as often as you want, each new handin will erase the old. Remember there is a hard deadline on the due date, at which point the handin system will be disabled.

When marking your assignments, the marker will get a copy of everything you placed in the directory.

You will get an email back to the cc account you used to do the handin after the marker is finished. Please ensure the mail on this account is not forwarded elsewhere.

On the demo date shown at the top of this assignment, you will also demonstrate your assignment to the marker.