一个机器人
我们都知道,一个机器人具有不同的结构,不同的结构具有不同的功能,承担不同的责任分区,在这些责任分区中,机器人的技术栈是相当庞大的,所以模块化在机器人编程中是相当重要的
· 模块化:模块化的思想主要在于对于功能、对象等进行封装,向外提供函数接口,这样在我们的程序中一些功能模块的复用率就会大大提升,“重复造轮子”消耗的精力也就更少,更有利于系统的搭建
而模块化的一种相当重要的体现形式就是面向对象编程(OOP),通过对于结构使用(Class/Struct)进行封装,再提结构对应函数方法,就能构成结构-功能的系统架构,再通过各个结构方法之间的API进行互联与通讯,结构优秀的算法,就可以构成一个具有一定智能的机器人架构
ROS2中的机器人
ROS2不同于计算机操作系统,但毕竟也是机器人系统。作为一个系统,ROS2同样担任着全局部署的作用
在计算机操作系统中,系统面向用户进行封装,实现了软硬件层的联结;而在ROS2系统中,系统同样通过软件层实现通讯,再将信息传输给硬件层,完成了对于机器人大脑的构建
在ROS2中,我们的结构和功能是通过一个个功能包实现的,功能包之上是工作空间(Work-Space),而功能包之下则是节点(Node)
由此可见,对于功能包的构建就是对于节点的构建,通过节点之间的通讯,对机器人的各种功能进行封装,这也就形成了我们机器人的各种功能
下一章节中,我们讲讲解如何构建简单的节点
浙公网安备 33010602011771号