============================ roslibpy: ROS Bridge 库
.. start-badges
.. image:: https://readthedocs.org/projects/roslibpy/badge/?style=flat :target: https://roslibpy.readthedocs.io/en/latest/ :alt: 文档状态
.. image:: https://img.shields.io/badge/docs-%E4%B8%AD%E6%96%87-brightgreen.svg :target: https://roslibpy-docs-zh.readthedocs.io :alt: 文档:中文翻译
.. image:: https://github.com/gramaziokohler/roslibpy/workflows/build/badge.svg :target: https://github.com/gramaziokohler/roslibpy/actions :alt: Github Actions CI 构建状态
.. image:: https://img.shields.io/github/license/gramaziokohler/roslibpy.svg :target: https://pypi.python.org/pypi/roslibpy :alt: 许可证
.. image:: https://img.shields.io/pypi/v/roslibpy.svg :target: https://pypi.python.org/pypi/roslibpy :alt: PyPI 包最新版本
.. image:: https://anaconda.org/conda-forge/roslibpy/badges/version.svg :target: https://anaconda.org/conda-forge/roslibpy
.. image:: https://img.shields.io/pypi/implementation/roslibpy.svg :target: https://pypi.python.org/pypi/roslibpy :alt: 支持的实现
.. end-badges
Python ROS Bridge 库允许使用 Python 和 IronPython 与 ROS <http://www.ros.org>
(开源机器人中间件)进行交互。它使用 WebSockets 连接到 rosbridge 2.0 <http://wiki.ros.org/rosbridge_suite>
,并提供发布、订阅、服务调用、actionlib、TF 和其他基本的 ROS 功能。
与 rospy <http://wiki.ros.org/rospy>
_ 库不同,这不需要本地 ROS 环境,允许在 Linux 以外的平台上使用。
roslibpy 的 API 设计紧密匹配 roslibjs
_ 的 API。
完全支持 ROS1。ROS2 的支持仍在进行中。
主要特性
- 话题发布和订阅。
- 服务调用(客户端)。
- 服务广告(服务器)。
- ROS 参数管理(获取/设置/删除)。
- 用于获取 ROS 元信息的 ROS API 服务。
- 支持 Actionlib 以接口可抢占任务。
- 通过
tf2_web_republisher
的 TF 客户端。
Roslibpy 运行在 Python 3.x 和 IronPython 2.7 上。
安装
要安装 roslibpy,只需使用 pip
::
pip install roslibpy
对于 IronPython,pip
命令略有不同::
ipy -X:Frames -m pip install --user roslibpy
请记住,你需要一个可用的 ROS 设置,包括在你的网络中可访问的 rosbridge 服务器 和 TF2 web 重发布器。
文档
完整文档,包括示例和 API 参考,可在 readthedocs <https://roslibpy.readthedocs.io/>
_ 上获取。
贡献
确保正确设置你的本地开发环境:
- 克隆
roslibpy <https://github.com/gramaziokohler/roslibpy>
_ 仓库。 - 创建虚拟环境。
- 安装开发依赖:
::
pip install -r requirements-dev.txt
你已准备好开始编码了!
在开发过程中,使用命令提示符上的 pyinvoke <http://docs.pyinvoke.org/>
_ 任务来简化重复操作:
invoke clean
:清理所有生成的构件。invoke check
:运行各种代码和文档样式检查。invoke docs
:生成文档。invoke test
:一键运行所有测试和检查。invoke
:显示可用任务。
更多详情,请查看作为 文档 <https://roslibpy.readthedocs.io/>
_ 一部分的贡献者指南。
默认分支最近被重命名为 main
。如果你已经克隆了这个仓库,你需要用以下行更新你的本地仓库结构:
::
git branch -m master main
git fetch origin
git branch -u origin/main main
发布这个项目
准备发布新版本的 roslibpy 了吗?这里是方法:
-
我们使用
semver <http://semver.org/>
_,即我们按如下方式更新版本:patch
:错误修复。minor
:添加向后兼容的功能。major
:向后不兼容的更改。
-
用所有新内容更新
CHANGELOG.rst
! -
准备好了吗?用一个命令发布所有内容:
::
invoke release [patch|minor|major]
- 完成!
致谢
这个库基于 roslibjs
,在很大程度上,它是对 Python 的逐行移植,只在更符合习惯的形式有意义时才进行更改,所以大部分功劳归功于 roslibjs 作者 <https://github.com/RobotWebTools/roslibjs/blob/develop/AUTHORS.md>
。
.. _roslibjs: http://wiki.ros.org/roslibjs