系统使用Ubuntu18.04 +ros1
一、建立catkin工作空间
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
上述三步建立了catkin工作空间并将其初始化
工作空间创建完毕后要对其进行编译
$ cd ~/catkin_ws
$ catkin_make
这里需要注意catkin_make要在工作空间下进行编译。至此已经将catkin工作空间创建完毕。
二、gazebo,rviz创建小车模型及环境模型
关于仿真小车的创建视频课程都有,但自己构建出来的车总是会有问题,在github上挑选合适的开源代码使用。
我使用的小车是:https://github.com/Xiangyu-Fu/slam_bot.git
首先进入catkin工作空间下的src目录下
$ cd ~/catkin_ws/src
要在src目录下将github代码克隆下来
~/catkin_ws/src$ git clone https://github.com/Xiangyu-Fu/slam_bot.git
将代码克隆后需要将整个工程编译一下
~/catkin_ws/src$ cd ..
~/catkin_ws$ catkin_make
切记这里一定要catkin_make编译整个工程。
编译好后就可以进入src目录下的slam_bot文件查看
可以看到slam_bot的目录如下,启动前可以使用命令更新下环境
source ./devel/setup.bash
启动一个模型首先要寻找他的launch文件打开,新建一个终端,可以使用命令
roslaunch slam_bot slam.launch
打开模型:
小车底盘模型搞定后可以用键盘试着控制小车移动一下,感受一下,在启动键盘控制前,新开一个终端使用roscore启动ros
然后开一个新终端输入命令
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
为了更好的测试之后的建图定位,我们可以换一个仿真环境,打开slam_launch文件下找到这一段代码
这一段代码是仿真环境的代码 将他注释,然后从github再找一个包
https://github.com/aws-robotics/aws-robomaker-small-house-world.git
在这里要说明的是,github的包不一定都能顺利跑起来,如果遇到报错,可以尝试解决,不行就换个包。
和上述克隆小车包一样,将仿真环境包克隆到src目录下,然后一定要catkin_make重新编译
打开launch文件,我们需要将环境和小车放在一起,所以要在slam_bot文件中包含环境的launch文件
在slam.launch文件中将注释的环境部分替换为
<include file="$(find aws_robomaker_small_house_world)/launch/view_small_house.launch"/>
再次启动
小车换了一个仿真环境,接下来就要将16线激光雷达Velodyne仿真到小车上。
三 Velodyne雷达的仿真
Velodyne雷达功能包在CSDN上有很多,如何导入工作空间和上述也差不多,参考博客为:
将雷达配置到我们之前的仿真模型中,在slam_bot文件中的slam_bot.xcaro文件中加入代码:
运行gazebo和rviz
至此小车+仿真环境+雷达的仿真都已经完成。
四、LegoLoam建图
第一步仍然是从github中将Legoloam的包克隆到我们的工作空间下,并编译。
第二部运行之前的slam_launch文件
第三步运行legoloam代码
roslaunch lego_loam run.launch
由于ubuntu问题 在运行legoloam时可能会有报错,有可能是我们的动态库没有链接,这时候需要找相关资料解决一下。
地图构建效果还是不错的。