美文网首页ROS
【转载】Turtlebot入门教程-激光雷达(Rplidar)g

【转载】Turtlebot入门教程-激光雷达(Rplidar)g

作者: dopami | 来源:发表于2017-11-21 10:01 被阅读333次

    原文链接:http://www.ncnynl.com/archives/201611/1095.html

    Turtlebot入门教程-激光雷达(Rplidar)gmapping构建地图

    说明

    介绍Turtlebot搭载激光雷达(Rplidar)通过gmapping构建地图

    准备

    测试环境ubuntu14.04 + indigo

    已安装Turtlebot包,具体安装:deb包安装|源码安装

    依赖包:

    Turtlebot应用包,https://github.com/ncnynl/turtlebot_apps.git

    激光雷达rplidar一代驱动,https://github.com/ncnynl/rplidar_ros.git

    步骤

    建立工作空间(也可以利用现有的),编译包

    $ mkdir -p  ~/turtlebot_ws/src

    $ cd  ~/turtlebot_ws/src

    ## 激光雷达rplidar一代驱动

    $ git clone https://github.com/ncnynl/rplidar_ros.git

    ## turtlebot建图依赖包

    $ git clone https://github.com/turtlebot/turtlebot_apps

    #编译

    $ cd  ~/turtlebot_ws

    $ catkin_make

    添加环境变量,在~/.bashrc最后添加一行:

    $ source /home/ubu/turtlebot_ws/devel/setup.bash

    刷新配置

    $ source ~/.bashrc

    $ rospack profile

    创建激光雷达(Rplidar)的串口别名

    确认idVendor和idProduct,ID后面的部分idVendor:idProduct

    $ lsusb

    Bus 001 Device 006: ID 10c4:ea60

    新建 /etc/udev/rules.d/rplidar.rules文件,内容如下:(别名为rplidar,实际名称为:/dev/rplidar)

    KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout",  SYMLINK+="rplidar"

    增加当前用户对串口的默认访问权限:

    $ sudo usermod -a -G dialout 用户名

    使UDEV配置生效:(使串口的默认访问权限生效,需要重启机器)

    $ sudo service udev reload

    $ sudo service udev restart

    制作雷达驱动启动文件

    复制rplidar.launch到rplidar-laser.launch,并增加TF定义

    $ roscd turtlebot_navigation

    $ mkdir -p laser/driver

    $ sudo cp ~/turtlebot_ws/src/rplidar_ros/launch/rplidar.launch laser/driver/rplidar_laser.launch

    打开rplidar_laser.launch,并修改

    $ rosed turtlebot_navigation rplidar_laser.launch

    检查frame_id是否指定为laser

    查看serial_port是否指定正确端口,使用别名

    检查端口:,设置好别名,或直接端口/dev/ttyUSB0

    增加TF:

    修改为args="0.0 0.0 0.18 0 0.0 0.0 为自己的实际安装位置。详情查看,static_transform_publisher部分

    static_transform_publisher x y z qx qy qz qw frame_id child_frame_id  period_in_ms

    这里我假设底盘的中心点为0,雷达放在机器人托盘中心位置,X为0,高度为18CM,Z为0.18m

    TF的单位使用米的,测量单位是CM

    完整代码如下:

    检查turtlebot_navigation包

    增加rplidar_gmapping_demo.launch文件,用于启动gmapping.

    $ roscd  turtlebot_navigation

    $ touch  launch/rplidar_gmapping_demo.launch

    $ rosed  launch/rplidar_gmapping_demo.launch

    输入内容:

    设置laser_type为rplidar.

    增加rplidar_gmapping.launch.xml文件,执行gmapping建图

    $ roscd  turtlebot_navigation

    $ touch  launch/includes/gmapping/rplidar_gmapping.launch.xml

    $ rosed  launch/includes/gmapping/rplidar_gmapping.launch.xml

    输入内容:

    make the starting size small for the benefit of the Android client's memory...

    -->

    测试激光雷达gmapping构建地图

    上网本新开端口,打开roscore

    $ roscore

    上网本新开端口,启动turtlebot

    $ roslaunch turtlebot_bringup minimal.launch

    上网本新开端口,启动gmapping,用于构建地图

    $ roslaunch turtlebot_navigation rplidar_gmapping_demo.launch

    工作机或上网本新开端口,启动键盘操作Turtlebot

    $ roslaunch turtlebot_teleop keyboard_teleop.launch

    工作机或上网本新开端口,启动rviz,实时查看建图情况

    $ roslaunch turtlebot_rviz_launchers view_navigation.launch

    构建地图结束保存地图

    上网本新开端口,建立目录,保存地图

    $ mkdir -p ~/map

    $ rosrun map_server map_saver -f ~/map/rplidar_gmapping

    $ ls ~/map  #查看内容,包含rplidar_gmapping.pgm  rplidar_gmapping.yaml

    查看地图,已经生成rplidar_gmapping.pgm文件,可以用图像浏览器(gimp, eog, gthumb, 等等)打开查看。

    利用地图进行AMCL

    查看Turtlebot入门-自主行驶

    相关文章

      网友评论

        本文标题:【转载】Turtlebot入门教程-激光雷达(Rplidar)g

        本文链接:https://www.haomeiwen.com/subject/ezyivxtx.html