Skip to main content

A simple python3 interface for DJI Robomaster EP.

Project description

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:

  1. 从Pypi安装本项目:

    pip3 install rmepy
    
  2. 根据自己的操作系统手动安装 h264decoder

  3. 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的物体识别等)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rmepy-0.1.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rmepy-0.1.0-py2.py3-none-any.whl (19.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file rmepy-0.1.0.tar.gz.

File metadata

  • Download URL: rmepy-0.1.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for rmepy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2329f4284fa8bd17de02d76df3eb3f8678899e561dbd6c2a6a6883e6d2bb1599
MD5 6a88570e5e9b784b59040f0693c4ae2a
BLAKE2b-256 ea41da7493995f7e648f46a058099d75b96d4a4aa0c4270d594e629b8dd90e2f

See more details on using hashes here.

File details

Details for the file rmepy-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: rmepy-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using 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

File hashes

Hashes for rmepy-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e4ed675856574894c7403cd79b6780001194037b200c13ea6fa0d2890ed918ca
MD5 a6fd08f3c69f596e2dc42a7f658c3514
BLAKE2b-256 4afc4bf35f60530806c21c7d19227cfb7e173ca963f6611e41419c3c8b02ec62

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page