首页 >> 大全

ROS - 用POSE展示方向或向量 vector - pose

2023-10-18 大全 30 作者:考证青年

昨天想在rviz里用pose表示一个,搞了半天。

Pose的属性,point是起点,是表示由坐标系原点将[1,0,0]这个向量旋转到想要显示的方向所需的旋转的四元数表示。

假如你有空间中的两个点 A(x1,y1,z1) 和 B(x2,y2,z2),想要表示由A出发指向B的向量,则Pose的Point = A。

然后计算的四元数,及将向量[1,0,0]旋转到向量AB方向的四元数。

= AB/|AB| //单位向量

r = [1,0,0] X //旋转轴为叉乘方向np.cross()

r = r/|r| //单位向量

Theta = (r*[1,0,0]) //旋转角

四元数公式为

向量表示方向_向量vector_

其中(x,y,z)为旋转轴方向上的单位向量。代入即可得到Pose的。

# A(x,y,z) B(x1,y1,z1)
direction.position = Point(x,y,z)
rhh_v = np.asarray([x-x1,y-y1,z-z1]) //determine A to B or B to A
rhh_v = rhh_v/np.linalg.norm(rhh_v)
rhh_n = np.cross(np.asarray([1,0,0]),rhh_v)
rhh_n = rhh_n/np.linalg.norm(rhh_n)
rhh_tht = np.arccos(rhh_v.dot(np.asarray([1,0,0])))
direction.orientation = Quaternion(x=np.sin(rhh_tht/2)*rhh_n[0], y=np.sin(rhh_tht/2)*rhh_n[1], z=np.sin(rhh_tht/2)*rhh_n[2], w=np.cos(rhh_tht/2))

四元数()和旋转 +欧拉角 - - 博客园

/Pose

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了