cartographer建立二维栅格地图(rplidar+imu)

本文介绍了如何使用Cartographer结合rplidar激光雷达和imu传感器数据来创建二维栅格地图。虽然已有许多关于Cartographer与rplidar建图的资料,但作者重点讲述了imu的作用,即提供初始位姿以优化建图效率。由于imu传感器(如GY85)的数据尚未成功接入ROS,作者通过模拟数据验证了imu信息在Cartographer中的应用。调整lua配置文件和launch文件,确保imu和激光雷达的话题与tf变换正确对应,是实现这一过程的关键步骤。
摘要由CSDN通过智能技术生成

cartographer在单一雷达建图方面网上博客已经有许多例子了,我之前也总结了一下cartographer在rplidar的手持激光雷达建图。

具体可参考下面的连接:https://blog.csdn.net/qq_36170626/article/details/98316861

下面我主要介绍激光融合imu信息建图,其实imu的主要作用是提供一个初始位姿,我个人理解就是在优化那边提供一个初始值可以有效减少迭代次数,从而保证实时。

我购买的imu传感器主要是gy85,其实和mpu6050差不多。我这边从ros调用imu的信息还没有调通,等调通了再写这部分。

我先是自己制造了一部分数据,当然建图效果肯定不好,我主要验证我的imu信息能否传到cartographer中。

#include <ros/ros.h> 
#include <sensor_msgs/Imu.h>
 
int main(int argc, char** argv)
{
  
    ros::init(argc, argv, "imu");     
    ros::NodeHandle n;  
 
    ros::Publisher IMU_pub = n.advertise<sensor_msgs::Imu>("imu", 20);  
    ros::Rate loop_rate(50); //设置循环频率 
    while(ros::ok())
    {
                   
            sensor_msgs::Imu imu_data;
            imu_data.header.stamp = ros::Time::now();
            imu_data.header.frame_id = "imu_link";
            //四元数位姿,所有数据设为固定值,可以自己写代码获取IMU的数据,,然后进行传递
            imu_data.orientation.x = 0;
            imu_data.orientation.y = -1;
            imu_data.orientation.z = -5;
            imu_data.orientation.w = 6;
            //线加速度
            imu_data.linear_acceleration.x = 0.01; 
            imu_data.linear_acceleration.y = 0.02;
            imu_data.linear_acceleration.z = 0.03;
	    //角速度
            imu_data.angular_velocity.x = 0.05; 
   
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纷繁中淡定

你的鼓励是我装逼的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值