No Title

22C:161 Introduction to Robotics Spring 1995

Homework 6 - Due Friday, March 31

In this homework assignment, you will implement the (inverse dynamics) algorithm of Chapter 6. The code will be similar to the velocity propagation you did in HW 5 for Chapter 5. Here you start from the base and work outward to calculate link accelerations, then work back inwards to get the joint torques required to produce the commanded joint trajectories.

  1. Implement the Newton-Euler dynamics algorithm of Section 6.5. The routines should be implemented in a form that will work for any robot (not just for the 6-link Puma).
  2. Demonstrate your implementation by printing out (or better, displaying on a graph) the joint torques over time for motions of the PUMA using the MOVE command you implemented in HW4.
NOTE: In case you didn't quite implement the HW4 MOVE command in a way that fits this problem, here's how to go about it: suppose you command the robot to move from some start position (x,y,z, and orientation at current time, ts), to an end position at time te. From inverse kinematics you can get the the joint angles at ts, theta_i_ts, and at te, theta_i_te. To implement the MOVE command you just need to generate a number of configuration intermediate between the starting and ending one, and display them as an animation. We'll assume CONSTANT VELOCITY for this problem (we'll do more realistic move in homework for Chapter 7). Choose some delta-t for you animation step. Then you need to generate configurations for ts + delta_t, ts + 2 * delta_t, etc., up to te. Since we've assumed constant velocity, and you know theta_i_te and theta_i_ts for each i, you can easily compute joint angle increments, delta_theta_i, that will allow you to generate intermediate configuration. Joint angle velocities, clearly, can be computed as theta-dot-i, from (theta_i_te - theta_i_ts)/(te - ts). Finally then, from the joint angles and joint angle velocities at each intermediate point, you can run the dynamics algorithm to determine the joint torques that generate the motion. Note that the dynamics algorithm requires joint accelerations as input, too. Here, given the assumptions above, that's trivial to specify (but left for you to figure out). As you should see in your output, even though the accelerations are simple, the computed torques should be interesting.

class - Jim Cremer
Fri Mar 10 1995