User Tools

Site Tools


ece4560:lynx6:calibration

This is an old revision of the document!


Lynx 6: Calibration


This module deals with calibration of the manipulator in the straight-up home configuration (basically the manipulator arm points straight up into the air). A straight up home configuration means that this is the zero configuration for the robot. All joint angles are measured from this reference configuration. Calibration will require measuring the link lengths associated to your manipulator, the servo command limits for each of the joints, and the angular limits of the manipulator. The limits imposed may actually be less than the full range of motion of the servo motors. The sub-problems below lead you through the procedure. 1. Measure the lengths of all the links. Make sure to include

  the wooden base in your measurements for vertical height as appropriate.
  Try to be as accurate as possible since mistakes here will impact your
  ability to do useful things with the manipulator.
  There is a member variable in the {\tt lynx6} class object for
  specifying these variables.  They've been set based on my setup,
  but may be different for yours.  The numbers in the list are
  the base to should height, the length of the first link,
  the length of the second link, then the link to middle of gripper
  length, and the additional length to gripper tip.

2. Dtermine what are the proper servo command limits for your

  particular manipulator.  The manipulator code for interfacing should be
  uploaded to {\tt t-square} as will a file describing in more detail
  what this problem is about.  Please read the document twice and be
  careful, they break easily.

3. The last phase is to associate angles to the servo commands.

  Using the straight-up reference configuration as the zero
  configuration for the joint-angles, determine the angular
  limits associated to the joints with respect to that reference
  configuration as best as you can.  You WILL need a protractor.
  Although the robot may be able to go to bigger angles, try to round
  the joint-angle workspace to the nearest 30, 45, 90, or 180 degrees.
  For example, if you measure that it can go -37 degrees to 48 degrees,
  then make the joint angle limits $[-30, 45]$ in order to have nice
  clean limits.  You'll need to figure out what servo commands
  correspond to those particular angle limits.

Save it into your own file whose default is called {\tt lynx6parms.mat} for use with the {\tt lynx6} class file. Turn in the values of the structure in the {\tt lynx6parm} matlab file as well as your link lengths.

To make sure that all the manipulators are calibrated, the demo will involve a verification exercise. To that end, I (or the TA) will run some code on your manipulator to do the following: \begin{description}

\item[(a)]  Invoke {\tt setArm} with all zeros to verify that your
  straight up really is straight up;
\item[(b)] Invoke {\tt setArm} with the proper values to make it go
  straight out;
\item[(c)] Call a for loop that will go to 5 random configurations, to
  be judged (subjectively) for correctness; then finally
\item[(d)] Invoke the forward kinematics routine, that you will have
  coded, for a specific set of joint angles and go to the desired
  joint angles.  You will be graded based on how close your
  manipulator is to the predicted forward kinematics.  This problem
  part requires for you to code up the forward kinematics function in
  {\tt lynx6.m}.  The function should return an element of the
  {\tt SE3} class.

\end{description} I will most likely post some code to do the main loop that you should demo to I or the TA to test for correct calibration. It is similar to the {\tt piktul} code that was run and includes the predicted opening and closing widths of the gripper. %What you will bring to the table is the {\tt lynx6.m} file that is %specific to your manipulator. %You should also code up the %forward kinematics routine within that m-file. If you wonder what the base coordinate frame should be, just look at Figure \figref{man_lynx6_up}. That is what I, and therefore you, will be using. Code approriately.


Back Main

ece4560/lynx6/calibration.1508704966.txt.gz · Last modified: 2024/08/20 21:38 (external edit)