Hot answers tagged

3

The quaternion part [q_x, q_y, q_z, q_w] has four numbers but is a representation of 3D orientation, which has 3 degrees of freedom. Another common representation for orientation is the matrix Lie group $\mathrm{SO}(3)$, which is the group of $3\times 3$ rotation matrices (9 numbers, but only 3 degrees of freedom). Neither the quaternion nor the rotation ...


2

I am just going to explain from the basics. So feel free to skip through the first part and scroll to the bottom if you want the answer. Basics: The 3 parameters of your pose are $x,y,\theta$. These can be stored as homogeneous matrix which is the combination of the translation($x,y$) and the rotation($\theta$). It looks like so $$\begin{bmatrix} cos(\theta) ...


1

See https://www.cis.upenn.edu/~cjtaylor/PUBLICATIONS/pdfs/TaylorTR94b.pdf. You can absolutely use "flat" Euclidean space based optimizers while also optimizing on the manifold, but I agree the default scipy solvers don't give you an easy way to do that. Perhaps you can use pymanopt? See https://www.pymanopt.org/. Although I wouldn't be scared of ...


1

Adding to Parker's answer, the quaternion is avoided many cases due to its complexity in getting a closed-form Jacobian. Also, it unnecessarily increases the number of optimization states. Due to these problems rotation vector (3x1) is usually preferred and that's why you see it as 3x1. Note that the rotation vector is different from Euler angles and does ...


1

Not sure if there is an existing good sw for that but if you want to implement that a motion-based method will work. The motion-based approach basically estimates the trajectory of each camera and finds extrinsic parameters(relative positions and rotations). It doesn't need any view overlap. What you need to do is simply grabbing your device and making a ...


1

In general, a larger fiducial will always produce a more robust and accurate measurement. This is because any sub-pixel detection errors will be reduced by the larger baseline. (For example, the detector erroneously measures one corner of the fiducial to be 1 pixel too high. The angular error will be greater if the tag in view is 20 pixels across as ...


1

As mentioned by @long-smith the standard solution is to use quaternions. However if you specifically are asking how to deal with errors using angles that are modulo $2\pi$ you are going to want to add logic to compute the smallest angle between two angles which take into account wrapping. An example is shorted_angular_distance from the ROS angles package ...


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