1. 简介¶
Python ROS Bridge library,简称 roslibpy,提供了用 Python 或 IronPython 与开源机器人平台 ROS 进行通信的一个途径。该项目使用 WebSockets 与 rosbridge 2.0 建立连接,提供了 publishing、subscribing、service calls、actionlib、TF 等 ROS 中的基本功能。
与 rospy 不同,该项目不需要在本地搭建 ROS 环境,为 Linux 以外的平台使用 ROS 带来了方便。
roslibpy 的 API 构建参考了 roslibjs 的结构。
1.1. 主要特性¶
- 话题 (Topic) 的发布和订阅;
- 服务 (Service) 的发布和查询;
- ROS 参数管理 (get/set/delete);
- ROS API 服务;
- Actionlib 支持;
- 通过 tf2_web_republisher 实现 TF Client。
Roslibpy 可以在 Python 2.7、Python 3.x 和 IronPython 2.7 上运行。
1.2. 安装¶
使用pip
命令安装 roslibpy:
pip install roslibpy
对于 IronPython 来说,pip
命令略有不同:
ipy -X:Frames -m pip install --user roslibpy
1.4. 贡献¶
确保您的本地环境配置正确:
将仓库 roslibpy 克隆到本地;
创建一个虚拟环境;
安装开发依赖:
pip install -r requirements-dev.txt
现在你可以开始编程了!
在开发过程中,使用 pyinvoke 来简化重复操作:
invoke clean
: 清除所有生成的内容;invoke check
: 运行多种代码和文档风格检查;invoke docs
: 生成文档;invoke test
: 用一个命令迅速运行所有的测试和检查;invoke
: 显示可供调用的任务。
更多的细节请参考贡献者指南。
1.5. 发布项目¶
准备好发布 roslibpy 的新版本了吗?接下来是发布新版本的步骤:
我们使用 semver,即我们按照如下方式迭代版本:
patch
: 修复 BUG;minor
: 增加向下兼容的 Feature;major
: 向下兼容的修改。
所有的更改都要记录在
CHANGELOG.rst
中!准备好了吗?用下面的命令来发布新版本:
invoke release [patch|minor|major]
Profit!
1.6. Credits¶
本模块是基于 roslibjs 实现的,在很大程度上,它是到 Python 的逐行移植,只在其它惯用代码范式更有意义的地方才进行修改,所以很大一部分功劳要归于 roslibjs 的作者。