Simulating 6DoF measurements for a rotating object on a sphere

I want to simulate gyroscope/accelerometer signals for a freely rotating point-like object (i.e., a sensor) that moves along the surface of a sphere centered at the origin. I start by generating a path of two time varying angles, an azimuth and elevation, and a fixed radius. Neglecting for now the rotation of the object's coordinate system, the acceleration of the object is approximated by taking the second derivative of the position. To simulate an accelerometer reading, I rotate the acceleration first around the $y$ axis by the elevation angle, then around the $z$ axis ($+z$ is up in my coordinate system) by the azimuthal angle. To simulate a gyro reading for the movement along the sphere, $\vec{\omega_s}$, I take the cross product of the velocity (first derivative) and the position vector, normalizing it by the radius squared as shown on Wikipedia. $ \vec{\omega_s} = \frac{\vec{v} \times \vec{r}}{|r|^2}. $ Now allowing the object an arbitrary, time varying rotation relative to the world, I believe all I have to do account for that is to use its orientation to rotate the acceleration vector at every time. It makes sense to me that I should rotate that acceleration vector before I do the azimuth/elevation rotation discussed above to account for the object own rotated coordinate system.

I can compute the $\vec{\omega_o}$ of the object by differentiating its angles of rotation. What I'm still not sure about is whether I can add $\vec{\omega_o}$ to $\vec{\omega_s}$, and whether transforming $\vec{\omega_s}$ by rotation into the object's coordinate system is correct or not, i.e. I don't know if I can use the following composition $ \vec{\omega_o} + R \cdot \vec{\omega_s}, $ where $R$ is a rotation matrix corresponding to the object's rotated coordinate system.

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论