首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用hector_gazebo_plugin和python2获取(x,y,z)中的机器人坐标?

如何使用hector_gazebo_plugin和python2获取(x,y,z)中的机器人坐标?
EN

Stack Overflow用户
提问于 2021-09-24 03:38:03
回答 1查看 341关注 0票数 1

我有一个四旋翼,我想用hector_gazebo_plugin和python读取它在(x,y,z)中的位置。现在,我使用libhector_gazebo_ros_gps.so文件来获取四旋翼的纬度和经度。

但我想知道四旋翼的位置。

我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2021-09-24 16:18:19

在ros中,有几个不同的框架,正如BTables试图达到的那样。如果您试图从传感器数据中获得位置估计,请使用robot_localization包、familiarize yourself with the different kinds of frames和ros消息类型/数据进出该过程。

通常在ros中,有3个主要框架: map -> odom -> base_link。base_link是机器人上代表它的点。奥多姆框架跟踪集成的速度/加速度传感器更新,以具有连续的位置;它的原点通常是机器人启动的地方。地图框是机器人的“真实世界”位置。它确实需要一个原点位置和偏航,因为否则它是任意的。

在您的示例中,您似乎希望将机器人锚定在经度/纬度坐标框架内。我的建议仍然是在您的环境中选择一个源,如果可以的话,否则您可以使用引导位置作为源。

因此,我假设您的odom>base_link转换是一个EKF或UKF节点(来自robot_localization),使用来自您的四轴飞行器的IMU数据。然后,您的map->odom转换是另一个EKF或UKF,它也会在您的地图框中获得一个绝对位置作为更新。(参见github中的示例launch file (navsat notes)和yaml config file (navsat notes)等)。然后,您可以使用来自hector gazebo gps plugin的传感器主题( fix _msgs/NavSatFix)和navsat_transform_node来获取上述估计器的位置更新,并将变换映射到全球或utm坐标系。

如果你不关心你相对于出来的世界的位置,这会变得简单一点,否则它还具有将你的位置报告回lat/long的功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69309248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档