• ROS机器人应用(6)—— 激光雷达建图和导航


    一、激光雷达建图

    1. 小车开机,连接WIFI,密码:dongguan。
    2. 启动激光建图(服务端)
    ssh -Y wheeltec@192.168.0.100
    roslaunch turn_on_wheeltec_robot mapping.launch 
    
    • 1
    • 2

    在这里插入图片描述

    1. 查看建图效果(客户端)
    rviz
    
    • 1

    可以使用键盘控制、APP遥控、PS2遥控、航模遥控进行控制小车运动。
    在这里插入图片描述

    在这里插入图片描述

    1. 建图完成,保存地图 (服务端)
      保存方法1:
    # 一键保存
    roslaunch turn_on_wheeltec_robot map_saver.launch 
    
    • 1
    • 2

    在这里插入图片描述

    保存方法2:

    # 打开地图路径
    cd /home/wheeltec/wheeltec_robot/src/turn_on_wheeltec_robot/map
    # 保存地图
    rosrun map_server map_saver -f 地图名
    
    • 1
    • 2
    • 3
    • 4
    1. 文件挂载,查看地图
    # 文件挂载
    sudo mount -t nfs 192.168.0.100:/home/wheeltec/wheeltec_robot /mnt
    
    • 1
    • 2

    在这里插入图片描述

    注:地图文件可以使用PhotoShop进行编辑

    建图
    mapping.launch
    小车初始化节点:turn_on_wheeltec_robot.launch
    雷达节点:rplidar.launch
    gmapping建图节点:algorithm_gmapping.launch

    二、建图算法切换及其优缺点

    • 连接小车wifi

    • 文件挂载后,建图算法的切换

    sudo mount -t nfs 192.168.0.100:/home/wheeltec/wheeltec_robot /mnt
    
    • 1

    mapping.launch 修改mapping_model 的default值
    在这里插入图片描述

    • 并进行SSH登录, 并启动建图算法。
    ssh -Y wheeltec@192.168.0.100
    
    • 1
    • gmapping
      目前比较常用的建图算法。构建大地图时所需内存和计算量都会增加,因此
      不适合构建大场景地图。因为没有回环检测,所以在回环闭合时可能会造成地图错位。
      在这里插入图片描述
    • hector
      不需要里程计,人抱着小车走也可以建图。效果不如gmapping,适合因条
      件限制没有里程计的机器人。
      在这里插入图片描述

    建图时转向速度尽量缓慢,建议0.1rad/s 以下。

    • cartographer
      直接订阅odom,不需要robot_pose_ekf。其tf 发布频率200HZ 大于
      robot_pose_ekf 的20HZ,robot_pose_ekf 发布的tf 会被覆盖。
      在这里插入图片描述
    • karto
      与gmapping 差不多,更适合用于创建大地图,同时其地图刷新比较慢。
      在这里插入图片描述

    三、自主导航

    1.小车开机,连接WIFI,密码:dongguan

    2.SSH远程登录:ssh wheeltec@192.168.0.100,密码:dongguan

    3.把小车放置在地图起点/rviz手动设置起点

    4.运行导航(服务端):
    roslaunch turn_on_wheeltec_robot navigation.launch

    5.运行rviz(客户端):
    rviz

    6.使用rviz的2DNavGoal功能

    小车不运动同时没有路径规划显示:检查.bashrc文件ip地址()


    额外补充和launch文件讲解

    1.地图文件

    2.手动发布目标点
    rostopic pub /move_base_simple/goal
    四元数
    x = ax * sin(theta/2)
    y = ay * sin(theta/2)
    z = 1* sin(180°/2) =1
    w = cos(180°/2) =0

    3.navigation.launch


    整体导航工作原理与参数配置讲解
    navigation_stack

    四、多点导航

    1.小车开机,连接WIFI,密码:dongguan

    2.SSH远程登录:ssh wheeltec@192.168.0.100,密码:dongguan

    3.把小车放置在地图起点或者rviz手动设置起点

    4.运行导航(服务端):
    roslaunch turn_on_wheeltec_robot navigation.launch

    5.运行rviz(客户端):
    rviz

    6.rviz添加path_ponit(MarkerArray数据格式)话题订阅,进行可视化

    7.使用rviz的Publish Point功能

  • 相关阅读:
    前后端 websocket 通信
    测试OpenCvSharp库的模板匹配功能
    Docker网络与资源管理
    python环境迁移:从联网笔记本到离线服务器
    Java与其他编程语言比较分析,编程语言选择与优点、缺点和适用场景详解
    安卓逆向(二)httpClient使用
    【编程题】【Scratch四级】2020.09 奇偶之和
    西方经济学第四章
    ORB-SLAM2 ---- ORBmatcher::SearchForTriangulation函数
    数学建模之预测和评价类
  • 原文地址:https://blog.csdn.net/zyw2002/article/details/127343308