ROS机器人使用-实现slam建模自主导航避障

Posted 唯心主义者ww

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS机器人使用-实现slam建模自主导航避障相关的知识,希望对你有一定的参考价值。

ROS机器人使用—实现slam建模、自主导航、避障

一、使用前准备工作

1.在windows中下载好远程连接工具:xshellputy1

2.机器人有两种模式:

模式说明
AP模式机器人自己创建一个热点,电脑端连接该热点,实现局域网互通
WiFi模式机器人和电脑同时连接一个路由器,实现局域网通信

ps:本文使用AP模式,因为用起来比较方便

3.在机器人AP模式下,用PC(personal computer,个人笔记本电脑)连接热点BingDa-Robot,密码为12345678. 电脑ip是机器人分配的(IPv4地址)

4.下载好虚拟机工具VMware1,打开bingda的虚拟机1

5.用ubuntu登录robot:

bingda@ubuntu: ssh bingda@192.168.9.1

二、完成ROS分布式通讯配置

1.先打开虚拟机→进行网络配置→ifconfig查看ubuntu和robot的ip.

2.让两个机器互ping,即在Ubuntu中打开终端,输入

bingda@ubuntu: sudo ping 192.168.9.1

用xshell登录ROS机器人后,去ping电脑

3.配置分布式,在pc端进行:

bingda@ubuntu: sudo gedit.bashrc

将ROS_MASTER_URI的ip改为机器人的ip(wifi模式下-实际ip;AP模式下-192.168.9.1)

4.配置完成后,重新加载文件:

bingda@ubuntu:sudo source.bashrc

5.这时pc和robot之间的分布式通讯就完成了,可以在pc端去订阅机器人的话题。
检查:
robot:

bingda@robot:sudo roscore 

pc:

bingda@ubuntu:sudo rostopic list //查看是否能订阅robot发布的话题

三、机器人和PC时间同步(每次机器人开机都需要校准时间!!!)

1.因为robot没有断电保护,所以每次关机重启后,它的时间不能与真实时间对应上,而我们的pc是能够连接外网,能够通过ntp服务器进行时间校准
2.如果在实验中pc没有外网环境,先帮pc获取一个外网环境,然后安装一个ntp服务器:

bingda@ubuntu:sudo apt install ntp

3.把我们的pc当成一个ntp服务器,robot去根据pc进行自身的时间校准:

bingda@robot:sudo ntpdate 192.168.x.x //每个人电脑分配的ip不同,这里以自己的pc的ip为准

4.如果发现robot无法通过pc进行时间校准,则手动校准时间:

bingda@robot:sudo date --s=" 2022-04-03 20:13:20"

注意事项:连接robot的热点的时候,因为robot自建的热点没有网络连接,所以有些windows的wifi连接会自动去寻求有网络的热点进行连接,这个时候记得对其他热点取消“自动连接”。

四、启动激光雷达

robot:
启动激光雷达

bingda@robot:roslaunch robot_navigation lidar.launch

查看发布的话题,寻找雷达/scan

bingda@robot:rostopic list

打印雷达扫描的数据

bingda@robot:rostopic echo /scan

pc:
用rviz查看图像

bingda@ubuntu:roslaunch robot_navigation lidar_rviz.launch


五、运行激光雷达

robot:
会话1:

bingda@robot:roslaunch robot_navigation robot_slam_laser.launch

pc:

bingda@ubuntu:roslaunch robot_navigation slam_rviz.launch


robot:
会话2:
查看地图文件

bingda@robot:roscd robot_navigation/maps

保存map:

bingda@robot:rosrun map_server map_saver -f map

六、运行激光雷达和避障

robot:
用的是上一张我们已经保存好的图

bingda@robot:roslaunch robot_navigation robot_navigation.launch

pc:

bingda@ubuntu:roslaunch robot_navigation navigation_rviz.launch

激光雷达扫描的障碍物基本与刚刚建立的map一致

用2D Nav Goal指向我们的目标地
robot会自动规划路径并行驶到目标点处

七、SLAM建图方法切换、局部最优路径选择、OPENCV边缘检测等

相关算法和基础知识可以去以下网站中学习:

链接: ROS机器人相关学习视频.


  1. ROS机器人用户资料_2021链接: 链接:https://pan.baidu.com/s/1aLf6yfaxrQ8WotbwxiJ8QQ
    提取码:vuu7 ↩︎ ↩︎ ↩︎

以上是关于ROS机器人使用-实现slam建模自主导航避障的主要内容,如果未能解决你的问题,请参考以下文章

冰达ROS机器人使用-实现slam建模自主导航避障

SLAM+语音机器人DIY系列:SLAM建图与自主避障导航——3.ros-navigation机器人自主避障导航

SLAM+语音机器人DIY系列:SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图

SLAM建图导航信息(仿真)

ROS系统玩转自主移动机器人-- ROS系统建模

激光slam导航轨迹怎么看