Ask your own question, for FREE!
GT ECE 4560 - Intro to Automation & Robotics 7 Online
OpenStudy (anonymous):

In taking notes, when Dr. Vela explained the SE(3) and the se(3) a formula for d was given. I did not get that formula. Can you help?

OpenStudy (anonymous):

For #1 Hw9, I am given gi and gf. Though this is SE(3), do I still find gi^-1 and find g=gf*gi^-1 then follow the instructions from lecture about \[\xi = \ln g \]

OpenStudy (anonymous):

Yes there is no difference between homogeneous coordinates in SE2 and SE3. I think the formula for the ln is different but that's about it. I'm not sure what you mean by your first question.

OpenStudy (anonymous):

I asked others in class about my first question. I have solved that problem I think.

OpenStudy (anonymous):

Ok cool.

OpenStudy (anonymous):

Tau is not given in problem #1 so I assume tau = 1.

OpenStudy (anonymous):

The g of g = gf * gi^-1 has the R and d I will use to find \[\xi \]

OpenStudy (anonymous):

Yes

OpenStudy (anonymous):

In SE(2) d = (-1/w)(1-R)Jv in SE(3) d = ?

OpenStudy (anonymous):

Is OpenStudy about to go down?

OpenStudy (anonymous):

Which d are you referring to? In the ln formula?

OpenStudy (anonymous):

Never mind, I found what I was looking for in my notes.

OpenStudy (anonymous):

I have \[g = \left[\begin{matrix}R & d \\ 0 & 1\end{matrix}\right] \] what is \[\omega \]

OpenStudy (anonymous):

I still don't know what formula you're looking at.

OpenStudy (anonymous):

Is \[\omega \] just another way to say \[\theta \]

OpenStudy (anonymous):

No \[\omega=\theta'\]

OpenStudy (anonymous):

I found g using gf *gi^-1, then I found gf using the g I just found times \[e^{\xi \tau} \] but I did not get gf.

OpenStudy (anonymous):

\[g_f = g_i*e^{\xi*\tau}\]

OpenStudy (anonymous):

When I found g using g = gi^-1 * gf then when I \[gf = gi * e ^{\xi \tau} \] it matched the gf given

OpenStudy (anonymous):

So that's right that's exactly what the problem asks for right?

OpenStudy (anonymous):

For #2, where should the scara_r2.m file be placed? Should I put it in the @SE2 or @SE3 folders out outside of those folders?

OpenStudy (anonymous):

It should be outside. Only methods of class SE2 or SE3 should go in those folders.

OpenStudy (anonymous):

Will I be taking the scara_r2.m code and creating a planar_r3.m file from it?

OpenStudy (anonymous):

Yes

OpenStudy (anonymous):

What do I change in the code and why?

OpenStudy (anonymous):

In the code he calculates the x position, y position, and theta for a 2 link manipulator. You should modify it to calculate x,y,theta for a 3 link manipulator.

OpenStudy (anonymous):

alpha1 moves from -90 to 90, and alpha2 moves from -180 to 180. why do they not move in a complete circle and will aplpha3 move from -180 to 180?

OpenStudy (anonymous):

I think the limits for the alphas are given in problem 3. What do you mean by why do they not move in a complete circle?

OpenStudy (anonymous):

I am thinking of a joint with a 360 swivel for max response

OpenStudy (anonymous):

I alter the code for a 3 joint input and the plot just gets thicker and denser with points. I do not know if I am heading in the right direction.

OpenStudy (anonymous):

Ha well maybe ideally all joints would be able to go through 360 degrees, but the ones you are given do not. For instance our arms do not. What did you modify in the code?

OpenStudy (anonymous):

I added l3 to the function, alpha3 goes from -90 to 90 (based off of problem #3), an alpha3Cnt to increase the matrix size, a for loop with alpha3(kk), an alpha3Cnt to the x, y, theta in the mesh section,

OpenStudy (anonymous):

Ok but what about the calculation for x,y,theta?

OpenStudy (anonymous):

the heart of the for loop x(ll) = l1*cos(alpha1(ii))+l2*cos(alpha1(ii)+alpha2(jj)) + l3*cos(alpha1(ii)+alpha2(jj)+alpha3(kk)); y(ll) = l1*sin(alpha1(ii))+l2*sin(alpha1(ii)+alpha2(jj)) + l3*sin(alpha1(ii)+alpha2(jj)+alpha3(kk)); theta(ll) = alpha1(ii)+alpha2(jj)+alpha3(kk);

OpenStudy (anonymous):

Ok seems right to me.

OpenStudy (anonymous):

for the planar part, the limits of the dextrous workspace are not clear. I think the limits are; lower l1 - l2 + l3 upper l1 + l2 - l3

OpenStudy (anonymous):

Yeah I think that's right.

OpenStudy (anonymous):

I do not need all the code found in scara_r2.m to plot two circles with a radius of the lower and upper limits.

OpenStudy (anonymous):

Yeah that's true but be careful they may not actually be circles. Since the joints cannot rotate 360 degree.

OpenStudy (anonymous):

I am stuck on my angle of roataion for the dextrous workspace I try -90 to 90: I get 1/2 circle that looks 90 degrees rotated from the reachable workspace I try -180 to 180: I get 1 full circle

OpenStudy (anonymous):

You already have a loop that goes through all the angles and calculates x and y positions. Now you just need to add some code that keeps track of all those positions that are within the proper radius (which you said earlier).

OpenStudy (anonymous):

Will the dextrous workspace arc across the reachable workspace or will it create a spiral band overlaping the reachable workspace?

OpenStudy (anonymous):

I would think it would be an arc since the min and max radius are constant.

OpenStudy (anonymous):

I am having no luck trying to work this out.

OpenStudy (anonymous):

x(ll) and y(ll) form a hypotenuse and when this hypotenuse is bigger than lower limit and less than upper limit, it falls within the dextrous workspace. I can not get this to work in matlab

OpenStudy (anonymous):

x(ii) and y(ii)

OpenStudy (anonymous):

Well your reasoning seems right. I would make an 'if' statement to that effect and a new index such that when the conditions are true, xdext(index) = x(ll) ydext(index) = y(ll) and index++. This way you only increment the dexterous index when you get dexterous point.

OpenStudy (anonymous):

I need to do this when x(ii) and y(ii) are being calculated. I will imbed a new index inside the body of an if loop?

OpenStudy (anonymous):

Yes. By the way be careful it's x(ll) and y(ll) you want not ii. ii is just the index for alpha1

OpenStudy (anonymous):

function SCARA_EX1(l1, l2, l3) alpha1 = (-90:10:90) * pi()/180; alpha2 = (-180:10:180) * pi()/180; alpha3 = (-90:10:90) * pi()/180; alpha1Cnt = numel(alpha1); alpha2Cnt = numel(alpha2); alpha3Cnt = numel(alpha3); total = alpha1Cnt*alpha2Cnt+alpha3Cnt; x = zeros(1,total); y = zeros(1,total); theta = zeros(1,total); ll = 1; i = 1; l4 = l1 - l2 + l3; % lower limit l5 = l1 + l2 - l3; % upper limit for ii=1:alpha1Cnt for jj=1:alpha2Cnt for kk=1:alpha3Cnt x(ll) = l1*cos(alpha1(ii))+l2*cos(alpha1(ii)+alpha2(jj)) + l3*cos(alpha1(ii)+alpha2(jj)+alpha3(kk)); y(ll) = l1*sin(alpha1(ii))+l2*sin(alpha1(ii)+alpha2(jj)) + l3*sin(alpha1(ii)+alpha2(jj)+alpha3(kk)); theta(ll) = alpha1(ii)+alpha2(jj)+alpha3(kk); dextx = []; dexty = []; if l4 <= sqrt(x(ll)^2 + y(ll)^2) <= l5 dextx(i) = x(ll); dexty(i) = y(ll); end i = i + 1; ll = ll+1; end end end

OpenStudy (anonymous):

I have figured #2 out. Is there anything to turn in to show for #2 or was it just to get the two files working and move on to #3? Do we hand in anything for #2?

OpenStudy (anonymous):

How do you start #3? Alpha2 is perpendicular to alpha1 and alpha3.

OpenStudy (anonymous):

The notes have an example of #3 in 2 places. The examples are identical but the calculation are far far different. I do not know which one to use?

OpenStudy (anonymous):

For #2, turn in your plots of the reachable, complete, and dexterous workspaces. The easiest way to do #3 is probably a kinematic chain. You should construct gs that go joint to joint and then multiply them together to get the end effector configuration. There should be some examples of that. You just have to think about what the R and d for each g should look like.

OpenStudy (anonymous):

In #3, in the chain multiplication I have 4 4x4 matrices. Instead of the methods of finding R and d (R = R1*R2*R3*R4 and d = d1 + R1d2 +R1R2d3 + R1R2R3d4), would I get the correct answer for R and d if I multiplied the matrices together? I tried it and got the same values but this might be a special case. I mean in general.

OpenStudy (anonymous):

For #4, the griper at the end of the manipulator opens and closes. Is this a rotation or translation? I can make more of an argument for it being a translation than a rotation. If it is a rotation, should I write the R, \[R _{x}(\alpha _{5})\] or \[R _{z}(\alpha _{5})\] If it is a translation, how do I write that as homogeneous?

OpenStudy (anonymous):

I did #3 the same way I am doing #4, the figure has a rotation of \[\alpha _{1}\] on the z axis. The 1st joint is at a height of \[l _{0}\] where it rotates \[\alpha _{2}\] so I have \[g _{e}(\alpha) = g _{1}(\alpha _{1})g _{2}(\alpha _{2}) ...\] \[g _{1}(\alpha _{1}) = \left[\begin{matrix}R _{z}(\alpha _{1}) & \left(\begin{matrix}0 \\ 0 \\ 0\end{matrix}\right) \\ 0 & 1\end{matrix}\right]\] \[g _{2}(\alpha _{2}) = \left[\begin{matrix}R _{x}(\alpha _{2}) & \left(\begin{matrix}0 \\ 0 \\ l _{0}\end{matrix}\right) \\ 0 & 1\end{matrix}\right]\] is this correct?

OpenStudy (anonymous):

For #3 you can just multiply the matrices together. You will get a ge which looks like \[\left[\begin{matrix}R_e & d_e \\ 0 & 1\end{matrix}\right]\]

OpenStudy (anonymous):

The gripper motion is not used to calculate the final configuration. Only the position and orientation of the gripper.

OpenStudy (anonymous):

When you set up your Gs for 3 and 4, you have to be careful. You want to make sure you perform the rotation first if the rotation will affect how to d is represented. So for this first link, you are rotating about z and going up by z. In this case rotation doesn't affect displacement. However, at the second joint (of #4), You are rotating about x and then displacing along z. In this case the rotation affects the displacement so it should be done for. Thus g2 should only be Rx(alpha2) and no displacement. g3 should be Rx(alpha3) and d of [0;0;l1]

OpenStudy (anonymous):

Should be done first*

OpenStudy (anonymous):

Any rotation will effect the value of d. I do not understand how to determine the difference between #3 and #4. For #3 and #4; alpha1 rotates about the z axis. The distance l0 should not be a factor in the calculation of g1(alpha1). g1(alpha1 should be a pure rotation. Now, I am thinking that l0 has taken into account. But only as a height therefore \[g _{1'}(\alpha _{1'}) = \left[\begin{matrix} U & \left(\begin{matrix}0 \\ 0 \\ l _{0}\end{matrix}\right) \\ 0 & 1\end{matrix}\right]\] Where U is the unit matrix

OpenStudy (anonymous):

No any rotation will not affect the value of d. Imagine a frame that you're rotating about the z. And after the rotation you move up along z. Would d be different before and after the rotation?

OpenStudy (anonymous):

No. Not with the simple situation where you move along the z axis.

OpenStudy (anonymous):

Well that's exactly the situation in #3 and #4 and it's common in manipulators. It may be simple but it's common.

OpenStudy (anonymous):

So the rotaion about the z axis \[\alpha _{1}\]is not part of the forward kinematic chain?

OpenStudy (anonymous):

It is. All I was saying was that g(alpha1) can include l0. \[g(\alpha_1) = \left[\begin{matrix}R_z(\alpha_1) & \left(\begin{matrix}0 \\ 0\\l_0\end{matrix}\right) \\ 0 & 1\end{matrix}\right]\]

OpenStudy (anonymous):

For #3 and #4 I did the following \[g(\alpha _{1}) = \left[\begin{matrix}R _{z}(\alpha _{1}) & \left(\begin{matrix}0 \\ 0 \\ 0\end{matrix}\right) \\ 0 & 1 \end{matrix}\right]\] \[g _{2}(\alpha _{2}) = \left[\begin{matrix}R _{x} & \left(\begin{matrix}0 \\ 0 \\ l _{0}\end{matrix}\right) \\ 0 & 1\end{matrix}\right]\]

OpenStudy (anonymous):

I took it that \[l _{0}\] did not come into play until \[\alpha _{2}\]. I thought this was the only way.

OpenStudy (anonymous):

Ok that would work also because \[R_z(\alpha_1)*\left(\begin{matrix}0 \\ 0\\ l_0\end{matrix}\right) = \left(\begin{matrix}0 \\ 0 \\ l0\end{matrix}\right)\]

OpenStudy (anonymous):

Ok. on #4, I have a length \[l _{4}\]. I think this length is so small that it is the length of the fingers on the manipulator. This would make \[l _{3}\] the distance between the last joint and the fingers. This is what is confusing to me. The last joint is at the base of the fingers.

OpenStudy (anonymous):

The diagram in the homework is not drawn to scale. In your case, the l3 in the diagram would be your l3+l4.

OpenStudy (anonymous):

Oh maybe what is causing the confusion is that in the homework the last link and the gripper are shown as one link. This is a fine representation because they rotate about different axes. So even though they are physically different joints(it's hard to make 1 joint rotate about 2 axes), you can think of them as 1 joint.

OpenStudy (anonymous):

\[\alpha _{4}\] rotates about the x axis. What axis does \[\alpha _{5}\] rotate about? Is there something for the opening and closing of the fingers?

OpenStudy (anonymous):

The opening and closing of the fingers does not affect the forward kinematics at all. alpha5 rotates about the z as shown in the figure.

OpenStudy (anonymous):

I think I have it but please confirm \[g _{1}(\alpha _{1})\] gets \[d = \left(\begin{matrix}0 \\ 0 \\ 0\end{matrix}\right)\] \[g _{2}\] gets \[d = \left(\begin{matrix}0 \\ 0 \\ l _{0}\end{matrix}\right)\] \[g _{3}\] gets \[d = \left(\begin{matrix}0 \\ 0 \\ l _{1}\end{matrix}\right)\] \[g _{4}\] gets \[d = \left(\begin{matrix}0 \\ 0 \\ l _{2}\end{matrix}\right)\] and \[g _{5}\] gets \[d = \left(\begin{matrix}0 \\ 0 \\ 0\end{matrix}\right)\]

OpenStudy (anonymous):

What about l3?

OpenStudy (anonymous):

\[g _{5}\] gets \[d = \left(\begin{matrix}0 \\ 0 \\ l _{3} + l _{4}\end{matrix}\right)\]

OpenStudy (anonymous):

Yes that should give you the right answer.

OpenStudy (anonymous):

Thanks

OpenStudy (anonymous):

Yep

OpenStudy (anonymous):

for #4, to find \[d _{e}(\alpha)\] I will need angles. I do not have any angle values. If I find it symbolically, I will have a very very very long equation. \[d _{e}(\alpha) = d _{1} + R _{1}d _{2} + R _{1}R _{2}d _{3} + R _{1}R _{2}R _{3}d _{4} + R _{1}R _{2}R _{3}R _{4}d _{5} + R _{1}R _{2}R _{3}R _{4}R _{5}d _{6}\] where the R's are 3x3 matrices with alphas.

OpenStudy (anonymous):

You can just leave them as Rs just specify if it's Rx, Ry, or Rz

OpenStudy (anonymous):

For #5, does the setup Test code need to be in a particular folder to work?

OpenStudy (anonymous):

it should be in the same folder as lynx6 i think

OpenStudy (anonymous):

For #5, is the gripper suppose to open while it is moving into position or open after it is in position?

OpenStudy (anonymous):

According to the problem, it should go to your desired position, wait a bit, then open and close the gripper.

OpenStudy (anonymous):

We can get it to move into a 3rd position but the gripper opens and closes as it moves into position the closes when it move to sleep. How do we get it to do what we want?

OpenStudy (anonymous):

You really don't need to worry about that. As long as it goes to your home position, sleep position, and desired position properly you've done your job.

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!