美文网首页ROS
[转载]turtlebot2+激光雷达

[转载]turtlebot2+激光雷达

作者: dopami | 来源:发表于2017-11-21 16:32 被阅读47次

    FBI Warnin:按照该篇操作在ros kinetic 上没有成功!!!

    原文链接:http://blog.csdn.net/eaibot/article/details/51219032

    turtlebot的程序默认搭载xtion或kinect深度摄像头。现在我们把它修改为激光雷达。市面上可选的激光雷达有:Hokuyo、Sick和Rplidar 一代。我们以Rplidar为例进行讲解。

    创建turtlebot工作空间

    安装依赖包

    sudo apt-getinstall ros-indigo-joy

    sudo apt-getinstall ros-indigo-turtlebot-msgs

    sudo apt-getinstall ros-indigo-turtlebot

    sudo apt-getinstall ros-indigo-yocs-velocity-smoother

    sudo apt-getinstall ros-indigo-turtlebot-rviz-launchers

    下载源码包

    mkdir -p  ~/turtlebot_ws/src

    cd  ~/turtlebot_ws/src

    ## 激光雷达rplidar 一代驱动

    git clone https://github.com/robopeak/rplidar_ros.git

    cd rplidar_ros

    git checkout 1.0.1

    ## turtlebot建图依赖包

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

    git clone https://github.com/ros-perception/slam_gmapping

    git clone https://github.com/ros-perception/openslam_gmapping

    git clone https://github.com/ros-planning/navigation.gi

    编译

    cd ~/turtlebot_ws

    catkin_make

    添加环境变量

    在~/.bashrc最后添加一行:

    source /home/harney/turtlebot_ws/devel/setup.bash

    然后刷新配置

    source ~/.bashrc

    串口访问全限

    创建turtlebot的串口别名

    新建/etc/udev/rules.d/57-kobuki.rules,内容如下:

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

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

    $ sudo usermod -a -G dialout 用户名

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

    $ sudo service udev reload

    $ sudo service udev restart

    修改文件

    修改~/turtlebot_ws/src/turtlebot_apps/turtlebot_navigation/launch/gmapping_demo.launch,内容如下:

    修改~/turtlebot_ws/src/turtlebot_apps/turtlebot_navigation/launch/includes/gmapping.launch.xml,内容如下:

    运行launch,创建地图

    进行控制机器人行走进行制图

    roslaunch turtlebot_navigation gmapping_demo.launch

    roslaunch turtlebot_teleop keyboard_teleop.launch

    建好地图之后我们将map保存

    rosrun map_server map_saver -f 地图的保持位置

    通过下面命令查看实时地图绘制

    roslaunch turtlebot_rviz_launchers view_navigation.launch

    如果通过远程查看实时地图绘制,除了在终端指定ROS_MASTER_URI的IP外,还需在/etc/hosts为ros的master主机和远程机器相互配置对方的ip和对应的主机名。

    export ROS_MASTER_URI=http://192.168.xx.xx:11311

    录制数据包和建图

    我们也可以录制数据包用于后续建图使用。

    方法如下:

    1.创建文件~/turtlebot_ws/src/rosbag/recore_bag.launch

    2.创建文件~/turtlebot_ws/src/rosbag/gmapping_bag.launch

    使用方法

    在一个终端运行下面程序控制底盘的移动

    cd~/turtlebot_ws/src/rosbagroslaunch recore_bag.launch

    在另一个终端运行下面程序记录数据

    rosrun rosbag record -a

    录制完成后,用CTL+C取消结束数据的记录

    最后,修改对应的bag文件,根据录的rosbag进行gmapping生成地图

    cd ~/turtlebot_ws/src/rosbag

    roslaunch gmapping_bag.launch

    ———-其他的说明——————–

    如何确定Rplidar和turtlebot的坐标关系

    Rplidar的坐标系:三角形的电机为X轴的正向,顺时针90度为Y轴的正向,因为是二维激光,没有Z轴。

    turtlebot坐标系:右手原则, 前方(带碰撞挡板)X轴的正向,逆时针90度为Y轴的正向,朝上为Z轴的正向。

    由于Rplidar的坐标系和turtlebot坐标系不一致,所以需要沿X轴做180度旋转。

    我们安装Rplidar的方法: 把Rplidar固定在turtlebot上方的最中心的位置,Rplidar三角形电机的朝向和turtlebot 前方碰撞挡板的中心位置一致,测量Rplidar和turtlebot底座的高度为20cm。

    发布Rplidar和turtlebot的坐标关系有两种方式:

    方式一:

    方式二:

    在turtlebot_description/urdf/turtlebot_library.urdf.xacro的标签之前加入如下内容

    相关文章

      网友评论

        本文标题:[转载]turtlebot2+激光雷达

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