笔者闲谈
本人是一名对自动化,计算机,智能车等实用知识很感兴趣的一名爱好者。大学期间有幸接触且自己做一些竞赛,都是自己咔咔咔地画板子,写程序,画结构,用ROS,没有系统性的了解,最近偶有时间,可以好好学习一下ROS操作系统,书籍是《浅析ROS》,这里是我自己做的一些笔记,一天一更,望读者一起共勉。
ROS可以做什么
下边列举出一些应用ROS可以为机器人开发做的事情:
- 分布式计算:多个计算机,多个进程,一台个机器人搭载多个计算机分别控制多个传感器,多机器人协同完成任务,主机从机之间的控制人的接口。
- 软件复用: 导航,路径规划,建图等工具包不必自己重新写,直接使用。快速移植到不同系统上。ROS通过ROS标准包或者ROS通信接口来实现软件复用。
- 快速测试: ROS将上下层的封装做的很好,极大降低了机器人开发的成本,可以通过仿真(可以通过模拟器替代底层硬件)、ROSbag(一种简单的方法可以在调试过程中记录传感器数据及其他类型的消息数据,并在试验后按时间戳回放。)回放等都可以实现快速测试,降低硬件成本。
ROS是什么
机器人操作系统机器人操作系统 (Robot
Operating System, 或简称 ROS),它可以帮助提高机器人软件的
开发效率。ROS 系统的官方定义如下:
- ROS是面向机器人的开源的元操作系统(meta-operating
system)它能够提供类似传统操作系统的诸多功能。如硬件抽象、底层设备控制、常用功能实现、进程间消息传递和程序包管理等。 - 此外,它还提供相关工具和库,用于获取、编译、编辑代码以及在多个计算机之间运行程序完成分布式计算。
ROS帮助
- ROS开发联盟维护的的维基文档链接: 点击此处跳转
- 如果在调试过程中遇到问题,Stack Exchange是一系列的问答网站,每一个网站包含不同领域的问题)风格的Q&A网站进行查询和提问:点击此处跳转
- ROS用户(ros-user)邮件列表可以获取到最新消息 :点击此处跳转
- 在线指导手册:点击此处跳转
- 参考资料:点击此处跳转
ROS其他
- 本书本书并不针对某个具体算法进行讲解,而是告诉读者如何使用好 ROS 这一工具,更好地实现和测试感兴趣的算法。
- ROS不仅是一个函数库,还包含客户端库(Client Libraries)外,还包含一个中心服务器(Central Server)、一系列命令行工具、图形化界面工具以及编译环境。
- ROS不是集成开发环境,几乎所有IDE均可用于ROS开发。