(实物非仿真)香橙派zero3搭载激光雷达复现hector mapping slam算法

1 篇文章 0 订阅
1 篇文章 0 订阅
本文详细介绍了在香橙派zero3开发板上安装ROS1,配置MS200激光雷达,以及使用hector_mapping进行SLAM建图的过程,包括烧录系统、安装工具、设置TF坐标变换和在rviz中查看建图效果。
摘要由CSDN通过智能技术生成
硬件组成

一个香橙派zero3

一个激光雷达(本人使用的是ms200激光雷达)

一个usb转uart模块(ch340或者cp2102,本人使用的是cp2102)

烧录系统

首先用烧录工具烧录香橙派官方提供的乌班图镜像(我使用的版本是20.04桌面版,因为20.04版本可以装ros1和ros2,并且本文是复现slam建图,不能具体的看图怎么能成呢!)

远程登陆

烧录好镜像后远程登陆开发板(这里使用的是Xshell软件,账号密码默认都为orangepi)

安装ros

这里使用的是小鱼一键安装ros,感谢鱼香大佬的简易安装工具(鱼香论坛https://fishros.org.cn/forum/

wget http://fishros.com/install -O fishros && . fishros

我这里选择的是ROS1Noetic桌面版本(记得换源再安装,不换源会有安装不成功的几率)

安装激光雷达驱动并启动雷达

先创建工作空间,并将激光雷达的驱动文件解压到工作空间的src文件夹下

mkdir catkin_ws
cd catkin_ws/
mkdir src
cd src/
catkin_init_workspace
tar -xvf oradar_ros.tar.xz

上面解压的oradar_ros.tar.xz是我这款ms200的驱动文件(由厂商提供)

回到工作空间并编译

cd catkin_ws
catkin_make

编译完成后添加工作空间环境变量,在终端输入

sudo vim ~/.bashrc

在该文件的末尾添加以下语句

source ~/catkin_ws/devel/setup.bash --extend

将激光雷达通过cp2102串口转usb模块插到板子上的usb接口,终端输入

cd catkin_ws/src/oradar_ros
sudo cp oradar.rules /etc/udev/rules.d/

这个oradar.rules是绑定雷达端口的规则文件,其中的参数是厂家提供的,我们要按实际修改,终端输入

lsusb

此时记住这个cp2102的id号为10c4:ea60,然后终端输入

sudo vim etc/udev/rules.d/oradar.rules 

编辑刚刚复制过去的规则文件修改为

重新插拔雷达串口,并在终端输入

ll /dev/oradar

此时出现说明端口绑定成功。

然后新建一个终端,输入

roslaunch oradar_lidar ms200_scan.launch

此时可以看到发布scan话题成功,表示激光雷达已经驱动起来了。

(经评论区大佬提醒,各位在操作的过程中确认一下发布话题的名称,否则会产生话题订阅问题)

复现hector mapping

先安装依赖

sudo apt-get install ros-noetic-hector-mapping

打开两个终端,先试试hector能否订阅到scan话题其中一个终端启动激光雷达,另一个启动hector

roslaunch oradar_lidar ms200_scan.launch
rosrun hector_mapping hector_mapping

此时出现

这是获取坐标转换数据超时的提醒,看来hector已经订阅了scan话题,但由于没有提供坐标信息无法正常运行。

我们找到hector mapping 的启动文件

cd opt/ros/noetic/share/hector_mapping/launch/
sudo vim mapping_default.launch

修改为

    <!-- Frame names -->
    <param name="map_frame" value="map" />
    <param name="base_frame" value="base_link" />
    <param name="odom_frame" value="base_link" />

同时在激光雷达的启动文件中添加两个TF变换坐标

vim catkin_ws/src/oradar_ros/launch/ms200_scan.launch

在末尾的</launch>上面添加

 <node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0.0 0.0 0.0 0 0 0.0 /odom /base_link 10"/>

  <node pkg="tf" type="static_transform_publisher" name="base_frame_laser" args="0 0 0 0 0 0 /base_link /laser 10"/>

再重新打开两个终端并启动激光雷达和hector

可以看到错误提示已经消失,hector mapping正常运行

在rviz上查看建图效果

通过香橙派官方推荐的nomachine远程桌面登陆香橙派zero3(如何安装使用nomachine在官方的用户手册中有详细说明,这边不再赘述)

打开三个终端分别输入

roslaunch oradar_lidar ms200_scan.launch
rosrun hector_mapping hector_mapping 
rviz rviz

第一条是启动激光雷达,发布scan话题

第二条是启动hector mapping发布map话题

第三条是启动rviz可视化工具,查看建图效果

在rviz中添加laserscan和map同时订阅scan话题和map话题

此时可以在rviz上看到建图效果,同时移动激光,图中也会跟着建图。

此致大功告成。

后续优化

编写launch文件,将上述三条指令整合到一个启动文件中

<launch>

    <include file="$(find oradar_lidar)/launch/ms200_scan.launch" />

    <node pkg="hector_mapping" type = "hector_mapping" name = "hector_mapping" />

    <node pkg="rviz" type = "rviz" name = "rviz" args="-d $(find oradar_lidar)/rviz/myslam.rviz"/>
</launch>

其中myslam.rviz文件是rviz配置文件,可从rviz左上角保存。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值