当前位置: 首页 > news >正文

ROS | Realsense中的IMU解算orientation

文章目录

  • 概述
  • 一、定义介绍
  • 二、操作教程
    • (一)、下载并编译imu_tools功能包
      • 1.创建工作空间并初始化
      • 2.下载imu_tools并编译
    • (二)、修改配置
      • 1.修改imu_tools源码
      • 2.修改launch文件
      • 3.启动解算

概述

  本文详细介绍了如何使用ROS自带的工具解算6轴IMU,获取其位姿。

一、定义介绍

  Intel的Realsense中自带了IMU,官方也提供了ROS包使用,但官方提供的ROS包只能发布六轴信息,而我们常用的位姿信息却没有进行解算。因此,本节教大家如何使用ROS自带的“imu_tools”功能包来解算位姿。本节不涉及IMU解算原理,仅提供使用教程。以下是“imu_tools”功能包的Github官网:https://github.com/CCNYRoboticsLab/imu_tools/tree/melodic

二、操作教程

(一)、下载并编译imu_tools功能包

1.创建工作空间并初始化

自己创建一个工作空间,并初始化,可以使用如下命令

catkin_init_workspace

工作空间可以如下图
在这里插入图片描述

2.下载imu_tools并编译

①在src目录下使用如下命令从git上下载该功能包

git clone -b <YOUR_ROSDISTO> https://github.com/CCNYRoboticsLab/imu_tools.git

<YOUR_ROSDISTO> 替换为你的ros版本,例如我的ros是melodic版本,则使用如下命令:

git clone -b melodic https://github.com/CCNYRoboticsLab/imu_tools.git

②使用如下命令安装依赖

rosdep install imu_tools

此时很多人会报错,给出一个简单的解决方案,去工作空间目录下catkin_make一下,然后再回到src使用上面的命令

③编译imu_tools

catkin_make

此时很有可能报错,因为缺少一些库,比如报错

  Could not find a package configuration file provided by "tf" with any of
  the following names:
 
    tfConfig.cmake
    tf-config.cmake

那就直接装一下,虽然不知道缺什么包,反正看到tf,那就补全一下看看,我反正就是直接加星号,全装。以后要是缺个什么rvizxxx,那就rviz补全看看,认识就装那个,不认识就加星号全装。

sudo apt-get install ros-melodic-tf*

至此,编译便已经完成了。

(二)、修改配置

1.修改imu_tools源码

找到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_subscriber_.reset(new ImuSubscriber(nh_, "/camera/imu", queue_size));

这个话题是订阅的imu话题,需要与你发布6轴信息的话题对应。

同样在src/imu_tools/imu_complementary_filter/src/complementary_filter_ros.cpp下,下面这个话题是该包发布解算后信息的话题,如果需要也可自行修改

    // Register publishers:
    imu_publisher_ = nh_.advertise<sensor_msgs::Imu>(
        ros::names::resolve("imu") + "/data", queue_size);

2.修改launch文件

找到src/imu_tools/imu_complementary_filter/launch/complementary_filter.launch,修改为如下,其实就是把原来的里面nodelet节点给注释掉了,然后又加了两个参数。

<!-- ComplementaryFilter launch file -->
<launch>
  #### Nodelet manager ######################################################

  <!-- <node pkg="nodelet" type="nodelet" name="imu_manager"
    args="manager" output="screen" />

  #### IMU Driver ###########################################################

  <node pkg="nodelet" type="nodelet" name="PhidgetsImuNodelet"
    args="load phidgets_imu/PhidgetsImuNodelet imu_manager"
    output="screen">

    # supported data rates: 4 8 16 24 32 40 ... 1000 (in ms)
    <param name="period" value="4"/>

  </node> -->

  #### Complementary filter

  <node pkg="imu_complementary_filter" type="complementary_filter_node"
      name="complementary_filter_gain_node" output="screen">
    <param name="do_bias_estimation" value="true"/>
    <param name="do_adaptive_gain" value="true"/>
    <param name="use_mag" value="false"/>
    <param name="gain_acc" value="0.01"/>
    <param name="gain_mag" value="0.01"/>
    <param name="publish_debug_topics" value="false"/>
    <param name="publish_tf" value="true"/>

  </node>
</launch>

3.启动解算

①首先启动你的imu,查看发布话题正常

②然后启动complementary_filter.launch,记得source

roslaunch imu_complementary_filter complementary_filter.launch

如图,有orientation了
在这里插入图片描述

来自:九七的ROS
作者原创文章,文章版权归本文作者所有,未经作者同意请勿以任何方式进行复制、转载等盗版操作,请勿用于商业、违法用途!违者自行承担法律责任!

相关文章:

  • wordpress 分类 404/营销公司
  • 深圳做网站推广公司/小说推广接单平台
  • 网站网页设计制作/东莞关键词排名提升
  • 企业网站建设的成本/会计培训班推荐
  • 怎么修改网站首页logo/营销网站大全
  • 淘宝的网站建设方案/最近重大新闻
  • Mysql入门技能树-数据查询-练习篇
  • 全流量分析为企业提升SAP用户体验
  • 【JavaEE】多线程之线程安全(synchronized篇),死锁问题
  • eggjs框架源码解读
  • 接口参数检验@Valid @Validated
  • 【Linux】基础常见指令
  • react hooks组件间的传值方式(使用ts),子孙传值给祖先组件
  • 【蓝桥杯Java】错误票据(自动拆箱)
  • Sinutrain下载安装与开启OPC UA---kalrry
  • pandas文件读取
  • Dubbo与Spring集成
  • autocommit的含义