外观
踩坑Robotics Stack Exchange2016-02-28
PixHawk 偏航不可靠时如何用 2 个激光求 yaw
本文由 AI 根据公开内容整理,可能有误,请以原文为准:6D localization with 6 lasers(Robotics Stack Exchange #9267)
状态:已解决
问题
多旋翼在 10m×10m 房间内用 6 个固定激光定位,PixHawk IMU 给出的 yaw 不可靠;已知 roll/pitch、激光原始位置与方向、测距值,需从激光测量恢复 yaw。
环境
10m×10m方形房间;多旋翼;6个固定激光,每轴2个;PixHawk IMU四元数;Python、ROS geometry library、numpy。
解决办法
- 从 IMU 四元数用
euler_from_quaternion(q, axes='sxyz')取roll、pitch,令 yaw 为 0,用quaternion_from_euler(roll, pitch, 0, axes='sxyz')和quaternion_matrix预旋转激光位置与方向。 - 将绕 Z 轴的 yaw 作为未知量,写出预旋转后的激光位置和方向关于 yaw 的代数表达式。
- 用测距外推墙面点:令
k=measure/length(orientation),PointOnWall = k * orientation + position。 - 对两束激光建立同一墙面的方程,计算
numerator = -k2*orientation2[0] + k1*orientation1[0] + position1[0] - position2[0],`denominator = -k2*orientation2[1]…
原问题作者:Alexis Paques;采纳答案作者:Alexis Paques。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。