记录:robot_localization传感器数据融合学习

发布于:2024-05-14 ⋅ 阅读:(275) ⋅ 点赞:(0)

一、参考资料

  1. 官方:
  1. 实践教程

二、安装

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/cra-ros-pkg/robot_localization --branch kinetic-devel
cd ..
catkin_make -DCMAKE_BUILD_TYPE=Release
source ./devel/setup.bash

出现CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake报错,执行sudo apt-get install ros-kinetic-geographic-msgs

三、实践

代码:https://github.com/Kapernikov/ros_robot_localization_tutorial

source /opt/ros/kinetic/setup.bash
cd /ros_robot_localization_tutorial/ros-ws
catkin_make
source ./devel/setup.bash

根据第一个教程,运行即可。如果报c++11的错误,CMakeLists中添加SET(CMAKE_CXX_FLAGS "-std=c++0x")
在这里插入图片描述
编译通过以后,启动节点,出现TurtleSim界面,可通过键盘操作,结果已经可视化出来了。

roslaunch robot_localization_demo robot_localization_demo.launch

在这里插入图片描述
灰色粗线是TurtleSim节点画的轨迹。蓝色细线是虚拟位置传感器,测量乌龟的绝对位置和方向。红色细线是虚拟速度传感器,测量乌龟的线速度和角速度。绿色粗线是robot_location融合的位姿估计结果。

四、理解

robots_localization 包是用于在 3D(或 2D)空间中移动的机器人的非线性状态估计器的集合。每个状态估计器都可以融合任意数量的传感器(IMU、里程计、GPS ……)来跟踪 15 维( x x x y y y z z z r o l l roll roll p i t c h pitch pitch y a w yaw yaw x ˙ \dot{x} x˙ y ˙ \dot{y} y˙ z ˙ \dot{z} z˙ r o l l ˙ \dot{roll} roll˙ p i t c h ˙ \dot{pitch} pitch˙ y a w ˙ \dot{yaw} yaw˙ x ¨ \ddot{x} x¨ y ¨ \ddot{y} y¨ z ¨ \ddot{z} z¨) 机器人的状态。

。。。待写