1. 可行的主题
Robot Pose EKF节点订阅下面的主题:
/odom 2D消息<nav_msgs::Odometry> /imu_data 3D消息<sensor_msgs::Imu> /vo 3D消息<nav_msgs::Odometry>
要在自己的传感器中使用EKF,应该将传感器数据发布在这三个主题中,传感器应该发布机器人本体坐标系相对世界坐标系的关系。每个传感器可以基于不同的世界坐标系。注意:每个主题只能接受一个传感器输入,将来的版本可能会增加多个传感器输入,当前最普遍的输入数据是/vo主题的odometry消息。它包含3D姿态、速度及其协方差。所以最适合将自主的传感器增加在其中。
2. Building a GPS sensor message构建GPS传感器数据
GPS传感数据是3D无朝向信息的数据,GPS传感器发布的数据类似下面:
msg.header.stamp = gps_time // time of gps measurement msg.header.frame_id = base_footprint // the tracked robot frame msg.pose.pose.position.x = gps_x // x measurement GPS. msg.pose.pose.position.y = gps_y // y measurement GPS. msg.pose.pose.position.z = gps_z // z measurement GPS. msg.pose.pose.orientation.x = 1 // identity quaternion msg.pose.pose.orientation.y = 0 // identity quaternion msg.pose.pose.orientation.z = 0 // identity quaternion msg.pose.pose.orientation.w = 0 // identity quaternion msg.pose.covariance = { cox_x, 0, 0, 0, 0, 0, // covariance on gps_x 0, cov_y, 0, 0, 0, 0, // covariance on gps_y 0, 0, cov_z, 0, 0, 0, // covariance on gps_z 0, 0, 0, 99999, 0, 0, // large covariance on rot x 0, 0, 0, 0, 99999, 0, // large covariance on rot y 0, 0, 0, 0, 0, 99999 } // large covariance on rot z
2.1 使用GPS驱动器发布NavSatFix
gps_common软件包中的utm_odometry_node用于将GPS测量值从sensor_msgs/NavSatFix 转换为sensor_msgs/Odometry.
<node name="gps_conv" pkg="gps_common" type="utm_odometry_node"> <remap from="odom" to="vo"/> <remap from="fix" to="/gps/fix" /> <param name="rot_covariance" value="99999" /> <param name="frame_id" value="base_footprint" /> </node>
3 映射主题名称
GPS传感器发布gps_meas主题,EKF节点希望处理的是 odom主题的odometry消息,为了连接GPS传感器与EKF节点,我们将vo映射到gps_meas上,因此在launch文件中增加下面的数据:
<remap from="vo" to="gps_meas" />
滤波器的输出是在 /robot_pose_ekf/odom_combined主题,节点同样'odom_combined' 与'base_link' 的变换发布到 /tf_message。
作者:joey_zhou
链接:http://www.jianshu.com/p/68d06e23e19e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
ros发布gps定位信息
最新推荐文章于 2025-03-28 14:57:41 发布