美文网首页
ROS学习总概

ROS学习总概

作者: 九七大男孩 | 来源:发表于2019-01-23 10:57 被阅读0次

ROS的学习是从什么时候开始的,现在已经记不清楚了,但是可以清楚的是,笔记本多多少少已经记录了几十页了,本来不打算现在来总结ROS的,因为觉得自己现在话没有正真掌握到什么,我的想法是当自己可以清楚的建立自己的文件系统,可以熟练的写出一个node,可以熟练的构建一个自己心里想的机器人,可以给他编写代码并且能让他动起来,可以随时想到什么功能就能自己实现的时候,自己在开始去总结ROS的学习经历,去整理自己的ROS学习笔记。下午利用吃饭的空挡去跟班主任交流了一下,发现其实前期工作已经差不多完成了,是时候去整理一下自己学习ROS的思路了。
学习的过程一定要多回顾,多去总结,马不停蹄的一直接受新知识,能保证你都能消化吗?迷迷糊糊的学习,常常为了查找一个自己不知道的地方,打开的浏览页面自己都数不清,当好像是找到自己所需要的了,然后搬到自己的地方,关闭浏览页面。这样的做法对于自己来说没有真正的去学习,去消化吸收,所以改变的方法是解决了问题之后一定要回过头来去认真的看一看当时自己不懂的。

关于移动机器人拾球的那些事

首先说一下自己对于整个课题的理解,实验室前期是豪提出的一个课题“移动机器人拾球”,自己在其中担任的角色是解决路径规划方面的问题,最开始想到路径规划并没有太多自己的方案,毕竟自己没有经验,在网上看看别人的做法,打开浏览器搜索“路径规划”,马上就能搜索到关于A,D的路径规划,由于自己是第一次接触到,所以就立马拿出自己的小本本记录一切可能的知识点,后来在实验室每周一次的汇报中提出了自己的相关方案,由于时间短暂,那次的方案并没有太具有方向性,但是突然想到之前看过的TSP旅行商的问题,记得这个还是室友跟我提过的,所以在那次汇报中提出了这个想法,当时实验室其他人员一致认为是个好方法,可以值得去探究一下。
之后,我清楚的记得,花了不到两天时间就在网上找到了解决TSP方案的MATLAB的代码,于是copy过来,几乎没做什么修改就搞定了路径规划,路径规划的算法解决了于是乎想到能不能简单的在matlab上面用绘图来实现一段一段的路径仿真,这不就相当与是一个机器人在按照路径行走吗?在尝试了绘图的方法无果后,又接触到MATLAB机器人工具箱,大概花了一周的时间或许更长的时间在mathwork官网上面成功找到了我所需要的关于路径仿真的代码,经过自己的修改实现了先用遗传算法找到最优路径,然后用机器人工具箱实现路劲的仿真。
由于那段时间实验室其他人员都有自己的事情,个人在心理上已经开始全局规划这个课题了,或许自己本人就有喜欢往自己身上揽活的习惯,想要自己来实现整个流程,毕竟好奇心比较强好胜心更强,所以从接受路径仿真的时候就已经把整个拾球机器人课题作为自己的任务了。
首先是“移动机器人”这个概念,既然提到机器人,那么别人都是如何来做机器人的呢?果不其然,目前很多做机器人的都基本上是用ROS来做的,看了一些ROS相关的资料发现,不用ROS真是太遗憾了,于是开始接触,于是开始入坑,首先是用自己的虚拟机,教程是b站上面田博的课程,按照上面的流程来做没有出现太大的问题,后来发现虚拟机来跑ROS是一个极大的错误,为什么呢?电脑的显卡带不动,所有时常有黑频的状况,当时刚好实验室的付浩学弟换了新电脑,旧电脑放着也没怎么用,所以把他的电脑借过来,安装Ubuntu的linux系统,装好之后又装上ROS系统(整个装ubuntu大概花了一个星期的时间,期间也正是电力电子考试的时间,鬼能想到我是怎么坚持别人在复习我在装系统的过程),ROS 的成功安装坚定了我要搞定ROS的决心,心想装系统都解决了,还有什么是不能解决的,真的,ROS是真的难解决。
还是网上找教程,古月居的b站视频成了我唯一的资料,matlab机器人工具箱实现了一个大概的仿真过程,期待ROS可以让我实现具体的仿真,之前大概了解了ROS可以干的事情,所以希望可以有具体的实物进行仿真,古月居的视频配的有每一节的具体代码,照着他的做法我都跑了一遍,熟悉了他的一个套路,后来在他的代码上上面稍稍做了一些修改,修改的最主要的是地图方面,其他具体的代码我是改不动的,因为深感基础薄弱,大概觉得符合自己的期望就可以了。所以对于ROS仿真,可以说的方面有机器人的建模,底盘是具有二轮差速的动力学特性,配备有一个激光雷达采集环境信息,ROS系统可以编写相应的节点和发布消息,来驱动底盘控制器,通过采集激光雷达的数据和底盘里程计的数据进行slam建图,通过navigation来进行导航,后来添加了随机给坐标点来进行导航建图效果都还不错。
接下来就是对于前期所做的事情的一个总结,总结从哪几个方面入手,以下是初次总结

MATLAB上面的遗传算法解决TSP的问题

机器人拾球首先要解决的是路径规划问题,所以首先我就想到TSP的思路,TSP是什么呢?以下是解释

行商问题(最短路径问题)(英语:travelling salesman problem, TSP)是这样一个问题:给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路。它是组合优化中的一个NP困难问题,在运筹学理论计算机科学中非常重要。

其实也还要涉及到图论的相关知识,用MATLAB实现时候如下图:

  1. 遗传算法得到的路线图


    tsp.jpg
  2. 遗传算法的迭代图


    iteration.jpg

MATLAB机器人工具箱实现机器人路径仿真

第一块的路径规划完之后,机器人路径仿真是配合第一块遗传算法的,这一块需要整理的有mathwork官网上面相关知识,下面是根据遗传算法给的一个机器人仿真图,坐标与上面的不一致,因为自己是根据实际情况选取了6个坐标点,这里需要说一下,图中的机器人是具有简单动力学得结构,发散性的射线是模拟得激光雷达,在这里没有用到,图中得机器人实际路线与理论的规划路径有一些偏差,原因是机器人在行走和转弯时是有加速度和减速得过程,而且转弯是靠考虑转弯得最大角度得,这样得仿真才有实际得意义。

  1. 机器人刚出发时


    robot_1.jpg
  2. 机器人走了一半后


    robot_2.jpg

ROS仿真实现

ros wiki上面的小例程,还有古月居的相关代码原理整理。ROS的仿真还会在以后的文章中详细的说明,第一篇文章主要是奠定大纲,为以后的文章铺垫。

  1. 文件系统
  2. 节点话题的编写
  3. gazebo仿真地图的建立
  4. rviz的使用方法
  5. move_base
  6. navigation
  7. slam建图

MATLAB与ROS的通信联立

这一部分只是实现了基本操作,一些复杂的通信目前还没有尝试编写代码实现。

  1. MATLAB作为一个节点接入ROS
  2. 从MATLAB上面编写代码实现二者的通信,实现消息的收发
  3. 通过MATLAB来导航ROS机器人

相关文章

  • ROS学习总概

    ROS的学习是从什么时候开始的,现在已经记不清楚了,但是可以清楚的是,笔记本多多少少已经记录了几十页了,本来不打算...

  • UnityRuntime总概

    UnityRuntime概念 目前只研究了Android平台,所以下面讲的都是基于Android平台的首先说一下U...

  • ROS官方文档学习记录(一)

    安装完ROS系统后对官方例程进行了学习:http://wiki.ros.org/ROS/Tutorials在学习到...

  • ROS

    学习资料 ROS入门教程 本系列来自:http://wiki.ros.org/cn/ROS/Tutorials R...

  • Ros基础

    学习资料推荐ROS官方教程(中文版):http://wiki.ros.org/cn/ROS/Tutorials[h...

  • Hadoop技术总概

    Hadoop1 HDFS 解决海量数据的存储一个主节点namenode,多个从节点datanodenamenode...

  • 《刀锋》领读总概

    今天是学堂的领读课,由慕容歌老师领读毛姆的小说《刀锋》。领读内容主要是围绕毛姆的生平和创作历程来展开。 威廉·萨摩...

  • 转战ROS2.0--Apple的学习笔记

    随着对ROS的了解,发现了ROS2.0的好处,并且ROS2.0支持win10等各种平台,那么我必须直接学习ROS2...

  • 桃红葡萄酒是什么?学习关于桃红葡萄酒的一切

    WHAT IS ROSÉ WINE? LEARN ALL ABOUT ROSÉ WINE桃红葡萄酒是什么?学习关于...

  • ROS-kinetic安装(一)

    ROS-kinetic安装 前言:虽然ROS已经更新到了Melodic 版本(2018.5.23),因为是新手学习...

网友评论

      本文标题:ROS学习总概

      本文链接:https://www.haomeiwen.com/subject/mgerjqtx.html