10.1. robomaster package

10.1.1. robomaster.action

class robomaster.action.Action(**kw)

基类:object

wait_for_completed(timeout=None)

等待任务动作直到完成

参数:timeout – 超时,在timeout前未完成任务动作,直接返回
返回:bool: 动作在指定时间内完成,返回True; 动作超时返回False
class robomaster.action.TextAction(**kw)

基类:robomaster.action.Action

Blocking action in plaintext protocol

wait_for_completed(timeout=None)

等待任务动作直到完成

参数:timeout – 超时,在timeout前未完成任务动作,直接返回
返回:bool: 动作在指定时间内完成,返回True; 动作超时返回False

10.1.2. robomaster.armor

class robomaster.armor.Armor(robot)

基类:robomaster.module.Module

static comp2id(comp)

装甲部位转换为装甲ID

参数:comp – enum (“bottom_back”, “bottom_front”, “bottom_left”, “bottom_right”, “top_left”, “top_right”) 装甲部位
返回:int: [1, 6] 装甲ID
get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

static id2comp(armor_id)

装甲ID转换为装甲部位

参数:armor_id – int [1, 6],装甲ID
Return comp:enum: (“bottom_back”, “bottom_front”, “bottom_left”, “bottom_right”, “top_left”, “top_right”), 装甲部位
set_hit_sensitivity(comp='all', sensitivity=5)

设置装甲灵敏度

参数:
  • comp – enum:(“all”, “top_all”, “bottom_all”, “top_left”, “top_right”, “bottom_left”, “bottom_right”, “bottom_front”, “bottom_back”):要设置的装甲部位
  • sensitivity – int:[0, 10] 灵敏度系数,系数越大灵敏度越低
返回:

bool:返回调用结果

sub_hit_event(callback=None, *args, **kw)

打击事件订阅

参数:
  • callback

    回调函数, 返回数据 (armor_id, hit_type):

    param armor_id:int:[1, 6]打击装甲的编号,1 底盘后;2 底盘前;3 底盘左;4 底盘右;5 云台左;6 云台右
    param hit_type:enum:(“water”, “ir”),被打击类型,water:水弹,ir:红外
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 事件订阅结果

sub_ir_event(callback=None, *args, **kw)

红外打击事件订阅

参数:
  • callback – 回调函数, 返回数据 (hit_cnt)
  • hit_cnt – 受到红外击打的次数
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 事件订阅结果

unsub_hit_event()

取消打击事件订阅

返回:bool: 取消事件订阅结果
unsub_ir_event()

取消红外打击事件订阅

返回:bool: 取消事件订阅结果

10.1.3. robomaster.battery

class robomaster.battery.Battery(robot)

基类:robomaster.module.Module

EP 电池模块

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

sub_battery_info(freq=5, callback=None, *args, **kw)

订阅电池信息

参数:
  • freq – enum:(1,5,10,20,50) 设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 percent:

    percent:电池电量百分比
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

unsub_battery_info()

取消电池订阅

返回:bool: 取消订阅结果
class robomaster.battery.TelloBattery(robot)

基类:object

教育无人机 电池模块

get_battery()

获取电池电量信息

返回:int: 电池的剩余电量百分比
sub_battery_info(freq=5, callback=None, *args, **kw)

订阅电池信息

参数:
  • freq – enum:(1,5,10) 设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 percent:

    percent:电池电量百分比
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

unsub_battery_info()

取消订阅飞机电池信息

返回:返回取消订阅结果

10.1.4. robomaster.blaster

class robomaster.blaster.Blaster(robot)

基类:robomaster.module.Module

EP 发射器模块

fire(fire_type='water', times=1)

发射器发射

参数:
  • fire_type – enum: (“water”, “ir”), 发射器发射类型,水弹、红外弹
  • times – 发射次数
返回:

bool: 调用结果

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

set_led(brightness=255, effect='on')

设置发射器灯效

参数:
  • brightness – int:[0,255],亮度
  • effect – enum:(“on”, “off”),on 表示常亮,off 表示常灭
返回:

bool:调用结果

10.1.5. robomaster.camera

class robomaster.camera.EPCamera(robot)

基类:robomaster.module.Module, robomaster.camera.Camera

EP 摄像机模块

audio_stream_addr

机器人音频流地址

返回:tuple:(ip, port),机器人音频流地址
conf

相机参数配置

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

read_audio_frame(timeout=1)

读取一段音频流信息

参数:timeout – float: (0, inf),超时时间,超过指定timeout时间后函数返回
返回:data, 已解码的音频流帧字节流
read_cv2_image(timeout=3, strategy='pipeline')

读取一帧视频流帧

参数:
  • timeout – float: (0, inf),超时参数,在timeout时间内未获取到视频流帧,函数返回
  • strategy – enum: (“pipeline”, “newest”),读取帧策略:pipeline 依次读取缓存的帧信息,newest 获取最新的一帧 数据,会清空旧的数据帧
返回:

image

read_video_frame(timeout=3, strategy='pipeline')

读取一帧视频流帧

参数:
  • timeout – float: (0, inf),超时时间,超过指定timeout时间后函数返回
  • strategy – enum: (“pipeline”, “newest”) 读取帧策略:pipeline 流水线依次读取,newest 获取最新的一帧数据, 注意会清空老的数据帧队列
返回:

frame, 已解码的视频流帧字节流

record_audio(save_file='output.wav', seconds=5, sample_rate=48000)

录制音频,保存到本地,支持wav格式,单通道

参数:
  • save_file – 本地文件路径,目前仅支持wav格式
  • seconds – 录制时间
  • sample_rate – 采样率
返回:

bool: 调用结果

start_audio_stream()

开启音频流

start_video_stream(display=True, resolution='720p')

开启视频流

参数:
  • display – bool,是否显示视频流
  • resolution – enum: (“360p”, “540p”, “720p”),设置图传分辨率尺寸
返回:

bool:调用结果

stop()

停止

stop_audio_stream()

停止音频流

Return:bool:调用结果
stop_video_stream()

停止视频流

返回:bool: 调用结果
take_photo()

拍照

返回:bool: 调用结果
video_stream_addr

机器人视频流地址

返回:tuple:(ip, port):机器人视频流地址
class robomaster.camera.TelloCamera(robot)

基类:robomaster.camera.Camera

教育无人机 摄像机模块

read_cv2_image(timeout=3, strategy='pipeline')

读取一帧视频流帧

参数:
  • timeout – float: (0, inf),超时参数,在timeout时间内未获取到视频流帧,函数返回
  • strategy – enum: (“pipeline”, “newest”),读取帧策略:pipeline 依次读取缓存的帧信息,newest 获取最新的一帧 数据,会清空旧的数据帧
返回:

image

read_video_frame(timeout=3, strategy='pipeline')

读取一帧视频流帧

参数:
  • timeout – float: (0, inf),超时时间,超过指定timeout时间后函数返回
  • strategy – enum: (“pipeline”, “newest”) 读取帧策略:pipeline 流水线依次读取,newest 获取最新的一帧数据, 注意会清空老的数据帧队列
返回:

frame, 已解码的视频流帧字节流

set_bitrate(bitrate)

设置飞机传输码率

参数:bitrate – 需要设置的传输码率,[0, 6]
返回:bool: 设置结果
set_fps(fps)

设置飞机视频帧率

参数:fps – 需要设置的帧率,[high, middle, low]
返回:bool: 设置结果
set_resolution(resolution)

设置飞机视频分辨率

参数:resolution – 需要设置的视频分辨率,[high, low]
返回:bool: 设置结果
start_video_stream(display=True)

开启视频流

参数:display – bool, 是否显示视频流
返回:bool: 调用结果

10.1.6. robomaster.chassis

class robomaster.chassis.Chassis(robot)

基类:robomaster.module.Module

EP 底盘模块,可以控制底盘的速度、位置、订阅底盘的数据,控制麦克纳姆轮等操作

drive_speed(x=0.0, y=0.0, z=0.0, timeout=None)

设置底盘速度,立即生效

参数:
  • x – float:[-3.5,3.5],x 轴向运动速度即前进速度,单位 m/s
  • y – float:[-3.5,3.5],y 轴向运动速度即横移速度,单位 m/s
  • z – float:[-600,600],z 轴向运动速度即旋转速度,单位 °/s
  • timeout – float:(0,inf),超过指定时间内未收到麦轮转速指令,主动控制机器人停止,单位 s
drive_wheels(w1=0, w2=0, w3=0, w4=0, timeout=None)

设置麦轮转速

参数:
  • w1 – int:[-1000,1000],右前麦轮速度,以车头方向前进旋转为正方向,单位 rpm
  • w2 – int:[-1000,1000],左前麦轮速度,以车头方向前进旋转为正方向,单位 rpm
  • w3 – int:[-1000,1000],左后麦轮速度,以车头方向前进旋转为正方向,单位 rpm
  • w4 – int:[-1000,1000],右后麦轮速度,以车头方向前进旋转为正方向,单位 rpm
  • timeout – float:(0,inf),超过指定时间内未收到麦轮转速指令,主动控制机器人停止,单位 s
get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

move(x=0, y=0, z=0, xy_speed=0.5, z_speed=30)

控制底盘运动当指定位置,坐标轴原点为当前位置

参数:
  • x – float: [-5,5],x轴向运动距离,单位 m
  • y – float: [-5,5],y轴向运动距离,单位 m
  • z – float: [-1800,1800],z轴向旋转角度,单位 °
  • xy_speed – float: [0.5,2],xy轴向运动速度,单位 m/s
  • z_speed – float: [10,540],z轴向旋转速度,单位 °/s
返回:

返回action对象

set_pwm_freq(pwm1=None, pwm2=None, pwm3=None, pwm4=None, pwm5=None, pwm6=None)

设置PWM输出频率

参数:pwm1~6 – int:[0,50000],pwm输出频率,单位Hz
set_pwm_value(pwm1=None, pwm2=None, pwm3=None, pwm4=None, pwm5=None, pwm6=None)

设置PWM输出占空比

参数:
  • pwm1 – int:[0,100],pwm输出占空比,单位%
  • pwm2 – int:[0,100],pwm输出占空比,单位%
  • pwm3 – int:[0,100],pwm输出占空比,单位%
  • pwm4 – int:[0,100],pwm输出占空比,单位%
  • pwm5 – int:[0,100],pwm输出占空比,单位%
  • pwm6 – int:[0,100],pwm输出占空比,单位%
sub_attitude(freq=5, callback=None, *args, **kw)

订阅底盘姿态信息

参数:
  • freq – enum: (1, 5, 10, 20, 50) 设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 (yaw, pitch, roll):

    yaw:yaw轴姿态角
    pitch:pitch轴姿态角
    roll:roll轴姿态角
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

sub_esc(freq=5, callback=None, *args, **kw)

订阅底盘电调信息

参数:
  • freq – enum: (1, 5, 10, 20, 50),设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 (speed[4], angle[4], timestamp, state):

    speed[4]:4个电机的速度值,单位rpm,范围:-8192~8191
    angle[4]:4个电机的角度值,数值范围:0~32767映射0~360
    timestamp:4个电机的包序号
    state:4个电调的状态
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

sub_imu(freq=5, callback=None, *args, **kw)

订阅底盘IMU陀螺仪信息

参数:
  • freq – enum: (1, 5, 10, 20, 50),设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 (acc_x, acc_y, acc_z, gyro_x, gyro_y, gyro_z):

    acc_x:x轴加速度
    acc_y:y轴加速度
    acc_z:z轴加速度
    gyro_x:x轴角速度
    gyro_y:y轴角速度
    gyro_z:z轴角速度
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

sub_mode(freq=5, callback=None, *args, **kw)

订阅底盘模式信息

参数:
  • freq – enum: (1, 5, 10, 20, 50),设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 mode:

    mode:底盘模式
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

sub_position(cs=0, freq=5, callback=None, *args, **kw)

订阅底盘位置信息

参数:
  • cs – int: [0,1] 设置底盘位置的坐标系,0 机器人当前位置,1 机器人上电位置
  • freq – enum: (1, 5, 10, 20, 50) 设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 (x, y, z):

    x:x轴方向距离,单位 m
    y:y轴方向距离,单位 m
    z:z轴方向旋转角度,单位 °
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

sub_status(freq=5, callback=None, *args, **kw)

订阅底盘状态信息

参数:
  • freq – enum: (1, 5, 10, 20, 50),设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 (static_flag, up_hill, down_hill, on_slope, is_pickup, slip_flag, impact_x, impact_y, impact_z, roll_over, hill_static):

    static_flag:状态标准位
    up_hill:处于上坡状态
    down_hill:处于下坡状态
    on_slope:处于倾斜状态
    is_pickup:处于抱起状态
    slip_flag:车身打滑
    impact_x:x轴发生撞击
    impact_y:y轴发生撞击
    impact_z:z轴发生撞击
    roll_over:车身翻转
    hill_static:处于斜坡状态
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

sub_velocity(freq=5, callback=None, *args, **kw)

订阅底盘加速度信息

参数:
  • freq – enum:(1, 5, 10, 20, 50) 设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据(vgx, vgy, vgz, vbx, vby, vbz):

    vgx:上电时刻下的世界坐标系下x方向速度
    vgy:上电时刻下的世界坐标系下y方向速度
    vgz:上电时刻下的世界坐标系下z方向速度
    vbx:当前时刻的车身坐标系下x方向速度
    vby:当前时刻的车身坐标系下y方向速度
    vbz:当前时刻的车身坐标系下z方向速度
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

unsub_attitude()

取消订阅底盘姿态信息

返回:bool: 取消数据订阅的结果
unsub_esc()

取消订阅电调信息

返回:bool: 取消数据订阅的结果
unsub_imu()

取消订阅底盘IMU陀螺仪信息

返回:bool: 取消数据订阅的结果
unsub_mode()

取消订阅底盘模式信息

返回:bool: 取消数据订阅的结果
unsub_position()

取消订阅底盘位置信息

返回:bool: 取消数据订阅的结果
unsub_status()

取消订阅底盘状态信息

返回:bool: 取消数据订阅的结果
unsub_velocity()

取消订阅底盘加速度信息

返回:bool: 取消数据订阅的结果

10.1.7. robomaster.exceptions

exception robomaster.exceptions.TimeOutError

基类:robomaster.exceptions.SDKException

Remote Call Timeout.

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

10.1.8. robomaster.flight

class robomaster.flight.Flight(robot)

基类:object

教育无人机 飞行器模块

backward(distance=0, retry=True)

向后飞行distance厘米, 指相对距离

Param:distance: float:[20, 500]向后飞行的相对距离,单位 cm
Param:retry: bool:是否重发命令
返回:action对象
curve(x1=0, y1=0, z1=0, x2=0, y2=0, z2=0, speed=20, mid=None, retry=True)

以设置速度飞弧线,经过对应坐标系中的(x1, y1, z1)点到(x2, y2, z2)点

如果选用mid参数,则对应坐标系为指定挑战卡的坐标系。不使用挑战卡时,飞机的前方为x轴正方向,飞机的左方为y轴的正方向 如果mid参数为默认值None,则为飞机自身坐标系

Param:x1: float:[-500, 500] x轴坐标
Param:y1: float:[-500, 500] y轴坐标
Param:z1: float:如果使用挑战卡(mid不为None),取值范围为 [0, 500]; 如果不使用挑战卡(mid为None),取值范围为[-500, 500]
Param:x2: float:[-500, 500] x轴坐标
Param:y2: float:[-500, 500] y轴坐标
Param:z2: float:如果使用挑战卡(mid不为None),取值范围为 [0, 500]; 如果不使用挑战卡(mid为None),取值范围为[-500, 500]
Param:speed: float:[10, 60] 飞行的速度
Param:mid: string: 不使用挑战卡时mid为None,运动坐标系为飞机自身坐标系;当使用挑战卡时mid为对应挑战卡编号,运动坐标系为对应挑战卡 坐标系。挑战卡编号参考挑战卡使用说明
Param:retry: bool:是否重发命令
返回:action对象
down(distance=0, retry=True)

向下飞distance厘米,指相对距离

Param:distance: float:[20, 500]向下飞行的相对距离,单位 cm
Param:retry: bool:是否重发命令
返回:action对象
flip(direction='f', retry=True)

控制飞机向指定方向翻滚

当电量低于50%时无法完成翻滚 :param direction: string: 飞机翻转的方向, ’l‘ 向左翻滚,’r‘ 向右翻滚,’f‘ 向前翻滚, ’b‘ 向后翻滚 :param: retry: bool:是否重发命令 :return: action对象

flip_backward(retry=True)

控制飞机向后翻滚

当电量低于50%时无法完成翻滚 :param: retry: bool:是否重发命令 :return: action对象

flip_forward(retry=True)

控制飞机向前翻滚

当电量低于50%时无法完成翻滚 :param: retry: bool:是否重发命令 :return: action对象

flip_left(retry=True)

控制飞机向左翻滚

当电量低于50%时无法完成翻滚 :param: retry: bool:是否重发命令 :return: action对象

flip_right(retry=True)

控制飞机向右翻滚

当电量低于50%时无法完成翻滚 :param: retry: bool:是否重发命令 :return: action对象

fly(direction='forward', distance=0, retry=True)

控制飞机向指定方向飞行指定距离。

Param:direction: string: 飞行的方向,”forward” 向上飞行, “back” 向下飞行, “up” 向上飞行, “down” 向下飞行, “left” 向左飞行, “right” 向右飞行
Param:distance: float:[20, 500],飞行的距离,单位 cm
Param:retry: bool:是否重发命令
返回:action对象
forward(distance=0, retry=True)

向前飞行distance厘米,指相对距离

Param:distance: float:[20, 500]向前飞行的相对距离,单位 cm
Param:retry: bool:是否重发命令
返回:action对象
get_speed()

获取当前设置速度

返回:float: 当前速度值,单位 cm/s
go(x, y, z, speed=10, mid=None, retry=True)

控制飞机以设置速度飞向指定坐标位置

注意, x,y,z 同时在-20~20时,飞机不会运动。当不使用挑战卡时,飞机所在位置为坐标系原点,飞机的前方为x轴正方向,飞机的左方为y轴的正方向

Param:x: float: [-500, 500] x轴的坐标,单位 cm
Param:y: float: [-500, 500] y轴的坐标,单位 cm
Param:z: float: [-500, 500] z轴的坐标,单位 cm
Param:speed: float: [10, 100] 运动速度, 单位 cm/s
Param:mid: string: 不使用挑战卡时mid为None,运动坐标系为飞机自身坐标系;当使用挑战卡时mid为对应挑战卡编号, 运动坐标系为指定挑战卡的坐标系。支持编号可参考挑战卡使用说明。
Param:retry: bool:是否重发命令
返回:action对象
jump(x=0, y=0, z=0, speed=20, yaw=0, mid1='m-1', mid2='m-1', retry=True)

飞行器飞往mid1坐标系的(x, y, z)点后悬停,识别mid2的挑战卡,飞到mid2坐标系下(0, 0, z)的位置并且旋转到设定的yaw值

Param:x: float: [-500, 500],x轴的坐标,单位 cm
Param:y: float: [-500, 500],y轴的坐标,单位 cm
Param:z: float: [0, 500],z轴的坐标,单位 cm
Param:speed: float:[10, 60],飞行的速度, 单位 cm/s
Param:yaw: [-360, 360] 最终悬停的yaw轴角度, 单位 °
Param:mid1: string: 第一个挑战卡的id, 挑战卡id的介绍参考挑战卡使用说明
Param:mid2: string: 第一个挑战卡的id, 挑战卡id的介绍参考挑战卡使用说明
Param:retry: bool:是否重发命令
返回:action对象
land(retry=True)

自动降落

Param:retry: bool:是否重发命令
返回:action对象
left(distance=0, retry=True)

向左飞行distance厘米, 指相对距离

Param:distance: float:[20, 500]向左飞行的相对距离,单位 cm
Param:retry: bool:是否重发命令
返回:action对象
mission_pad_off()

关闭挑战卡探测

返回:bool:控制结果
mission_pad_on()

打开挑战卡探测

默认同时打开前视和下视探测 :return: bool: 控制结果

motor_off()

控制飞机停桨

返回:action对象
motor_on()

控制飞机转桨

返回:action对象
move(x=0, y=0, z=0, speed=10, mid=None, retry=True)

飞机相对位置的控制

x/y/z值不能同时在-20~20之间,适用该接口时应当先打开挑战卡检测功能

Param:x: float:[-500, 500],目标位置在挑战卡坐标系中的x坐标,实际取值范围要根据挑战卡大小调整,单位 cm
Param:y: float:[-500, 500],目标位置在挑战卡坐标系中的y坐标,实际取值范围要根据挑战卡大小调整,单位 cm
Param:z: float:[-500, 500],目标位置在挑战卡坐标系中的z坐标,实际取值范围要根据挑战卡大小调整,单位 cm
Param:speed: int:[10, 100],运动速度,单位 cm/s
Param:mid: string: 挑战卡的编号,支持编号可参考挑战卡使用说明
Param:retry: bool:是否重发命令
返回:action对象
moveto(yaw=0, retry=True)

控制飞机旋转到挑战卡坐标系中指定的绝对角度

Param:yaw: float:[-180, 180],飞机在挑战卡上的的角度,俯视时,顺时针为正角度,逆时针为负角度
Param:retry: bool:是否重发命令
返回:action 对象
rc(a=0, b=0, c=0, d=0)

控制飞机遥控器的四个杆量

参数:
  • a – float:[-100, 100] 横滚
  • b – float:[-100, 100] 俯仰
  • c – float:[-100, 100] 油门
  • d – float:[-100, 100] 偏航
right(distance=0, retry=True)

向右飞行distance厘米, 指相对距离

Param:distance: float:[20, 500]向右飞行的相对距离,单位 cm
Param:retry: bool:是否重发命令
返回:action对象
rotate(angle=0, retry=True)

控制飞机旋转指定角度

Param:angle: float:[-360, 360] 旋转的角度,俯视飞机时,顺时针为正角度,逆时针为负角度
Param:retry: bool:是否重发命令
返回:action对象
set_speed(speed=0)

设置当前飞行速度

参数:speed – float:[10, 100],飞行速度,单位 cm/s
返回:bool: 设置结果
stop(retry=True)

停止rc运动并悬停,任何时候都可以

Param:retry: bool:是否重发命令
返回:bool: 控制结果
sub_attitude(freq=5, callback=None, *args, **kw)

订阅飞机姿态信息

参数:
  • freq – enum:(1, 5, 10),订阅数据的频率
  • callback – 传入数据处理的回掉函数
  • args – 回调函数参数
  • kw – 回调函数参数
返回:

bool: 数据订阅结果

sub_imu(freq=5, callback=None, *args, **kw)

订阅飞机陀螺仪信息

参数:
  • freq – enum:(1, 5, 10),订阅数据的频率
  • callback – 传入数据处理的回掉函数
  • args – 回调函数参数
  • kw – 回调函数参数
返回:

bool: 数据订阅结果

takeoff(retry=True)

自动起飞

Param:retry: bool:是否重发命令
返回:action对象
throw_fly()

控制飞机抛飞

返回:action对象
unsub_attitude()

取消订阅飞机姿态信息

返回:bool: 取消数据订阅结果
unsub_imu()

取消订阅飞机陀螺仪信息

返回:bool: 取消数据订阅结果
up(distance=0, retry=True)

向上飞distance厘米,指相对距离

Param:distance: float:[20, 500]向上飞行的相对距离,单位 cm
Param:retry: bool:是否重发命令
返回:action对象

10.1.9. robomaster.gimbal

class robomaster.gimbal.Gimbal(robot)

基类:robomaster.module.Module

EP 云台模块

drive_speed(pitch_speed=30.0, yaw_speed=30.0)

控制以一定速度转动

参数:
  • pitch_speed – float: [-360, 360],pitch轴速度,单位 °/s
  • yaw_speed – float: [-360, 360],yaw 轴速度,单位 °/s
返回:

bool:调用结果

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

move(pitch=0, yaw=0, pitch_speed=30, yaw_speed=30)

控制云台运动到指定位置,坐标轴原点为当前位置

参数:
  • pitch – float: [-55, 55],pitch 轴角度,单位 °
  • yaw – float: [-55, 55],yaw 轴角度,单位 °
  • pitch_speed – float: [0, 540],pitch 轴运动速速,单位 °/s
  • yaw_speed – float: [0, 540],yaw 轴运动速度,单位 °/s
返回:

返回action对象

moveto(pitch=0, yaw=0, pitch_speed=30, yaw_speed=30)

控制云台运动到指定位置,坐标轴原点为上电位置

参数:
  • pitch – int: [-25, 30],pitch 轴角度,单位 °
  • yaw – int: [-250, 250],yaw 轴角度,单位 °
  • pitch_speed – int: [0, 540],pitch 轴运动速度,单位 °
  • yaw_speed – int: [0, 540],yaw 轴运动速度,单位 °
返回:

返回action对象

recenter(pitch_speed=60, yaw_speed=60)

控制云台回中

参数:
  • pitch_speed – float: [-360, 360],pitch轴速度,单位 °/s
  • yaw_speed – float: [-360, 360],yaw 轴速度,单位 °/s
返回:

返回action对象

resume()

控制云台从休眠状态中恢复

返回:bool:调用结果
sub_angle(freq=5, callback=None, *args, **kw)

订阅云台姿态角信息

参数:
  • freq – enum: (1, 5, 10, 20, 50) 设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 (pitch_angle, yaw_angle, pitch_ground_angle, yaw_ground_angle):

    pitch_angle:相对底盘的pitch轴角度
    yaw_angle:相对底盘的yaw轴角度
    pitch_ground_angle:
     上电时刻pitch轴角度
    yaw_ground_angle:
     上电时刻yaw轴角度
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

suspend()

控制云台进入休眠状态

返回:bool:调用结果
unsub_angle()

取消云台姿态角订阅

返回:bool: 取消数据订阅的结果

10.1.10. robomaster.gripper

class robomaster.gripper.Gripper(robot)

基类:robomaster.module.Module

EP 机械爪模块

close(power=50)

控制机械爪关闭

参数:power – int: [1, 100],控制出力
返回:bool: 调用结果
get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

open(power=50)

控制机械爪张开

参数:power – int: [1, 100],控制出力
返回:bool: 调用结果
pause()

控制机械爪停止

返回:bool: 调用结果
sub_status(freq=5, callback=None, *args, **kw)

订阅夹爪的状态信息

参数:
  • freq – enum: (1, 5, 10, 20, 50),设置数据订阅数据的推送频率,单位 Hz
  • callback

    传入数据处理的回调函数,回调函数参数为:

    gripper_status:opened:夹爪打开 closed:夹爪闭合。
  • callback

    回调函数,返回数据 (status):

    status:opened 夹爪完全打开,closed 夹爪完全闭合,normal 处在中间正常状态
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

unsub_status()

取消夹爪状态信息订阅

返回:取消订阅结果

10.1.11. robomaster.led

class robomaster.led.Led(robot)

基类:robomaster.module.Module

EP 装甲灯模块

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

set_gimbal_led(comp='top_all', r=255, g=255, b=255, led_list=[0, 1, 2, 3], effect='on')

设置云台灯效

参数:
  • comp – enum: (“top_all”, “top_left”, “top_right”),云台部位
  • r – int: [0, 255],RGB红色分量值
  • g – int: [0, 255],RGB绿色分量值
  • b – int: [0, 255],RGB蓝色分量值
  • led_list – list [idx0, idx1, …],idx:int[0,7] 云台灯序号列表.
  • effect – enum: (“on”, “off”),灯效类型
返回:

bool: 调用结果

set_led(comp='all', r=0, g=0, b=0, effect='on', freq=1)

设置整机装甲灯效

参数:
  • comp – enum: (“all”, “top_all”, “top_right”, “top_left”, “bottom_all”, “bottom_front”, “bottom_back”, “bottom_left”, “bottom_right”) 灯效部位,all: 所有装甲灯;top_all:云台所有装甲灯; top_right: 云台右侧装甲灯;top_left: 云台左侧装甲灯; bottom_all: 底盘所有装甲灯;bottom_front: 前装甲灯; bottom_back: 后装甲灯;bottom_left: 左装甲灯;bottom_right: 右装甲灯
  • r – int: [0~255],RGB红色分量值
  • g – int: [0~255],RGB绿色分量值
  • b – int: [0~255],RGB蓝色分量值
  • effect – enum: (“on”, “off”, “flash”, “breath”, “scrolling”) 灯效类型,on:常亮;off:常灭;flash:闪烁; breath:呼吸;scrolling:跑马灯(仅对云台灯有效)
  • freq – int: [1, 10],闪烁频率,仅对闪烁灯效有效
返回:

bool:调用结果

class robomaster.led.TelloLed(robot)

基类:object

教育无人机 扩展LED模块

set_led(r=0, g=255, b=0)

设置扩展模块led颜色

参数:
  • r – int:[0, 255], 扩展led红色通道的强度
  • g – int:[0, 255], 扩展led绿色通道的强度
  • b – int:[0, 255], 扩展led蓝色通道的强度
返回:

bool: 扩展led模块控制结果

设置扩展模块led以制定的两种颜色与频率实现闪烁效果

参数:
  • freq – int:[0.1, 10], 扩展ked闪烁模式下的频率, 共十档,随着数字增大速度变快
  • r1 – int:[0, 255], 第一种颜色的红色通道的强度
  • g1 – int:[0, 255], 第一种颜色的绿色通道的强度
  • b1 – int:[0, 255], 第一种颜色的蓝色通道的强度
  • r2 – int:[0, 255], 第二种颜色的红色通道的强度
  • g2 – int:[0, 255], 第二种颜色的绿色通道的强度
  • b2 – int:[0, 255], 第二种颜色的蓝色通道的强度
返回:

bool: 扩展led模块控制结果

set_led_breath(freq=1, r=0, g=255, b=0)

设置扩展模块led以指定的颜色与频率实现呼吸效果

参数:
  • freq – int:[0.1, 2.5], 扩展led呼吸模式下的频率,共十档,随着数字增大速度变快
  • r – int:[0, 255], 扩展led红色通道的强度
  • g – int:[0, 255], 扩展led绿色通道的强度
  • b – int:[0, 255], 扩展led蓝色通道的强度
返回:

bool: 扩展led模块控制结果

set_mled_boot(display_graph)

设置点阵屏的开机画面

参数:display_graph – string: 长度最大为64,点阵屏显示图案的编码字符串,每个字符解读为二进制后对应位置的led点的状态,

‘0’为关闭该位置led,’r’为点亮红色,’b’为点亮蓝色,’p’ 为点亮紫色,输入的长度不足64,后面对应的led点默认都是’0’熄灭状态 :return: bool: 设置开机动画的结果

set_mled_bright(bright=255)

设置点阵屏的亮度

参数:bright – int:[0, 255] 点阵屏的亮度
返回:bool: 点阵屏亮度的设置结果
set_mled_char(color='r', display_char='0')

控制扩展点阵屏模块,显示输入的字符

Param:color: char: ‘r’为红色,’b’为蓝色,’p’ 为紫色
Param:display_char: char: [0~9, A~F, heart], 显示的字符
返回:bool: 控制结果
set_mled_char_scroll(direction='l', color='r', freq=1.5, display_str='DJI')

控制扩展点阵屏滚动显示字符串

Param:direction: char: 点阵屏滚动方向,’l’: 字符串向左移动,’r’: 字符串向右移动,’u’ 字符串向上移动,’d’ 字符串向下移动
Param:color: char: 点阵屏显示的颜色, ‘r’红色,’b’蓝色,’p’紫色
Param:freq: float:[0.1, 2.5], 点阵屏滚动的频率, 0.1-2.5HZ之间, 随着数字增大速度变快
Param:display_str: string:需要显示的字符串
返回:设置结果
set_mled_graph(display_graph)

用户自定义扩展点阵屏显示图案

参数:display_graph – string: 长度最大为64,点阵屏显示图案的编码字符串,每个字符解读为二进制后对应位置的led点的状态,

‘0’为关闭该位置led,’r’为点亮红色,’b’为点亮蓝色,’p’ 为点亮紫色,输入的长度不足64,后面对应的led点默认都是’0’熄灭状态 :return:bool: 控制结果

set_mled_graph_scroll(direction='l', freq=1.5, display_graph='00rrrr000r0000r0r0r00r0rr000000rr0r00r0rr00rr00r0r0000r000rrrr00')

控制扩展点阵屏滚动显示图像

Param:direction: char: 点阵屏滚动方向,’l’: 字符串向左移动,’r’: 字符串向右移动,’u’ 字符串向上移动,’d’ 字符串向下移动
Param:freq: float:[0.1, 2.5], 点阵屏滚动的频率, 0.1-2.5HZ之间, 随着数字增大速度变快
Param:display_str: string:需要显示的图像
返回:设置结果
set_mled_sc()

清除点阵屏开机显示画面

返回:bool: 清除点阵屏机显示画面的结果

10.1.12. robomaster.robot

class robomaster.robot.Robot(cli=None)

基类:robomaster.robot.RobotBase

RoboMaster EP 机甲大师 机器人

battery

获取电池模块对象

blaster

获取水弹枪模块对象

camera

获取相机模块对象

chassis

获取底盘模块对象

get_module(name)

获取模块对象

参数:name – 模块名称,字符串,如:chassis, gimbal, led, blaster, camera, battery, vision, etc.
返回:模块对象
get_robot_mode()

获取机器人工作模式

返回:自由模式返回free; 底盘跟随云台模式返回gimbal_lead;云台跟随底盘模式返回chassis_lead
get_sn()

获取机器人硬件SN信息

返回:硬件SN字符串,如:”3JKDH2T0011000”
get_version()

获取机器人固件版本号信息

返回:版本字符串,如:”01.01.0305”
gimbal

获取云台模块对象

initialize(conn_type='ap', proto_type='udp', sn=None)

初始化机器人

参数:
  • conn_type – 连接建立类型: ap表示使用热点直连;sta表示使用组网连接,rndis表示使用USB连接
  • proto_type – 通讯方式: tcp, udp

注意:如需修改默认连接方式,可在conf.py中指定DEFAULT_CONN_TYPE

led

获取灯效控制模块对象

play_audio(filename)

播放本地音频文件

参数:filename – 播放音效的文件名,目前仅支持单通道,48KHz采样的wav格式文件
返回:action对象
play_sound(sound_id, times=1)

播放系统音效

参数:
  • sound_id – 系统音效ID值
  • times – 播放次数
返回:

action对象

reset()

重置机器人到初始默认状态

robotic_arm

获取机械臂模块对象

set_robot_mode(mode='gimbal_lead')

设置机器人工作模式

参数:mode – 机器人工作模式: free表示自由模式;chassis_lead表示云台跟随底盘模式;gimbal_lead表示底盘跟随云台模式
返回:bool: 调用结果
vision

获取智能识别模块对象

class robomaster.robot.Drone(cli=None)

基类:robomaster.robot.RobotBase

教育系列无人机

close()

停止drone对象

config_sta(ssid, password)

设置飞机的连接模式为组网模式

参数:
  • ssid – 路由器的账号
  • password – 路由器的密码
返回:

bool: 设置结果

get_acceleration()

获取飞机三轴加速度值

返回:dict: 飞机三轴加速度值
get_attitude()

获取飞机三轴姿态信息

返回:dict: 飞机三轴姿态信息
get_baro()

获取电机气压计高度

返回:float: 电机气压计高度
get_drone_version()

获取飞机固件版本号

返回:string: 版本号
get_esp32_version()

获取esp32版本号

返回:string: 版本号
get_hardware()

获取飞机硬件信息 本命令仅支持SDK版本号>=30 可通过hardware?指令查询是否有接WIFI拓展模块,没接拓展模块返回TELLO,接了拓展模块返回RMTT。

返回:string: 硬件信息
get_height()

获取飞机相对高度

返回:string: 飞机相对高度
get_motor_time()

获取电机运行时间

返回:string: 电机的运行时间
get_sdk_version()

获取SDK版本号

返回:string: 版本号
get_sn()

获取飞机sn号

返回:string: 飞机的SN号
get_ssid()

获取SSID名称

返回:string: ssid名称
get_status(name)

获取飞机指定的状态

参数:name – string:需要获取的状态名,可列表[“MID”, “x”, “y”, “z”, “mpry”, “pitch”, “roll”, “yaw”, “vgx”, “vgy”, “vgz”, “templ”, “temph”, “tof”, “h”, “bat”, “baro”, “time”, “agx”, “agy”, “agz”],详细介绍 参考SDK使用文档
返回:name对应状态的数据值,DDS_PAD_MPRY_FLAG 对应状态的返回值为长度为3的list,分别代表的在飞机相对挑战卡的pitch、yaw、row值, 其他状态返回的都是float数据
get_subnets()

Look through the machine’s internet connection and returns subnet addresses and server ip :return: list[str]: subnets

list[str]: addr_list
get_temp()

获取飞机机身温度

返回:dict: 飞机机身温度
get_wifi()

获取wifi信噪比

返回:float: wifi的信噪比数值
get_wifi_version()

获取WIFI版本号

返回:string: 版本号
scan_drone_robot()

Automatic scanning of robots in the network

参数:num
返回:
set_wifichannel(channel)

设置飞机WIFI信道

参数:channel – 需要设置的信道
返回:bool: 设置结果
sub_drone_info(freq=5, callback=None, *args, **kw)

订阅飞机高度、气压计、电机运行时间信息

参数:
  • freq – 订阅数据的频率, 1HZ, 5HZ, 10HZ
  • callback – 传入数据处理的回掉函数
  • args – 回调函数参数
  • kw – 回调函数参数
返回:

返回订阅结果

sub_temp(freq=5, callback=None, *args, **kw)

订阅飞机温度信息

参数:
  • freq – 订阅数据的频率, 1HZ, 5HZ, 10HZ
  • callback – 传入数据处理的回掉函数
  • args – 回调函数参数
  • kw – 回调函数参数
返回:

返回订阅结果

sub_tof(freq=5, callback=None, *args, **kw)

订阅飞机tof信息

参数:
  • freq – 订阅数据的频率, 1HZ, 5HZ, 10HZ
  • callback – 传入数据处理的回掉函数
  • args – 回调函数参数
  • kw – 回调函数参数
返回:

返回订阅结果

unsub_drone_info()

取消订阅飞机高度、气压计、电机运行时间信息

返回:返回取消订阅结果
unsub_temp()

取消订阅温度信息。

返回:返回取消订阅结果。
unsub_tof()

取消订阅tof信息

返回:返回取消订阅结果

10.1.13. robomaster.robotic_arm

class robomaster.robotic_arm.RoboticArm(robot)

基类:robomaster.module.Module

EP 机械臂 模块

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

move(x=0, y=0)

机械臂相对位置移动

参数:
  • x – float, x轴运动距离,向前移动为正方向,单位 mm
  • y – float, y轴运动距离,向上移动为正方向,单位 mm
返回:

action对象

moveto(x=0, y=0)

机械臂绝对位置移动

参数:
  • x – float, x轴运动距离,向前移动为正方向,单位 mm
  • y – float, y轴运动距离,向上移动为正方向,单位 mm
返回:

action对象

recenter()

控制机械臂回中

返回:action对象
sub_position(freq=5, callback=None, *args, **kw)

订阅机械臂的位置信息

参数:
  • freq – enum:(1,5,10,20,50) 设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 (pos_x, pos_y):

    pos_x:机械臂x轴位置信息
    pos_y:机械臂y轴位置信息
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

unsub_position()

取消机械臂位置信息订阅

返回:bool: 取消订阅结果

10.1.14. robomaster.sensor

class robomaster.sensor.DistanceSensor(robot)

基类:robomaster.module.Module

EP 距离传感器模块

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

sub_distance(freq=5, callback=None, *args, **kw)

订阅距离传感器测量的距离信息

参数:
  • freq – 订阅数据的频率,支持的订阅频率为1、5、10、20、50hz
  • callback

    传入数据处理的回调函数,回调函数的参数为:

    distance[4]:4个tof的距离信息
  • args – 传入参数。
返回:

返回订阅结果。

unsub_distance()

取消距离传感器的信息订阅。

class robomaster.sensor.SensorAdaptor(robot)

基类:robomaster.module.Module

EP 传感器板模块

get_adc(id=1, port=1)

传感器板adc值获取

参数:
  • id – int[1,8],传感器板编号
  • port – int:[1,2],传感器板端口号
返回:

adc值

get_io(id=1, port=1)

传感器板io电平值获取

参数:
  • id – int[1,8], 传感器板编号
  • port – int:[1,2], 传感器板端口号
返回:

io电平值

get_pulse_period(id=1, port=1)

传感器板电平持续时间获取

参数:
  • id – int[1,8], 传感器板编号
  • port – int:[1,2], 传感器板端口号
返回:

电平持续时间,单位ms

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

class robomaster.sensor.TelloDistanceSensor(robot)

基类:object

教育无人机 距离传感器模块

get_ext_tof()

获取扩展模块tof传感器的数值

返回:float: 扩展模块tof传感器的值

10.1.15. robomaster.servo

class robomaster.servo.Servo(robot)

基类:robomaster.module.Module

EP 舵机模块

get_angle(index=1)

获取舵机角度值

参数:index – int: [1,3],舵机编号
返回:int 舵机角度
get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

moveto(index=0, angle=0)

舵机绝对位置移动

参数:
  • index – int [1, 3],舵机编号
  • angle – int: [-180, 180],舵机旋转角度,单位(°)
返回:

action对象

pause(index=0)

停止

参数:index – int: [1, 3],舵机编号
Return bool:调用结果
sub_servo_info(freq=5, callback=None, *args, **kw)

订阅舵机角度信息

参数:
  • freq – enum: (1, 5, 10, 20, 50) 设置数据订阅数据的推送频率,单位 Hz
  • callback

    回调函数,返回数据 (valid[4], speed[4], angle[4]):

    valid[4]:4个舵机在线状态
    speed[4]:4个舵机的速度值
    angle[4]:4个舵机的角度值
  • args – 可变参数
  • kw – 关键字参数
返回:

bool: 数据订阅结果

unsub_servo_info()

取消订阅舵机的角度信息 :return: bool: 调用结果

10.1.16. robomaster.uart

class robomaster.uart.Uart(robot)

基类:robomaster.module.Module

EP 串口模块

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

serial_param_set(baud_rate=0, data_bit=1, odd_even=0, stop_bit=0, rx_en=1, tx_en=1, rx_size=50, tx_size=50)

底盘串口参数设置

默认设置:’9600’, ‘bit8’, ‘none’, ‘1’

参数:
  • baud_rate – 串口波特率,设置范围:0~4映射‘9600’,‘19200’,‘38400’,‘57600’,‘115200’
  • data_bit – 数据位设置,设置范围:0~3映射‘bit7’, ‘bit8’, ‘bit9’, ‘bit10’
  • odd_even – 数据校验位,设置范围:0~3映射‘none’, ‘odd’, ‘even’
  • stop_bit – 停止位,设置范围:1~2
  • rx_en – 接收使能
  • tx_en – 发送使能
  • rx_size – 接收buff大小
  • tx_size – 发送buff大小
返回:

返回串口设置结果

serial_send_msg(msg_buf)

底盘串口数据数据发送

参数:
  • msg_buf – 发送的数据
  • msg_len – 发送的数据长度
返回:

返回串口数据发送结果

10.1.17. robomaster.version

10.1.18. robomaster.vision

class robomaster.vision.Vision(robot)

基类:robomaster.module.Module

EP 视觉识别模块

get_version()

获取模块版本号

:return:字符串,格式为:AA.BB.CC.DD

sub_detect_info(name, color=None, callback=None, *args, **kw)

订阅智能识别消息

参数:
  • name – enum: (“person”, “gesture”, “line”, “marker”, “robot”),person 行人,gesture 手势,line 线识别, marker 标签识别,robot 机器人识别
  • color – enum:(“red”, “green”, “blue”): 指定识别颜色,仅线识别和标签识别时生效
  • callback

    回调函数,返回数据 (list(rect_info)):

    rect_info:包含的信息如下: person 行人识别:(x, y, w, h), x 中心点x轴坐标,y 中心点y轴坐标,w 宽度,h 高度 gesture 手势识别:(x, y, w, h), x 中心点x轴坐标,y 中心点y轴坐标,w 宽度,h 高度 line 线识别:(x, y, theta, C),x点x轴坐标,y点y轴坐标,theta切线角,C 曲率 marker 识别:(x, y, w, h, marker), x 中心点x轴坐标,y 中心点y轴坐标,w 宽度,h 高度,marker 识别到的标签 robot 机器人识别:(x, y, w, h),x 中心点x轴坐标,y 中心点y轴坐标,w 宽度,h 高度
unsub_detect_info(name)

取消智能订阅消息

参数:name – enum: (“person”, “gesture”, “line”, “marker”, “robot”),取消的智能识别功能
返回:bool: 调用结果

10.1.19. Module contents