Robot Pose EKF 包用于根据来自不同来源的(部分)位姿测量来估计机器人的 3D 位姿。它使用带有 6D 模型(3D 位置和 3D 方向)的扩展卡尔曼滤波器来结合车轮里程计、IMU 传感器和视觉里程计的测量结果。基本思想是提供与不同传感器的松散耦合集成,其中传感器信号作为 ROS 消息接收。
具体在ros官网有详细介绍wiki.ros.org/robot_pose_…
而我在运行功能包的时候报错如下
后来发现是ekf包版本不同导致的
原因是我在官网下载的ekf源码包不对应,虽然已经选择了对应的ros版本,依然会显示报错。
因此采用不再把robot_pose_ekf包的源码放到我自己工程的方法,
而是把他用ros命令安装的方法,此时安装的ekf包是正确的版本,可以满足使用。只是按照的不是ekf功能包的源码文件,因此需要在下载功能包以后,再把功能包相应路径下的launch文件的的配置内容按照使用情况进行修改(ekf的launch文件中设置了ekf的输入和输出对应的话题,因此需要进行相应修改)
首先,删掉我在我源码包中的ekf功能包
rm -r robot_pose_ekf
然后用ros命令安装此功能包
sudo apt-get install ros-kinetic-robot-pose-ekf
同时,robot_pose_ekf下的launch文件进行对应的修改
1 进入ekf功能包的目录下
roscd robot_pose_ekf/
2 查看 目录下的文件
ls
3 修改launch文件内容
sudo gedit robot_pose_ekf.launch
再次编译我的功能包,不会在报错