ROS程序设计系列 - 4.ROS Programming
1. 源由
继续学习ROS编程,本章主要是一些基本组件和概念。并结合示例代码进行阐述。
2. 概念
2.1 ROS services
传统的RPC请求/回复交互在分布式系统中通常是必需的。请求/回复通过服务完成,服务由一对消息定义:一个用于请求,另一个用于回复。
提供服务的ROS节点在一个字符串名称下提供服务,客户端通过发送请求消息并等待回复来调用服务。这种服务模式看起来像是Windows/Linux下的远程过程调用。
基本模型:Request/Response
2.2 ROS actions
基本模型:Goal/Result/Feedback
2.3 ROS time
系统时间虽然好,但是在ROS开发中常用的是ROS time,这个时间被广泛应用与ROS程序中,便于后续模拟和回放。
2.4 ROS bags
rosbag包提供了一个用于处理包的命令行工具,以及用于在C++和Python中读写包的代码API。在rosbag包之外,从groovy版本开始,还有一个GUI客户端rqt_bag。
2.5 Debugging
3. 常见应用
- ROS Parameters
- Dynamic Reconfigure
- Topics
- Services
- Action
4. 示例
4.1 运行
4.2 代码
5. 视频课程
Programming for Robotics, Lecture 4 Programming for ROS B
6. 补充
以下主要介绍了一些实际应用场景(机器狗、车、挖掘机):