操作系统选择
使用ROS进行机器人开发一般需要机器人和工作台两部分。在实际机器人之上运行的SLAM的性能(比如功耗、实时性、兼容性等)大多与机器人主机硬件架构及操作系统有关。
![](https://img-blog.csdnimg.cn/70ffc4d7d91b4d24b46157a61d7477a2.png)
什么是ros
面试就说ros机器人开发平台。
分布式通信≈进程通信+网络通信。
![](https://img-blog.csdnimg.cn/c29b5ea19d02494e8dafaddb1cad07d2.png)
ros只是一个中间件。机器人开发基于slam的应用比较方便。像redis一样,你可以不用,只用mybatis。
![](https://img-blog.csdnimg.cn/68cc7eb4d17c453c98f9b11d3db3ecef.png)
ros系统结构
计算图
ros中节可以理解成进程。节点间的通信可以理解成进程通信。roscore就是启动主节点(master)的。
![](https://img-blog.csdnimg.cn/4e8596cb3adf49e6883e8c7db159a142.png)
用户工作空间
下图中
1. 非标准指的是用户自定义。
2. 源文件目录cpp文件编译后就是节点。
3. rosrun rviz rviz 这个命令第一个rviz是功能包,第二个是节点。
![](https://img-blog.csdnimg.cn/a08297f310e94807aef24f3ea6fffb4f.png)
节点通信原理
RPC(remote procedure call 远程程序调用) RPC解释很好
1. 解决分布式系统中,服务之间的调用问题。
2. 远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。
这也和前面说rpc是分布式通信框架相联系,让一个节点可以调用另一个节点的函数。
![](https://img-blog.csdnimg.cn/1972f8f924cd442b8282db4244042c02.png)