ROS(机器人 *** 作系统)

ROS(机器人 *** 作系统),第1张

现在还只是个草稿,后面会陆续更新改正,保证大家一看就会,绝对不废

只是帮助大家理解,很多知识点只是类比推理,是有错误的,哈哈,勿喷

蛮多人在学习ROS的时候,其实还是不太理解什么是ROS,为什么要去ROS,以及怎么样去学习ROS,我大二的时候开始接触到ROS,也经历过比较痛苦的一段时间,所以希望用这篇文章来帮助大家对ROS有一个较好的理解。

首先我们抛开ROS来说,如果我们要写一个程序,程序需要完成特定的功能,就拿C语言中的加法函数来说吧。我们定义了一个加法函数,输入两个整数最后返回两个整数的和,然后定义完函数以后,在main()函数里调用这个加法函数,就可以在键盘上输入两个整数,然后计算两个整数的和了。

那么问题来了   如果我要在别的程序需要使用加法函数所返回的值,应该怎么做呢?

一种方式  定义一个全局变量,将加法函数返回的值赋给这个全局变量,那么在一个工程文件下的程序都可以使用这个全局变量了,这就达到了其他程序使用这个变量的目的了

那么问题又来了,如果不是在同一个工程目录下的程序,要怎么样才能使用到这个加法函数的返回值呢?

一种方式  将第一个程序的加法返回值写到一个文档中,然后其他程序去读这个文件,这样也可以达到使用这个数据的目的了

上面的例子,想给大家传递的知识点就是  我们在写程序的时候,大多数人是只有一个main()函数的,也就是只有一个可执行文件,那么问题就来了,要是不同的main()函数之间需要相互使用对方的数据,那应该怎么办呢,这就引申出了程序与程序之间到交流问题,也就是通信问题。这也是ROS里面我个人觉得必须首先要搞清楚的问题。大家先理解到这个地方,然后往下看。

开始进入主题  到底什么是ROS,ROS就是Robot Operating System 的缩写,这大家都知道,对吧,翻译成中文也就是机器人 *** 作系统,可是除了这个大家对 *** 作系统是什么大家有了解过么,为什么需要 *** 作系统,也就是 *** 作系统能干什么,大家有简单的了解过么

*** 作系统(先空白,后面再填坑)

在了解 *** 作系统以后,我们就可以开始分析我们的机器人 *** 作系统了,话不多说,先放狗,不不不,先放图:
我们知道, *** 作系统本身也是一个软件,但是他的特殊之处在于能够完成对硬件的调配,而其他的应用软件,比如网易云,他如果想放歌,他需要打开播放器,是得需要 *** 作系统去完成的,它本身没有这个能力去直接打开播放器,而是对 *** 作系统说,大哥,能不能帮我打开一下播放器,求求你了,哈哈。

我们也知道,在win上安装了许许多多的软件,向上面的solidworks(三维制图软件),matalab(数据计算软件) QQ(聊天软件)   网易云 (听歌软件) 腾讯视频(播放软件)

那么问题又来了  你能让你的扣扣去跟网易云说  我想听歌,然后网易云就会打开播放么,当然你要是杠杆定理学得好,那我认了,哈哈,大多数人是应该是觉得这应该不可以,因为扣扣怎么跟网易云通信嘛,对吧。

所以我们安装在win上的各个软件只负责自己的问题,不会跟其他的软件有过多的交流。

哈哈,所以我有了一个大胆的想法,让我的电脑同时登录3个扣扣,那么这三个扣扣总该可以相互发消息了吧,没错,这就是我想要讲的东西,我只在我的电脑上安装三个软件 也就是3个扣扣软件,他们肯定是可以相互交流的。因为他们是同一类软件。

是的,ROS也是这么干的,在ROS上也安装了向扣扣这样的可执行程序,只不过在ROS中换了个说法,可执行程序叫做节点,这应该不拿理解吧。要记住在ROS上安装了许许多多的软件哦,也就是许许多多的可执行程序,也就是许许多多的节点,如果你现在理解了节点是什么了,那么恭喜你,已经迈出了一小步了,你说巧不巧,安装在ROS上的这些程序,它还可以相互通信,也就是相互交流,哈哈。

好了,理解到这一步呢就理解了节点是个什么东西了。

下面又开始了一个新的例子,我们的手机上有一个扣扣,我们需要和其他人聊天对吧,那么你知道你要和别人聊天需要先做什么么,你肯定说,登录账号加好友啊,不对的,首先要做的就是把腾讯的服务器打开,不然你登录不上去的,也就是说,腾讯的服务器不打开,你是登录不上扣扣的,只不过这一步不是我们 *** 作的,人家的服务器他已经给我门打开了,然后我们再登录扣扣,想一下,我们在登录的时候,做了什么,对吧,大家都知道,我们也就是输入账号密码就可以登录了吧对吧,这个过程呢就是向腾讯的服务器注册自己的信息,告诉腾讯服务器,我上线了,然后腾讯服务器就把你加入到注册表中,里面包含了你的一些信息,你想要和别人连天,那么别人是不是也要跟你一样,也要先登录,过程和你的一样,所以这个时候,腾讯服务器那边是已经有了你和你想要聊天的对象的一些信息的,比如ip地址之类的东西,这样,你想发消息给你的朋友(后面再填坑)

类比一下 服务器 就相当于ROS里面的ros master

只不过这个rosmaster需要我们自己开启而已。

事实上,ros并不是一个 *** 作系统,他并不能直接运行在硬件之上,只不过他把硬件做了一个给 *** 作系统的接口  和网易云一样   网易云大不了就使用一个喇叭呗,只不过ros使用了太多的硬件,比如激光雷达,相机,编码器,imu等等。

因此ROS本身也就是一个软件,和qq一样,运行在 *** 作系统之上,所不同的是,在ROS上又可以安装许许多多的同类软件,这些安装在ROS上的程序(节点)之间可以按照ROS所规定的通讯机制进行相互交流通讯。比如激光雷达节点(程序)通过ROS提供的接口,让 *** 作系统把激光数据传上来,交给建图所需要的Gmapping节点使用,然后Gmaping节点把所构建的地图给move_base节点使用,move_base节点的输入是一个速度和角度的命令,先由move_base下发给ros,然后ros下发给 *** 作系统,然后 *** 作系统调用硬件,在这里是电机,让电机按照ROS下发的速度的角速度进行运动

大家应该会有一点点理解了吧

总结下  就是ros是一个类似于win上的一个软件,但是这个软件上又安装了很多软件,在ros上安装的这些软件可以相互通信,然后可以借助ROS,去调用 *** 作系统去调用硬件。

这就是为什么我们每次想要聊天的时候,需要先打开qq这个软件,也就是我们想要用ROS的时候,先运行roscore这个命令打开ROS了吧

接下来是 

ros中的通讯方式

ros中的一些工具

ros中的一些已经有了的功能包(算法)
慢慢写,不着急

一:安装
1、光盘版的(转自雨纷飞大哥作品)
将iso文件刻录成可引导光盘。机器的硬盘设置为IDE0,即第一个IDE通道的主盘。
bios设置光盘引导系统,放入光盘启动机器得到如下
选择 2:Install RouteOS 2818后稍等,得到如下画面:
用方向键和空格选择你需要的模组功能后,按”A”全选,摁“i“键确定安装。会再次询问你继续?yes or no,摁“Y“
然后又问:do you want to keep lod configuraton你需要保留旧的结构么摁“N
然后开始自动的格式化磁盘、安装核心、安装模组。最后提示:
Press ENTER to Reboot,按回车重新启动机器。
重新启动后出现图1的那个引导画面(如果没有出现而直接进了登陆界面说明用硬盘引导了):
选择3: Crack RouteOS Floppy Disk,开始破解。
破解过程都是中文的。如果你的硬盘在IDE0:0的话破解是不会有问题的。否则可能出现系统文件被破坏、启动时0123456循环出现等问题。
问你是否重启呢。把光盘拿出来后按下Y确定重启动
重新启动后开始登陆。初始用户名admin,初始密码为空。
咦?怎么还有提示注册的信息和Soft ID?
原来是还需要一个命令激活注册补丁才可以哦:
输入命令:/system license import file-name=key
或者缩写为/sy lic i f key
然后提示你是否重新启动。按Y重新启动
重新启动并用admin:““登陆后发现,提示注册的信息已经完全消失了,现在是正式版了
现在服务器启动起来了,但是还没有任何配置,若想用winbox对其进行控制,则必须激活和配置网卡的ip 掩码等。这里我装了三块网卡,一块接电信,一块接网通,一块路由后接内网交换机。
首先看看三块网卡是否都被识别出来了,命令是:
/interface
print
可以缩写为
/int
pri
以后用缩写不再另外注名。
结果应该如下图:
然后我们来激活他们,命令是:
ENABLE 0
ENABLE 1
ENABLE 2
0是第一块网卡。
激活后没有提示。用print命令查看后发现网卡前面的X变成R,就代表激活成功了。
如下图
但是ether1 ether2之类的名字实在是抽象不便于以后的配置,所以我们把网卡给改个名字:
命令:
SET 0 NAME=newname

本人小白一枚,记录自己安装ROS 系统碰到的各种问题,以及到最后成功安装的过程。

刚开始安装的时候也参考各种网络上别人安装的方法安装,出现各种问题,在配置ubuntu 安装源时出现

E: Malformed entry 60 in list file /etc/apt/sourceslist (Component)

E: The list of sources could not be read

等等,都是源配置问题。

下面是本人最后安装成功的步骤。

Ubuntu 1804  对应的ROS 版本是melodic

>第一个问题可能肯定的告诉你,一点问题也没有!我装的UBUNTU就能使,而且是最新的EXT4,当然也有SWAP分区!
第二个问题:你在创建虚拟机的时候能选择是使用SATA模式或者是IDE模式的硬盘!
第三个问题:你可能通过在虚拟机中把BIOS设置成从光驱启动,然后使用PE镜像试下!至于能不能支持,就要看你GHOST的版本了!估计应该不成问题!这个没有亲自试过!
在虚拟机中网卡不是问题,可以另外的虚拟机出来!通过在虚拟机的设置中添加设备来实现!
祝你好运吧!
你可以这样再添加一个虚拟网卡,我用的是英文版,你可以参考你的虚拟机软件 *** 作!VM>> SETTINGS>>HARDWARE>>ADD>>NETWORK ADAPTER》》选择接入模式(按照需要选择桥接模式)>>FINISH应该能添加进去了!温馨提示: *** 作的时候要在虚拟机电源关闭的情况下进行,否则不能完成! 至于你说的实现网吧的模式,就要另外再建几个不同的虚拟机来实现了,可能为其它的虚拟机指定相同的一个网上,这样就相当于物理上的网线连接了! 我玩的时候用的是海蜘蛛!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13381107.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存