Rmepy
Rmepy 是一个对接RobomasterEP sdk的非官方python3接口,目标是还原官方在robomaster app中封装的python接口。
Features:
该项目目前提供以下功能
-
提供使用 python3 封装的 robomasterEP sdk,允许直接在程序中调用 sdk
# Example rm.start() rm.basic_ctrl.set_robot_mode(2) rm.chassis.set_speed(0.0, 0.0, 10.0)
-
对机器人传来的视频流进行接收和解码
# Example rm.video.start() rm.video.display()
-
对机器人的推送信息进行处理,能在程序中调用
# Example rm.push.start() rm.gimbal.set_push(atti_freq=5) print(rm.gimbal.pitch, rm.gimbal.yaw)
Requirements:
-
控制端
- Python3 (测试使用python3.6&3.8)
- opencv-python
- numpy
- pillow (PIL)
- h264decoder
-
机器人
- EP版本 v01.00.00.00
- 明文 SDK 版本 v00.00.00.32
Usage:
-
从Pypi安装本项目:
pip3 install rmepy
-
根据自己的操作系统手动安装 h264decoder
-
Enjoy! 可以使用以下代码进行测试
import rmepy
from time import sleep
r = rmepy.Robot()
r.start()
r.video.log.level = 'WARNING'
r.video.log.level = 'INFO'
r.video.start()
r.video.display()
r.basic_ctrl.set_robot_mode(2)
r.chassis.set_push(1, 1, 1)
r.chassis.set_speed(0.0, 1.0, 10.0)
print(r.chassis.get_postion())
sleep(1)
r.chassis.set_speed(0.0, 0.0, 0.0)
print(r.chassis.get_postion())
sleep(1e5)
目前支持的其他命令的详细内容
可以使用 help(rmepy.robot_modules) 或 进入 rmepy/robot_modules 查看
Project structure:
文件结构
rmepy
├── decorators.py # 装饰器,包括 retry, accepts 等
├── __init__.py
├── logger.py # 提供日志输出服务
├── robot_connection.py # 提供与机器人的通讯服务
├── robot_modules # 封装的sdk命令
│ ├── basic_ctrl.py # 基础操控
│ ├── chassis.py # 底盘控制
│ ├── gimbal.py # 云台控制
│ ├── blaster.py # 发射器控制
│ ├── __init__.py
│ └── __module_template.py
├── robot_msg_push.py # 信息推送流处理
├── robot.py # 主类(rmepy.Robot)
└── robot_video_stream.py # 视频流处理
类结构
rmepy.Robot
# Commends 封装的命令
.basic_ctrl = commends.BasicCtrl()
.chassis = commends.Chassis()
.gimbal = commends.Gimbal()
.blaster = robot_modules.Blaster()
# Video 基础视频模块
.video = robot_video_stream.RobotVideoStream()
# Push 推送信息处理模块
.push = robot_msg_push.RobotMsgPush()
TODOs:
- 发送控制命令
- 接收s1的状态推送
- 对s1的状态推送信息进行处理
- 封装所有基本的控制命令
- 接收s1的视频流
- 对状态推送信息处理进行测试
- 对视频流接收进行测试
- 增加 advanced 模块,进行图像的高级处理(巡线,yolov3的物体识别等)
Metadata
Release files for rmepy 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rmepy-0.1.0.tar.gz | 15.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rmepy-0.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 34.2 kB
Release files / rmepy-0.1.0.tar.gz
| Download URL | rmepy-0.1.0.tar.gz |
|---|---|
| Size | 15.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2329f4284fa8bd17de02d76df3eb3f8678899e561dbd6c2a6a6883e6d2bb1599
|
|
BLAKE2b-256 checksum How to use checksums |
ea41da7493995f7e648f46a058099d75b96d4a4aa0c4270d594e629b8dd90e2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.9
|
Release files / rmepy-0.1.0-py2.py3-none-any.whl
| Download URL | rmepy-0.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 19.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
e4ed675856574894c7403cd79b6780001194037b200c13ea6fa0d2890ed918ca
|
|
BLAKE2b-256 checksum How to use checksums |
4afc4bf35f60530806c21c7d19227cfb7e173ca963f6611e41419c3c8b02ec62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.9
|