利用自己的数据包实现点云地图的NDT定位

本文旨在帮助读者利用自己的数据包完成3D点云地图下的定位,公开数据包NDT:自动驾驶系统进阶与项目实战(六)基于NDT的自动驾驶高精度定位和ROS项目实战,本文只讲应用。

废话不多说,直接开始!

一、安装ndt_localizer

#创建工作空间
mkdir -p ~/ndt_localizer/src
cd ~/ndt_localizer/src
catkin_init_workspace

#克隆代码
git clone https://github.com/hujiax380/ndt_loc.git

#编译
cd ..
catkin_make

二、配置文件

1. map文件

将自己的数据包所建的pcd文件放置在代码包里的map文件夹下;

将/launch/map_loader.launch中的"pcd_path"路径下的.pcd文件名改为自己的pcd文件名:xxx.pcd;

2. 点云文件

将/launch/points_downsample.launch文件中的"points_topic"下的话题名改为自己的激光雷达点云话题名,笔者使用的是velodyne16,因此改为"/velodyne_points";

将"leaf_size"的值根据自己的激光雷达线数及建图场景修改,velodyne16室内建图修改为0.25效果不错,室外场景或32线/64线大一些;

3. 坐标变换

将/launch/static_tf.launch中的"localizer_to_base_link"后的两坐标改为"0 0 0.1 0 0 0 base_link velodyne"(针对velodyne);0.1表示激光雷达坐标到base_link的z轴距离;

三、启动定位程序

启动ndt_localizer节点:

#启动ndt定位节点
source ~/ndt_localizer/devel/setup.bash
roslaunch ndt_localizer ndt_localizer.launch

等待地图加载完成后,启动rosbag:

#注意建图的bag与定位bag要一致
rosbag play xxx.bag

最后在终端和rviz中就能够看到定位结果了!

  • 11
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值