基于《ros机器人开发实践》的学习,ros建图,机器人导航
在这之前先仔细学习书中的内容,运行相关教学包,试一试这种感觉,培养自己的兴趣,觉得这个做起来还是挺有趣的,下面这些图是运行书中的展示效果:主要是ros建图,与机器人实现导航功能。
#下面小编开始自己的乐趣了,利用书中源码,实现ros建图与机器人导航功能
首先打开gazebo建立一个房间模型,建立好后如图1所示
图1 创建房间模型 |
将创建好的房间模型,保存到自己的工作空间下,需要注意的是房间模型放在gazebo的坐标中间,因为等下要引入小车模型,小车定义的点是(0,0,0)点,所以放在中间的同时,还要将坐标原点留出来。然后需要在launch文件中链接自己所画的模型,需要进行相关的设置。另外launch文件中需要添加自己创建的四轮小车的模型,小车模型如图2所示,一切准备就绪后,使用以下指令启动gazebo仿真环境和gamapping节点
roslaunch mrobot_gazebo mrobot_laser_nav_gazebo.launch
roslaunch mrobot_navigation gmapping_demo.launch
运行成功后,可以在rviz中查看传感器和地图构建的实时信息,周围的红点是激光雷达传感器实时检测到的环境信息,并且根据这些信息建立了部分已知环境的地图,呈现浅灰色。
图2 四轮小车模型
我们可以让机器人动起来,在观察:
roslaunch mrobot_teleop mrobot_teleop.launch
这样通过机器人的不断运动,获取的环境信息也不断更新,这样地图也不断更新,并且gmapping会自动校正之前建立的地图和机器人的位置偏差。最终在rviz中生成map如图3所示。
图3 基于雷达的gmapping SLAM的最终仿真效果
地图建立完成后,使用指令保存该地图
rosrun map_sever map_saver
地图保存在当前终端的目录下,所以我们要用该地图实现自主导航,就需要把它和另外生成的map.yaml文件移到相应工作空间的map文件夹下,没有的话需要自己创建,然后在launch文件需要修改或者添加引用该map对应的yaml文件的语句。
然后运行以下指令,就可以实现自己创建的小车模型与地图下的导航功能,具体效果如图4、图5所示。
roslaunch mrobot_bringup fake_mrobot_with_laser.launch
roslaunch mrobot_navigation fake_nav_demo.launch
图4 rviz视野中的导航
图5 gazebo中机器人导航与rviz中同步
#总结一下过程中遇到的问题
过程中,遇到的问题,gazebo文件打开后,一直黑屏,寻找了很多解决方法,也进行了重装gazebo,还是没有解决,最后猛地发现不是gazebo的问题,而是因为电脑配置的问题,需要耐心等待,相关模型才显示出来(我的电脑等了6min左右,在这里我真的哭了呀,不过幸好黄天不负有心人)。另外还遇到了一个问题,相似的问题在此实验中前前后后遇到3次,需要安装不同的包,在这里举其中一个例子总结一下——
在实现导航功能过程中,
首先更新一下工作空间 ros_exploring与arbotix
再运行——
roslaunch mrobot_bringup fake_mrobot_with_laser.launch
出现下面的报错:
ERROR: cannot launch node of type[arbotix_python/arbotix_driver]:arbotix_pythonROS path [0]=/opt/ros/kinetic/share/rosROS path [1]=/home/yukun/ros_exploring/srcROS path [2]=/opt/ros/kinetic/share
用以下语句检查有无arbotix_python package
roscd arbotix_python
没有则用下面的指令安装arbotix_python,问题便得到解决
sudo apt-get install ros-kinetic-arbotix
需要注意的是,Ubuntu18.04与Ubuntu16.04中不同,不是用“ros-kinetic-”,而是用“ros-melodic-”。
好啦,这次就说到这里啦~
注:相关源码出自胡春旭老师的《ros机器人开发实践》,GitHub中也有托管,感兴趣的同学可以入手一波
git clone https://github.com/huchunxu/ros_exploring.git
基于《ros机器人开发实践》的学习,ros建图,机器人导航相关推荐
- ROS机器人应用(6)—— 激光雷达建图和导航
文章目录 一.激光雷达建图 二.建图算法切换及其优缺点 三.自主导航 四.多点导航 一.激光雷达建图 小车开机,连接WIFI,密码:dongguan. 启动激光建图(服务端) ssh -Y wheel ...
- ROS入门——胡春旭老师《机器人开发实践》在ROS-Melodic下的编译
入门ROS系统,网上接触到的资料大部分都跟古月有关,故买来胡春旭老师(古月)的书籍<机器人开发实践>拜读.书中对仿真以及真实机器人同步做介绍,能一步一步跟着操作下来,非常适合入门.但由于书 ...
- 《ROS理论与实践》学习笔记(九)机器人自主导航
<ROS理论与实践>学习笔记(九)机器人自主导航 课程内容 ROS中的导航框架 导航框架中的关键功能包 move_base amcl 机器人自主导航案例 导航仿真 程序接口 move_ba ...
- 机器人操作系统ROS—深度相机+激光雷达实现vSLAM建图与导航 转载
原文:机器人操作系统ROS-深度相机+激光雷达实现vSLAM建图与导航_wx5d23599e462fa的技术博客_51CTO博客 这次将带大家学习如何使用深度相机实现机器人的视觉SLAM建图及导航. ...
- ROS理论与实践——二、ROS基础
ROS理论与实践--二.ROS基础 前言 一.创建工作空间 1 什么是工作空间 2 创建流程 二.创建功能包 1 创建命令 2 创建流程 三.ROS通信编程 1 话题编程 1.1 话题编程流程 1.2 ...
- 古月居 机器人开发实践源码 编译报错问题解决方法
ubuntu:16.04.7 ros:kinetic 移植<机器人开发实践>源码包 ros_exploring,出现的问题都包含于以下内容中. 书中提到,如果将源码包 ros_explor ...
- 《疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践》学习笔记
<疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践>学习笔记 二〇一九年二月十三日星期三2时28分54秒 前提:本书适合有初步HTML.CSS.JavaScri ...
- 为什么您应该使用基于标准的开发实践
为什么您应该使用基于标准的开发实践 Why you should use standards-based development practices (even if you don't have t ...
- 物联网竞赛-基于CC2530寄存器开发-基础知识学习
基于CC2530寄存器开发-基础知识学习 一.C语言基础知识学习 二.单片机基础知识学习 三.CC2530数据手册的使用 四.常用到的寄存器或函数 1.常用到的寄存器 2.常需要用到的宏.自定义的函数 ...
最新文章
- Python3 configparser 中文乱码
- MPLS原理之MPLS基本结构—Vecloud微云
- as3.0 比较两个数组
- echart php mysql简书_echarts-自定义构建
- 在區塊鏈上建立可更新的智慧合約(二)
- origin遇到不适当的参数_Origin教程|如何更改Lable和设置非均匀坐标
- Java飞行记录器(JFR)
- c语言过磅系统,为什么要用无人值守_自动过磅系统?
- 机器学习笔记——随机森林
- 35岁以后,被社会无情抛弃,放下面子赚钱
- Install deepin-wine QQ inside a docker image in Ubuntu 20.04
- 联想thinkpadE14 vm蓝屏问题解决
- 如何进行ERP、CRM实施时的流程梳理?
- 三分钟明白 Activiti工作流 -- java运用
- 十八新娘八十郎,苍苍白发对红妆。鸳鸯被里成双夜,一树梨花压海棠。
- CTR和CVR联合训练
- 什么浏览器最好用,五款浏览器对比那个最好?
- 十一个Python在线学习网站
- chatgpt-mirai-qq-bot
- javaScript函数的定义和arguments,result关键字
热门文章
- Hooks(钩子)监听消息的方法
- golang前后端分离框架
- midi键盘接电脑实现电子琴功能
- C语言实现汉诺塔问题(保姆式讲解)
- [nRF52832开发板:Nordic Thingy:52]Nordic Thingy:52到手
- Cisco ❀ 二层交换安全技术
- 不断的学习,不断的思考
- 【Mapreduce】Mapreduce实例——WordCount
- 电脑怎么直接给服务器传文件夹,教你电脑怎么传文件夹给qq好友
- Gradle编译生成不同的版本,动态设定应用标题 / 应用图标 / 替换常量