Thursday, April 5, 2012

Radio-Freq Robot so far

So we got a model of our robot in Matlab running using the robotics toolkit. There was a problem with modeling the original robot in Matlab. Specifically, the value assigned to 'a' (a_i) must run along the defined x-axis (x_i). So for the x_4 axis Chris wrote up for the 'DH 6 joint' pdf file, the Matlab robotics toolkit will not model that correctly.

The solution to this problem is simple, use the toolkit's axes definition and re-draw our robotic configuration accordingly. In theory it works the same way as our defined robot except it is configured in a different manner. The Denavit-Hartenberg Parameters for our current robot now:

θ
d
a
α
θ1
0
L1
0
θ2
0
L2
-π/2
θ3
0
0
π/2
θ4
0
L4
π
0
d5
0
0




Here is what it looks like in Matlab (see file RFRobot.m):


Matlab plot of the robot with the DH Parameters provided above.
Note: the first prismatic is not illustrated here because it is not so important.


This is the Matlab output code of RFRobot.m
Figure 2: Matlab output of the link definitions and DH table.
Forward Kinematics is also provided for all theta values zero and d5 = 2.
We definitely need to double and triple check the code and these results. For now, consider what the code provides for the Forward Kinematics as reference only because it could be wrong.

So, here is where we are at and please correct me if I am wrong.

Belaye will deal with the direct kinematics for now. The inverse kinematics in Matlab is a pain to use to say the least, and it'll be a group effort to figure that out. I'm expecting it won't be that bad once we do have the forward kinematics figured out, but we'll see.

Hoi will create a blog about a good set of lengths and thickness to consider for all the links. I'll try my best to be reasonable so that we can consider decent motor sizes, but more importantly for the dynamic equations or force propagation for the robot.

Chris, catch up to speed and give Hoi a call. Me and Belaye think you could do the workspace related stuff. In a little more detail, we probably need to define joint limits to find the reachable workspace (note differences between workspace, reachable workspace, and dexterous workspaces). Blog about it and we'll help you out as best we can.


Please stay in contact with each other and check the blog a couple times throughout the day. When you read about something, I am sure you have an opinion on the material in the blog so any commenting, either an affirmation or a suggestion is helpful.


7 comments:

  1. Looks great, Ill start looking into that stuff and maybe get a jumpstart on the inverse kinematics tomorrow. Ill keep you guys posted.

    ReplyDelete
  2. Also just from looking at it I think our workspace is going to be in the shape of a doughnut / cylinder(with a hole in the center) with rounded edges

    ReplyDelete
  3. Ok I just noticed this. The robot in the MATLAB graph is different than the one I drew up. There are two differences. The first is that there is a missing prismatic joint (the first one) and there joint 4 or 5 needs to be a rotational joint with its z axis along the length of the arm.

    Did you guys decide to change the configuration of the robot? Please let me know so that I can be sure to do the appropriate inverse kinematics and draw the appropriate workspace.

    ReplyDelete
    Replies
    1. Yeah Belaye and I stared at this configuration in Matlab for a good while. We were first trying to figure out a way to change it in Matlab to match your 6DOF drawing, but there doesn't seem to be a simple solution. Instead, Belaye looked at the current configuration and we started talking about it.

      In most ways this robot behaves very similar to the proposed 6DOF, and we didn't think there was anything alarming about it that would come short of completing our task. I mean to get to a certain configuration, the theta angles would be different but that's about it. What do you think Chris?

      And yup, we took out the first prismatic since it wasn't important for our analysis. But if you prefer, we can include it in the Matlab program file easily, and computing the kinematic equations wouldn't be too bad since the transformation matrix of the first prismatic joint is only a translational parameter in the z-direction.

      Delete
  4. We removed the first prismatic joint b/c its not essential to the task.
    About the wrist orientation, Matlab would not let us configure the robot in the way u mentioned, so we made small changes. Hoi and I think it won't make a big difference in the ability to perform the task, maybe just a small difference in the motor torque and what have u.

    ReplyDelete
  5. For an Ideal robot it should behave the same, as in joints that can revolve 360 degrees. But I think with actual joints there are a few orientations that can not be met. But I think for the purpose of our robot it should be fine.

    Also, for the workspace am I attempting to figure it out for the ideal case or should I put limitations on the rotational capabilities of our joints?

    Good job on the MATLAB stuff btw

    ReplyDelete
    Replies
    1. Thanks man. For the workspace, I'd say do both?

      Delete