ROS机器人使用-实现slam建模自主导航避障
Posted 唯心主义者ww
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS机器人使用-实现slam建模自主导航避障相关的知识,希望对你有一定的参考价值。
ROS机器人使用—实现slam建模、自主导航、避障
一、使用前准备工作
1.在windows中下载好远程连接工具:xshell、puty1
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机器人相关学习视频.
以上是关于ROS机器人使用-实现slam建模自主导航避障的主要内容,如果未能解决你的问题,请参考以下文章
SLAM+语音机器人DIY系列:SLAM建图与自主避障导航——3.ros-navigation机器人自主避障导航
SLAM+语音机器人DIY系列:SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图