X,y,z new coordinate calculation for joint rotations in CoppeliaSimEdu

  • #1
dis
2
0
TL;DR Summary
I have problems with kinematic- > Rot(z,a1)Rot(z,a2)Trans(0,0,d) a1 and a2 angles d projection. My function was x = (d3+const)*math.cos(a1)*math.sin(a2) y = (d3*const)*math.const(a1)*math.sin(a2) but it not working.
I have created a 3D manipulator joint in CoppeliaSimEdu, I have the following joint rotation along the z axis, a second rotation joint raised in height and shifted along the x axis and further along the x axis is a directions joint. Or Rot(z,a1)Rot(z,a2)Trans(0,0,d) a1 and a2 angles d projection. But I have added a Dummy object to CoppeliaSim with which I set the x,y,z coordinates according to the kinematics calculations. But as far as I understand, I have a problem with the calculation of x and y coordinates, because the z coordinate is as it should be.

By connecting all the joints I got the matrix: [[cos(a1+a2), -sin(a1+a2),0,0],[sin(a2-a1),cos(a1+a2),0,0],[0,0,1,d ],[0,0,0,1]]

thus thinking that x = cos(a1+a2) + sin(a2-a1) y = -sin(a1+a2)+cos(a1+a2) z = d but the Dummy object doesn't move as it should, so I believe my x,y coordinates are wrong. How could I fix it?
 
Engineering news on Phys.org
  • #2
:welcome:

I am not familiar with CoppeliaSimEdu, but for some interpretations of your initial description your 4x4 matrix seems correct except for ##\sin(a2-a1)## which should be ##\sin(a1+a2)##. Note that two sequential rotations around any axis is equivalent to a single rotation about the exact same axis with the sum of the two angles.

I am not sure what you are saying next. Is (1, 1, 1) the position of your dummy object? And you expect it to shift around when you change your two angles and the offset? If so, it sounds like its more an issue with use of the program you use, so perhaps you can find an example that works and then try transform it to be applicable to your problem?
 
  • Like
Likes dis
  • #3
Thanks. Found answer.
x = l1*math.cos(teta1)+l2*math.cos(teta1 + teta2)
y = l1*math.sin(teta1)+l2*math.sin(teta1+ teta2)

where l1 and l2 are constant
 

FAQ: X,y,z new coordinate calculation for joint rotations in CoppeliaSimEdu

What is the purpose of recalculating X, Y, Z coordinates for joint rotations in CoppeliaSimEdu?

The purpose of recalculating X, Y, Z coordinates for joint rotations in CoppeliaSimEdu is to accurately determine the new positions of objects or end-effectors after a joint has been rotated. This is essential for tasks like robotic arm manipulation, where precise positioning is critical for successful operation.

How can I access the current joint angles in CoppeliaSimEdu?

You can access the current joint angles in CoppeliaSimEdu using the API function sim.getJointPosition. This function takes the handle of the joint as an argument and returns the current angle or position of the joint.

What mathematical methods are typically used to calculate new coordinates after joint rotations?

The most common mathematical methods for calculating new coordinates after joint rotations include using rotation matrices and homogeneous transformation matrices. These methods allow you to apply the rotation to the coordinates of points in 3D space, resulting in the new positions.

Can I use built-in functions in CoppeliaSimEdu to perform coordinate transformations?

Yes, CoppeliaSimEdu provides built-in functions such as sim.rotateVector and sim.transformVector that can be used to perform coordinate transformations. These functions simplify the process of applying rotations and translations to vectors representing points in space.

How do I handle multiple joint rotations affecting a single end-effector in CoppeliaSimEdu?

When multiple joint rotations affect a single end-effector, you need to apply the transformations sequentially, starting from the base joint to the end-effector. This involves multiplying the transformation matrices of each joint in the correct order to obtain the final position and orientation of the end-effector.

Back
Top