IMU使用系列------imu_tools验证数据是否准确及安装是否准确

本文档介绍了如何安装和使用imu_tools包来融合IMU数据,并通过rviz显示传感器数据。首先,创建catkin工作空间,安装必要的依赖,然后下载并编译imu_tools。在测试中,使用了瑞芬tl740IMU,但发现原始代码与发布的IMU话题不匹配,进行了相应调整。最后,在rviz中配置rviz_imu_plugin插件,实现了IMU数据的实时可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 前言

imu_filter_madgwick:一种滤波器,可将来自常规IMU设备的角速度,加速度和磁力计读数(可选)融合到一个方向中。基于工作

imu_complementary_filter:一种滤波器,它使用一种基于互补融合的新颖方法,将来自通用IMU设备的角速度,加速度和磁力计读数(可选)融合到方向四元数中。基于文献

rviz_imu_plugin:rviz插件,可显示sensor_msgs::Imu消息。

2 安装imu_tools

创建catkin工作空间:

mkdir -p ~/imu_tools_catkin_ws/src

安装git:

sudo apt-get install git-core

下载仓库到catkin工作空间中:

cd ~/imu_tools_catkin_ws/src
git clone -b <distro> https://github.com/ccny-ros-pkg/imu_tools.git

注意:为ROS版本,比如:melodic。

使用rosdep安装依赖:

rosdep install imu_tools

编译:

cd ..
catkin_make

3 使用

这里,我使用瑞芬的tl740IMU进行测试。

启动ROS驱动:

roscore
rosrun tl740d_driver tl740d_driver

然后在终端打印IMU数据:

rostopic echo /imu/data_raw

从上图可以看出,只输出了加速度(linear_acceleration)和角速度(angular_velocity),没有计算方位(orientation),而且也没有协方差(covariance)。

打开文件:
~/imu_tools_ws/src/imu_tools/imu_complementary_filter/src/complementary_filter_ros.cpp,有如下代码:

// Register IMU raw data subscriber.
imu_subscriber_.reset(new ImuSubscriber(nh_, ros::names::resolve("imu") + "/data_raw", queue_size));

可以看出,imu_tools订阅的topic为imu/data_raw,而IMU发布的topic为/imu/data_raw,因此需要修改代码,使topic一致:

// Register IMU raw data subscriber.
imu_subscriber_.reset(new ImuSubscriber(nh_, "/imu/data_raw", queue_size));

打开rviz:

rviz

在rviz中,点击【Add】,添加【rviz_imu_plugin】。

设置【Fixed Frame】为odom,设置【IMU】中的【Topic】为/imu/data。

IMU静止时,rviz中的模型也保持静止;转动IMU,rviz中的模型会显示IMU的运动。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值