ROS小车+Velodyne16线+legoloam仿真

系统使用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创建小车模型及环境模型

ROS基础课程

关于仿真小车的创建视频课程都有,但自己构建出来的车总是会有问题,在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上有很多,如何导入工作空间和上述也差不多,参考博客为:

Velodyne gazebo仿真

将雷达配置到我们之前的仿真模型中,在slam_bot文件中的slam_bot.xcaro文件中加入代码:

 运行gazebo和rviz

 

 至此小车+仿真环境+雷达的仿真都已经完成。

四、LegoLoam建图

第一步仍然是从github中将Legoloam的包克隆到我们的工作空间下,并编译。

第二部运行之前的slam_launch文件

第三步运行legoloam代码 

 roslaunch lego_loam run.launch 

由于ubuntu问题 在运行legoloam时可能会有报错,有可能是我们的动态库没有链接,这时候需要找相关资料解决一下。

 地图构建效果还是不错的。

我的机器人模型:<!-- 组合小车底盘与传感器 --> <robot name="my_car_camera" xmlns:xacro="http://wiki.ros.org/xacro"> <xacro:include filename="my_head.urdf.xacro" /> <xacro:include filename="my_base.urdf.xacro" /> <xacro:include filename="my_laser.urdf.xacro" /> <xacro:include filename="move.urdf.xacro" /> <!-- 雷达仿真的 xacro 文件 --> <xacro:include filename="my_sensors_laser.urdf.xacro" /> </robot> 请帮我修改my_sensors_laser.urdf.xacro:<robot name="my_sensors" xmlns:xacro="http://wiki.ros.org/xacro"> <!-- 雷达(VLP-16--> <gazebo reference="laser"> <sensor type="gpu_ray" name="vlp16"> <pose>0 0 0 0 0 0</pose> <visualize>true</visualize> <update_rate>10</update_rate> <ray> <scan> <horizontal> <samples>2000</samples> <resolution>0.18</resolution> <min_angle>-3.1415926535</min_angle> <max_angle>3.1415926535</max_angle> </horizontal> <vertical> <samples>16</samples> <resolution>0.2</resolution> <min_angle>-0.261799</min_angle> <max_angle>0.261799</max_angle> </vertical> </scan> <range> <min>0.10</min> <max>100.0</max> <resolution>0.03</resolution> </range> <noise> <type>gaussian</type> <mean>0.0</mean> <stddev>0.03</stddev> </noise> </ray> <plugin name="gazebo_vlp16" filename="libgazebo_ros_gpu_laser.so"> <topicName>/velodyne_points</topicName> <frameName>laser</frameName> <min_range>0.10</min_range> <max_range>100.0</max_range> <hmin>-3.1415926535</hmin> <hmax>3.1415926535</hmax> <vmin>-0.261799</vmin> <vmax>0.261799</vmax> <samples>2000</samples> <resolution>1.0</resolution> <gpu>true</gpu> </plugin> </sensor> </gazebo> </robot>让rostopic info /velodyne_points Type: sensor_msgs/LaserScan 输出的类型为Pointcloud2
最新发布
04-02
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值