说在前面

情况介绍:本人今年大四在读,老师给了“轮式机器人定位与导航系统设计”的毕设题目,研究内容主要是激光SLAM和自主导航。因为内容较多,难度较大,本人水平不足等诸多原因,在寒假的时候就开始在网上自学Ubuntu和ROS,主要是看胡春旭大佬的课,话题和服务的编程已经熟悉了一点,以后有时间再写,不求面面俱到,只希望我能顺利毕业吧。

为什么写这一系列博客?主要是为了防止学到后面忘了前面吧,毕竟还要学习的东西还是非常多的,希望能坚持学习坚持更新。

我的软件搭配

本人使用的是Ubuntu20.04和ROS noetic,最新版的系统和ROS确实让我吃了不少苦。

激光雷达介绍

我使用的是杉川的比较便宜的一款产品,具体型号我不太记得了,具体长这样。

实现方法

我主要是参考了这篇博客 ROS Kinetic下使用杉川Delta_2A激光雷达示例,大家也可以直接看他的文章。

创建工作空间

可以使用catkin_init_workspace的命令,我的方法如下。

mkdir -p ~/catkin_lidar/src
cd ~/catkin_lidar
catkin_make

上面命令的意思分别是在home路径下建立catkin_lidar文件夹,在文件夹中添加一个src的文件夹,然后进入catkin_lidar路径下进行编译。

编写源文件

src中包含一个名为delta_lidar的功能包和一个CMakeLists.txt,功能包中有launch文件夹、rviz文件夹、sdk文件夹、src文件夹和CMakeLists.txt和package.xml,分别说一下它们的作用。可以在我的资源主页下载src文件夹,按照上述方法自行编译。

  1. luanch文件夹中包含了一些.launch文件,用来启动一些节点和加载参数,相对于roscore的启动方式,终端数少更加简洁。
  2. rviz文件夹中有一个.rviz文件,用来配置rviz启动时的一些插件和配置的参数。例如Fixed Frame、点云数据的话题名称等等。
  3. sdk中包含的是一些头文件(这个我不太清楚,详细知识请查资料)。
  4. src文件夹中包含的是cpp格式的源文件,client.cpp和node.cpp,用于发布/scan的话题。
  5. CMakeLists.txt规定了一些编译和创建可执行程序的规则。
  6. pakage.xml包含了版本号,程序作者的邮箱和依赖的包如std_msgs、roscpp等

添加环境变量

写完程序之后,在终端下进入catkin_lidar路径编译,然后需要用如下命令添加环境变量。

catkin_make
source devel/setup.bash

这种方法只能对此终端生效,更常见的方法如下。

原作者使用的命令是echo"source/catkin_lidar/devel/setup.bash">>~/.bashrc,但是我使用这个命令会报错bash: echosource/catkin_lidar/devel/setup.bash: 没有那个文件或目录

在这里插入图片描述

后来只能手动添加环境变量,打开home目录下的.bashrc(注意:是.bashrc,不是bashrc),在最后一行添加source /home/your_name/catkin_lidar/devel/setup.bash,其中your_name需要替换成对应的计算机名。

然后使用source ~/.bashrc添加环境变量。可以在终端输入echo $ROS_PACKAGE_PATH查看环境变量,有catkin_lidar路径就没有问题。

在这里插入图片描述

连接雷达端口

在终端中输入sudo chmod 777 /dev/ttyUSB0连接雷达端口。

运行rviz

直接运行launch文件即可,命令:roslaunch delta_lidar view_delta_lidar

结果

这样就能在rviz中看到激光雷达的点云数据了,第一次跑起来激光雷达太高兴了,记录一下,理工男的快乐就是这么简单吧。

在这里插入图片描述

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐