编程思想:消息是ROS程序的一等公民。
碎碎念:Hello米娜桑,这里是英国留学中的杨丝儿。我的博客技术点集中在机器人、人工智能可解释性、数学、物理等等,感兴趣地点个关注吧,持续高质量输出中。
graph TB
subgraph 程序相关
C[多线程]-->
F[面向过程普通节点]
C-->G[面向对象服务节点]
end
graph TB
subgraph 节点相关
A[主节点]---
B[分布式]---
H[命名空间概念]---A
end
subgraph 消息相关
D[通信策略]---
E[消息对象]---D
end
ROS 2.0 主要是为了让 ROS 符合工业级的运行标准,采用了 DDS 这个工业级别的中间件股则可靠的额通信。
ROS是一个软件框架,备选的语言有python和C++。但是需要注意的是,不管是哪种语言的环境,都需要按照官方文档中的安装方法进行安装和配置。
如果不这样做,那么,举例来讲,ROS1同时使用Python3和Python2的问题就很难解决了。
推荐使用Linux系统环境,因为频繁的终端操作。同时不建议使用命令行插件进行辅助开发,ROS自带的catkin工具已经足以满足开发需要。
可以阅读一下:【机器人】开发系统镜像制作指南
首先OS,也就是操作系统的定义是要与系统硬件交互,并提供一套用户使用的方法。ROS不具备这样的性质,但是因为在机器人硬件设备上,对外暴露出来的不是底层运行的正常OS而是在OS之上的ROS,所以感觉ROS也是一个OS,负责控制系统硬件。
就是因为这样的性质,我们使用ROS间接得控制系统底层硬件,所以叫做中间件。
这个并不是ROS需要考虑的问题,根据平台的不同,我们使用的桥接方法也不尽相同。但是为了保证程序的泛用性,我们在命令行中通过重命名消息实现软硬件节点的通信。
ROS中,python相关的依赖是rospy,而C++就是roscpp。
可以从下面几个指令开始了解:rqt_graph
、rostopic
、rosmsg
、rosservice
、rossrv
。