7

I think that the main issue is that you're trying to read your rotation matrices from left to right. The sign changes seem random, but actually cycle in an ordinary way. Below follows a more elaborate explanation with some more background information. Let's start with the question: A) Why do minuses appear at all? Followed by: B) Why do minuses appear ...


5

Euler angles are not always consistently defined as ZYZ. But this convention is common in robotics because many six-axis robotic manipulators have their fourth axis as a rotation about the forearm, then the fifth is a pitch about the wrist center, and then a final rotation along the Z axis of the end effector. It maps most closely to the physical devices.


4

Remember that the columns of a rotation matrix are simply unit vectors indicating where each axis points. Lets say your end-effector is at $p_e = (x_e, y_e, z_e)$, and the center of the circle is at $p_o = (x_o, y_o, z_o)$. You didn't fully answer my comment about your end-effector axes, so I will assume you want $z_e$ pointed at the object. Here are the ...


4

You need enough torque to overcome friction, and to accelerate the load. If you know the friction torque ($\tau_f$), and the mass moment of inertia along the motor axis ($I$), then the minimum motor torque required is $$ \tau = \tau_f + I\alpha $$ where $\alpha$ is the required rotational acceleration.


4

The author expects a background that includes a course in physics or mechanics where this equation is taught. When that is the case, this equation gives you instantaneous velocity of a particle (point) moving on a circular path. The $\times$ in $\dot{p} = \omega \times p$ is the cross product. (This may already be obvious to you, it's hard to tell from the ...


4

When working with rigid-body transformations, it is crucial to understand which coordinate frame the transformation is defined in. Further, there are different notations for this, so it is important to know which is in use. Let's assume that $T_b^a$ describes the coordinate axes of frame $b$ with respect to the coordinate axes of frame $a$. (Note that this ...


4

At first, I did not go trough your code to check for errors in the formulas but from a high level perspective this seems ok. Therefore, your position controller is fine. What you lack is a lowlevel controller for the PWM signal. This controller should take the error of w_l - e.g. e_w_l - and w_r and provide a duty cycle accordingly. For that you should ...


3

Hint: First, write the transformation matrix as $$ T = \begin{bmatrix} R &p\\0_{1\times3} &1 \end{bmatrix}. $$ Now we use the relations $\omega_a = R\omega_b$ and $q_a = Rq_b + p$. Then since $v_a = -\omega_a \times q_a$, we can derive $v_a$ in terms of all the known quantities. In fact, two twists representing the same screw motion described in ...


3

As pointed out in my earlier comment, this is actually simpler than you may think. Remember, $qs$ and $qr$ are fundamentally different, where the former represents orientation (in reference to the outside world) and the latter represents rotation (irrespective of any reference coordinate system). You're right in saying that you don't need to do any ...


3

Hopefully you still have only 4 rows in your DH matrix, not 8 as you said. I think you mean that your Jacobian matrix has 8 $\require{enclose} \enclose{horizontalstrike}{\text{rows}}$ columns. Your approach is close to correct, but it has one flaw. The flaw is when you make the transformation that you are calling the "first joint." Instead of letting ...


3

Nope. Magnetometers measure the magnetic field. The field it's measuring is going to be the sum of fields from a variety of sources. The field you're interested in is the earth's. But it is not possible to separate the earth's nominal field from the field near an I-beam in your building. You can calibrate the magnetometer to remove any biases that are ...


3

@jpro, I think you are not understanding something about kinematics. Whether you use Euler angles, or homogeneous transforms, or rotation matrices, or quaternians, or any other kinematic representation, ALL of them relate the object's pose with respect to some coordinate frame. If you refer back to a reference coordinate frame located at the end of the ...


2

The automotive industry frequently uses Hall effect sensors to measure shaft and gear rotation. The Hall effect has some beneficial properties: it operates over a wide range of temperatures, is more immune to contaminants than, say, optical technologies, comes in a wide range of response profiles, and with multiple mounting options. I'd suggest placing a ...


2

It sounds to me like you want something where you can (exaggerating) express 30 degrees as thirty 1 degree transforms, such that you can then do something where $\sin{(1)} \approx 1$ and "cheat" that transform to use $\sin{(30)}\approx 30$. You can't do this, because as BendingUnit22 put it, "Truth is invariant under change of notation." It's similar to ...


2

The real dig to the sign convention is direction and the way humans like to perceive things orderly or at least using a reference. clockwise and anti-clockwise directions only exist with 2D planes but the inherent nature of man's stubbornness would lead him to create the right-thumb-rule to support the notion of a 3D or 4D clock existing in the nearest ...


2

Having 8 rows in the DH parameters table is completely ok. However, this does not lead to 8 rows in your jacobi matrix. The size of the jacobi matrix is always given by number of degrees of freedom in Cartesian space and number of degrees of freedom in joint space. In your case 6 and 7, as I understand. Elements in the Jacobi matrix express to what extent ...


2

There is no way that you can solve for an IK solution without you -- either explicitly or implicitly -- specifying a criterion for choosing one solution among many others. But that does not mean that solving an IK problem without having any preference on the orientation (or translation) is not possible. If you solve IK problems analytically, you can just ...


2

From now, I will solely answer your second question about forward kinematics, which is usually easier to solve than inverse kinematics. First you should sketch your robot in a plan using textbook representations for revolute and prismatic joints, this will make it clearer for you and the others. I needed to look at the picture to see that the 4 rotations ...


2

The vector and rotation together define the pose of the end-effector, which means its position and orientation. There are 6 degrees of freedom here (presumably), so you can think of the position as a point and the orientation as a direction (I'm avoiding "vector" to avoid confusion): | | | P .-----> O | | +------------------------...


2

I believe you can solve this using a least squares approach since all the math in equation is linear. Rearrange the equation so \begin{equation} \bf RR_1 -R_2R = 0 \end{equation} Set up the relation \begin{equation} \bf Ax = b \end{equation} where the vector $\bf x$ contains all values of $\bf R$, $\bf B$ is a $[9,1]$ zero vector, and $\bf A$ is a $[9,9]$ ...


2

This problem can be made easier when formulating an equivalent problem using unit quaternions $$ q\,q_a = q_b\,q \tag{1} $$ where each quaternions can be expressed as $w + x\,i + y\,j + z\,k$ while satisfying that $w^2 + x^2 + y^2 + z^2 = 1$, where $i^2 = j^2 = k^2 = i\,j\,k = -1$ (it can be noted that $i$, $j$ and $k$ do not commute, for example $i\,j \...


2

There are many conventions for Euler angle sequence, just are there are many conventions for coordinate system axes. Robotics generally uses right-hand coordinate frame for robots and robot parts, with x-forward, y-left, z-up. Euler angles in robotics are generally ZYZ ; using an a-b-a sequence (ZYZ, YZY, XZX, ...) rather than a-b-c (XYZ, YZX, ZYX, ...) ...


2

Euler's rotation theorem states that: Any two independent orthonormal coordinate frames can be related by a sequence of rotations (not more than three) about coordinate axes, where no two successive rotations may be about the same axis. That means there are a total of 12 rotation sequences possible, and we divide those into two groups of six. The ...


1

First note that $p(0)$ travels along an arc of the circle of radius $r = \Vert p \Vert \sin(\phi)$ centered at a point on the axis of $\omega$; and the velocity $\dot{p}$ is perpendicular to the arc of the circle; and (from the definition) $\omega = \dot{\theta} u$, where $u$ is a unit vector perpendicular to the plane of rotation. Now we try to relate $\...


1

Adding a worm gear to connect the output shaft to the load you are trying to move might solve your problem, since worm gear arrangements are "self locking". Here is a reference for you: http://mechteacher.com/worm-gear/ By the way, what the others have said is 100% correct. It seems you might be wanting some way to minimize the inherent play that is ...


1

It's a geared stepper, which means that it's a stepper (64 steps, I gather) followed by a 64:1 (approximately) gearbox. What you're seeing is almost certainly backlash in the gear train (see where I "suspect a poor mechanical joint..., below). Any gear motor, stepper or not, is going to have backlash. Because there's a tradeoff between the precision of ...


1

I think you can just convert the quaternions into a rotation matrix, and multiply the gyro vector by that. I have used this to adjust linear acceleration in the past, and I think it should work for rotation, but please let me know how it goes. The quaternion should be normalized first, meaning the sum of the squares should equal one. This is standard for ...


1

Quaternion are describing a 3D vector and a rotation around this vector, to go from the origin frame to the destination frame. So either you go in direction of quaternion math or you pass through rotation matrix and back to quaternion. Euler angles are subject to gimbal lock in general it is better to avoid them and use rotation matrix or quaternions. Note ...


1

Regardless of the number and kind of degrees of freedom you are using this is a least squares optimization problem. A basic approach is: write the transformation matrices that you are planning to use as a parameterized function use an initial guess to get the results for the triangle coordinates and calculte the obtained coordinates using the initial guess ...


1

Your equation is formed so that the angle can be zero only when the projection of the gravity vector onto the X axis is zero. That gives zero when the system is oriented vertically, because the gravity vector is aligned with the -Y axis. But you also will get a zero angle result if the gravity vector lies exactly in the Y-Z plane, regardless of the system'...


Only top voted, non community-wiki answers of a minimum length are eligible