• ROS1云课→26机器人Gmapping等环境地图构建


    ROS1云课→25机器人控制配置 


    机器人感知模块和控制模块都ok啦,那么进入到机器人环境感知算法部分了。

    如何学习SLAM(如Gmapping算法等)。

    最近,引入了 Rao-Blackwellized 粒子滤波器作为解决同时定位和建图(SLAM) 问题的有效手段。 这种方法使用粒子过滤器,其中每个粒子都带有一个单独的环境图。 因此,一个关键问题是如何减少粒子的数量。 Gmapping提出了自适应技术来减少 Rao-Blackwellized 粒子滤波器中的粒子数量,以学习网格图。 Gmapping提出了一种计算准确提议分布的方法,该方法不仅考虑了机器人的运动,还考虑了最近的观察结果。 这大大降低了过滤器预测步骤中机器人姿势的不确定性。 此外,Gmapping采用一种方法来选择性地执行重新采样操作,从而严重减少了粒子耗尽的问题。

    中文资料(视觉SLAM十四讲(推荐新版) 高翔):

    视觉SLAM十四讲从理论到实践第二版源码调试笔记(理论基础1-6章)

    视觉SLAM十四讲从理论到实践第二版源码调试笔记(实践应用7-14章) 

    英文资料(openslam-org.github.io):

    左侧是 


    各类算法,点击可查看详细内容,依据此学习即可。 

    蓝桥ROS中依次输入如下:

    使用一台机器人启动 STDR 模拟器

    使用stdr_launchers中提供的启动器之一。在终端运行中:

    $ roslaunch stdr_launchers server_with_map_and_gui_plus_robot.launch
    

     

     

     

    运行 slam_gmapping 节点

    如果还没有安装gmapping ,则需要先安装。默认情况下,Gmapping 将生成的地图发布到/map主题,该主题与 STDR 模拟器用于静态地图的/ map主题冲突。必须改变它,否则模拟器会崩溃。在新终端中运行以下命令开始 gmapping:

    $ rosrun gmapping slam_gmapping scan:=/robot0/laser_0 _base_frame:="/robot0" map:=/gmapping/map
    

    安装gmapping

    1. shiyanlou:~/ $ rosrun gmapping slam_gmapping scan:=/robot0/laser_0 _base_frame:="/robot0" map:=/gmapping/map
    2. [rospack] Error: package 'gmapping' not found
    3. shiyanlou:~/ $ gedit init.sh [21:44:42]
    4. (gedit:787): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.vfs.UDisks2VolumeMonitor is not supported
    5. (gedit:787): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
    6. shiyanlou:~/ $ chmod +x init.sh [21:46:46]
    7. shiyanlou:~/ $ ./init.sh [21:46:55]
    8. OK
    9. \u547d\u4e2d:1 http://mirrors.cloud.aliyuncs.com/ubuntu xenial InRelease
    10. \u83b7\u53d6:2 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates InRelease [99.8 kB]
    11. \u83b7\u53d6:3 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security InRelease [99.8 kB]
    12. \u5ffd\u7565:4 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu xenial InRelease
    13. \u83b7\u53d6:5 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu xenial Release [3,810 B]
    14. \u83b7\u53d6:6 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu xenial Release.gpg [833 B]
    15. \u83b7\u53d6:7 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates/main Sources [665 kB]
    16. \u83b7\u53d6:8 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates/universe Sources [548 kB]
    17. \u83b7\u53d6:9 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates/main amd64 Packages [2,560 kB]
    18. \u83b7\u53d6:10 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates/universe amd64 Packages [1,544 kB]
    19. \u83b7\u53d6:11 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security/main Sources [311 kB]
    20. \u83b7\u53d6:12 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security/universe Sources [256 kB]
    21. \u83b7\u53d6:13 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security/main amd64 Packages [2,051 kB]
    22. \u83b7\u53d6:14 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security/universe amd64 Packages [984 kB]
    23. \u83b7\u53d6:15 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu xenial/main amd64 Packages [854 kB]
    24. \u83b7\u53d6:16 http://packages.ros.org/ros2/ubuntu xenial InRelease [4,668 B]
    25. \u83b7\u53d6:17 http://packages.ros.org/ros2/ubuntu xenial/main amd64 Packages [131 kB]
    26. \u83b7\u53d6:18 http://packages.ros.org/ros2/ubuntu xenial/main arm64 Packages [131 kB]
    27. \u5df2\u4e0b\u8f7d 10.2 MB\uff0c\u8017\u65f6 11\u79d2 (917 kB/s)
    28. \u6b63\u5728\u8bfb\u53d6\u8f6f\u4ef6\u5305\u5217\u8868... \u5b8c\u6210
    29. \u6b63\u5728\u5206\u6790\u8f6f\u4ef6\u5305\u7684\u4f9d\u8d56\u5173\u7cfb\u6811
    30. \u6b63\u5728\u8bfb\u53d6\u72b6\u6001\u4fe1\u606f... \u5b8c\u6210
    31. \u6709 698 \u4e2a\u8f6f\u4ef6\u5305\u53ef\u4ee5\u5347\u7ea7\u3002\u8bf7\u6267\u884c \u2018apt list --upgradable\u2019 \u6765\u67e5\u770b\u5b83\u4eec\u3002
    32. shiyanlou:~/ $ sudo apt install ros-kinetic-gmapping [21:47:14]
    33. \u6b63\u5728\u8bfb\u53d6\u8f6f\u4ef6\u5305\u5217\u8868... \u5b8c\u6210
    34. \u6b63\u5728\u5206\u6790\u8f6f\u4ef6\u5305\u7684\u4f9d\u8d56\u5173\u7cfb\u6811
    35. \u6b63\u5728\u8bfb\u53d6\u72b6\u6001\u4fe1\u606f... \u5b8c\u6210
    36. \u5c06\u4f1a\u540c\u65f6\u5b89\u88c5\u4e0b\u5217\u8f6f\u4ef6\uff1a
    37. ros-kinetic-openslam-gmapping
    38. \u4e0b\u5217\u3010\u65b0\u3011\u8f6f\u4ef6\u5305\u5c06\u88ab\u5b89\u88c5\uff1a
    39. ros-kinetic-gmapping ros-kinetic-openslam-gmapping
    40. \u5347\u7ea7\u4e86 0 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u65b0\u5b89\u88c5\u4e86 2 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u8981\u5378\u8f7d 0 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u6709 698 \u4e2a\u8f6f\u4ef6\u5305\u672a\u88ab\u5347\u7ea7\u3002
    41. \u9700\u8981\u4e0b\u8f7d 263 kB \u7684\u5f52\u6863\u3002
    42. \u89e3\u538b\u7f29\u540e\u4f1a\u6d88\u8017 1,328 kB \u7684\u989d\u5916\u7a7a\u95f4\u3002
    43. \u60a8\u5e0c\u671b\u7ee7\u7eed\u6267\u884c\u5417\uff1f [Y/n] y
    44. \u83b7\u53d6:1 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu xenial/main amd64 ros-kinetic-openslam-gmapping amd64 0.1.2-0xenial-20191214-001421+0000 [88.8 kB]
    45. \u83b7\u53d6:2 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu xenial/main amd64 ros-kinetic-gmapping amd64 1.3.10-0xenial-20210503-142648-0800 [174 kB]
    46. \u5df2\u4e0b\u8f7d 263 kB\uff0c\u8017\u65f6 0\u79d2 (394 kB/s)
    47. \u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 ros-kinetic-openslam-gmapping\u3002
    48. (\u6b63\u5728\u8bfb\u53d6\u6570\u636e\u5e93 ... \u7cfb\u7edf\u5f53\u524d\u5171\u5b89\u88c5\u6709 185892 \u4e2a\u6587\u4ef6\u548c\u76ee\u5f55\u3002)
    49. \u6b63\u51c6\u5907\u89e3\u5305 .../ros-kinetic-openslam-gmapping_0.1.2-0xenial-20191214-001421+0000_amd64.deb ...
    50. \u6b63\u5728\u89e3\u5305 ros-kinetic-openslam-gmapping (0.1.2-0xenial-20191214-001421+0000) ...
    51. \u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 ros-kinetic-gmapping\u3002
    52. \u6b63\u51c6\u5907\u89e3\u5305 .../ros-kinetic-gmapping_1.3.10-0xenial-20210503-142648-0800_amd64.deb ...
    53. \u6b63\u5728\u89e3\u5305 ros-kinetic-gmapping (1.3.10-0xenial-20210503-142648-0800) ...
    54. \u6b63\u5728\u8bbe\u7f6e ros-kinetic-openslam-gmapping (0.1.2-0xenial-20191214-001421+0000) ...
    55. \u6b63\u5728\u8bbe\u7f6e ros-kinetic-gmapping (1.3.10-0xenial-20210503-142648-0800) ...
    56. shiyanlou:~/ $ [21:51:15]
    1. shiyanlou:~/ $ rosrun gmapping slam_gmapping scan:=/robot0/laser_0 _base_frame:="/robot0" map:=/gmapping/map
    2. [ INFO] [1662990795.178719229]: Laser is mounted upwards.
    3. -maxUrange 4.08 -maxUrange 4.08 -sigma 0.05 -kernelSize 1 -lstep 0.05 -lobsGain 3 -astep 0.05
    4. -srr 0.1 -srt 0.2 -str 0.1 -stt 0.2
    5. -linearUpdate 1 -angularUpdate 0.5 -resampleThreshold 0.5
    6. -xmin -100 -xmax 100 -ymin -100 -ymax 100 -delta 0.05 -particles 30
    7. [ INFO] [1662990795.190358262]: Initialization complete
    8. update frame 0
    9. update ld=0 ad=0
    10. Laser Pose= 1 2 0
    11. m_count 0
    12. Registering First Scan

    启动 stdr_obstacle_avoidance 节点以自主移动机器人

    将使用stdr_samples包提供的stdr_obstacle_avoidance节点。可以使用任何发布geometry_msgs/Twist消息的导航包,例如move_base。要启动stdr_obstacle_avoidance节点,请在新终端中运行:

    $ rosrun stdr_samples stdr_obstacle_avoidance robot0 laser_0

    运行 rviz 可视化生成的地图

    可以运行rviz并订阅/gmapping/map主题以可视化地图,或者可以使用stdr_launchers包提供的启动器并更改订阅的主题。在新终端中,运行:

    $ roslaunch stdr_launchers rviz.launch

     

    推荐ROS小课堂的stdr教程。


  • 相关阅读:
    Centos8上部署MySQL主从备份
    支持向量机(SVM)----sklearn库的应用
    深度学习入门:针对deep-learning-for-image-process文件的学习
    基于YOLOv5的双目测距——代码讲解
    代码随想录算法训练营第23期day27|93.复原IP地址、78.子集、90.子集II
    剑指offer(C++)-JZ29:顺时针打印矩阵(算法-模拟)
    el-select下拉框文字溢出,...并显示tooltip
    力扣-python-两数之和
    项目整体管理
    好好学习第一天:手写数字识别
  • 原文地址:https://blog.csdn.net/ZhangRelay/article/details/126823108