Rplidar A1从测试到使用-在ROS中使用和用来建图

1.ROS中使用激光雷达(RPLIDAR)

  我这里用的是思岚(rplidar)A1,通过ros系统去驱动激光雷达,下面做简单的介绍。

    RPLIDAR是低成本的二维雷达解决方案,由SlamTec公司的RoboPeak团队开发。
    它能扫描360°,12米半径的范围。
    它适合用于构建地图,SLAM,和建立3D模型。

  • 源码安装 rplidar-ros 雷达驱动
$ mkdir -p  ~/turtlebot_ws/src
$ cd   ~/turtlebot_ws/src

## 激光雷达rplidar一代驱动
$ git clone https://github.com/ncnynl/rplidar_ros.git
  • 添加环境变量,在~/.bashrc最后添加一行:
$ source ~/turtlebot_ws/devel/setup.bash

(根据自己的环境变量路径去添加)
  • 刷新配置
$ source ~/.bashrc
  • 配置
    *检查端口权限
$ ls -l /dev |grep ttyUSB

  *设置端口权限666

$ sudo chmod 666 /dev/ttyUSB0
  • 测试
     运行rplidar和并打开rviz查看
$ roslaunch rplidar_ros view_rplidar.launch
  • 使用别名
     建立别名,运行脚本创建别名
 $ ./scripts/create_udev_rules.sh

 使用别名,在启动的launch文件,修改使用别名

<param name="serial_port" type="string" value="/dev/rplidar"/>

2.RPlidar A1在Hector SLAM功能包下建图

2.1建立工作空间并下载编译源码

mkdir -p ~/turtlebot_ws/src
cd ~/turtlebot_ws/src
git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git

2.2返回上级包编译

cd ..
catkin_make

2.3 添加环境变量

source /turtlebot_ws/devel/setup.bash

2.4 建图过程

1)首先将Rplidar连接到电脑上
2)ctrl alt +t 打开终端,输入
 检查rplidar的串行端口的权限

$ ls /dev/ttyUSB* 或者 $ls -l /dev|grep ttyUSB

 添加写权限(例如/ dev / ttyUSB0)

$ sudo chmod 666 /dev/ttyUSB0

3)测试扫描界面

$ roslaunch rplidar_ros view_rplidar.launch

4)slam建图

$ roslaunch rplidar_ros slam.launch         //slam.launch的代码见下文

5)保存slam得到的地图信息
  首先,需要安装map_server包。由于melodic中没有提供map_server的安装方法,而map_server存在于navigation包中,于是我们通过安装navigation包来安装map_server包。

$ sudo apt install ros-melodic-navigation

然后,保存图形。

$ rosrun map_server map_saver

3.源码

slam.launch代码:

<launch>


<node pkg="hector_mapping" type="hector_mapping" name="hector_mapping" output="screen">
<!-- Frame names -->
<param name="pub_map_odom_transform" value="true"/>
<param name="map_frame" value="map" />
<param name="base_frame" value="base_link" />
<param name="odom_frame" value="base_link" />


<!-- Tf use -->
<param name="use_tf_scan_transformation" value="true"/>
<param name="use_tf_pose_start_estimate" value="false"/>


<!-- Map size / start point -->
<param name="map_resolution" value="0.05"/>
<param name="map_size" value="2048"/>
<param name="map_start_x" value="0.5"/>
<param name="map_start_y" value="0.5" />
<param name="laser_z_min_value" value = "-1.0" />
<param name="laser_z_max_value" value = "1.0" />
<param name="map_multi_res_levels" value="2" />


<param name="map_pub_period" value="2" />
<param name="laser_min_dist" value="0.4" />
<param name="laser_max_dist" value="5.5" />
<param name="output_timing" value="false" />
<param name="pub_map_scanmatch_transform" value="true" />
<!--<param name="tf_map_scanmatch_transform_frame_name" value="scanmatcher_frame" />-->


<!-- Map update parameters -->
<param name="update_factor_free" value="0.4"/>
<param name="update_factor_occupied" value="0.7" />    
<param name="map_update_distance_thresh" value="0.2"/>
<param name="map_update_angle_thresh" value="0.06" />


<!-- Advertising config --> 
<param name="advertise_map_service" value="true"/>
<param name="scan_subscriber_queue_size" value="5"/>
<param name="scan_topic" value="scan"/>
</node>


<node pkg="tf" type="static_transform_publisher" name="base_to_laser_broadcaster" args="0 0 0 0 0 0 /base_link /laser 100"/>


  <node pkg="rviz" type="rviz" name="rviz"
    args="-d $(find hector_slam_launch)/rviz_cfg/mapping_demo.rviz"/>


</launch>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值