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 ...


4

The rotation error between two frames can be viewed in two ways: The orientation of one frame as seen from the other, calculated by multiplying the inverse of the observing frame by the observed frame. For frames $E$ and $H$, this error in your notation would be $$ \tag{1} {R_{1}}^{E}_{H} = (R^{W}_{E})^{-1}R^{W}_{H} = R^{E}_{W}R^{W}_{H} $$ for $H$ as seen ...


3

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 ...


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

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

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 ...


3

A rotation matrix represents the rotation between two frames. Therefore, it does not make sense to talk about in which "one" frame the error rotation is expressed. Namely, the rotation matrix $R^B_A$ represents the rotation from frame $B$ to frame$A$. Therefore, the error rotation matrix you defined as $$ R_{error} = R^W_E R^H_W $$ can also be seen as the ...


3

Mathematically a rotation vector(or axis angle) representation will always convert to the same rotation matrix. However, multiple different rotation vectors can lead to the same rotation matrix. A rotation vector represents a rotation by an axis and an angular rotation around that axis(axis angle). $$ \begin{bmatrix} e_x \\ e_y \\ e_z \end{bmatrix},\theta$$ ...


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

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

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 ...


2

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 ...


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 ...


2

A general approach would be to construct a so called axis-angle representation and convert that to a rotation matrix representation. On order to do so, one could start with a normal vector of the triangle. Let's take the $P_1P_2$ line and construct the perpendicular of the triangle from $P_3$ to $P_1P_2$. Let's call $P_4$ the point where 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 $\...


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