优点
1,提高软件复用率:
ros的核心目标是提高机器人的软件服用率,就是那些已经开发好的机器人软件功能包,当其他机器人需要这样的功能时,可以直接利用已有的功能包,而没有必要再去重复造轮子。这样既可以提高机器人产品开发的效率,也加速了机器人技术的快速发展。
汽车制造商不可能自己生产所有零部件。
2,全球化的社区:
ros这种开源,共享的开发模式可以集合全人类的智慧来推进机器人的智能化发展,这些智慧的结晶会以应用案例的形式在社区中沉淀下来。
3,开源开放的生态:
ROS 自身及众多应用都是完全开源的,公司可以直接使用 ROS 开发商业化的机器人产品,缩短了产品的上市时间。
4,跨平台使用:
ROS 可以跨平台运行使用,在 Linux 、 Windows 、嵌入式系统中都可以运行。
5,工业应用支持:
ROS2中新增了很多支持工业应用的新特性和新技术,促使 ROS 在更多领域中被使用。
缺点
ros1和ros2的区别
1,系统架构:
ROS 1中所有节点都需要在节点管理器 ROS Master 的管理下工作,一旦 Master 出现问题,系统就面临宕机的风险,整个系统商的所有节点都无法工作。而 ROS 2实现了真正的分布式,不再有 Master 这个角色,借助全新的通信框架 DDS 、 Zenoh ,节点之间通过自主发现并建立连接的方式进通信的,避免了单点故障的问题。
2,底层的通信系统:
ros1底层的通信机制使用TCP和UDP通信,ros2使用了更加复杂但是也更加完善的数据分发服务DDS(Data Distribution Service)。
3,依赖的系统:
ros1主要是运用于Linux上,在其他系统上的功能有限制,不完善;但是ros2在Linux,windows,macOS,RTOS上都比较完善。
4,编译系统:
ros1使用rosbuild(早期)和catkin(后期)这两个编译系统,但是编译,链接经常出错;
ros2使用ament(构建系统)和colcon(构建工具),这两个编译系统和构建工具使得ros2的项目构建更加高效和稳定。
ros操作系统和普通操作系统的区别
普通的操作系统都是直接安装在硬件上,调用操作系统的接口直接操作硬件的,但是ros是安装在这些操作系统之上的操作系统,需要通过和普通的操作系统交互,不直接和硬件打交道。