我是靠谱客的博主 眼睛大路灯,最近开发中收集的这篇文章主要介绍Robomaster-S1 Python API 整合,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Robomaster-S1 Python API 整合版

      • 系统
        • 1、开始运行
          • 说明
          • Python API
        • 2、设置整机运动(云台跟随底盘模式)
          • 说明
          • Python API
        • 3、计时器(开始)计时
          • 说明
          • Python API
        • 4、控制相机放大(1)倍
          • 说明
          • Python API
        • 5、计时器时间
          • 说明
          • Python API
        • 6、程序运行时间
          • 说明
          • Python API
        • 7、当前的(年)
          • 说明
          • Python API
        • 8、当前的时间戳
          • 说明
          • Python API
      • 灯效
        • 1、设置(所有)LED 闪烁(2)Hz
          • 说明
          • Python API
        • 2、底盘(所有)LED 颜色(青色)灯效(常亮)
          • 说明
          • Python API
        • 3、云台(所有)LED 颜色(青色)灯效(常亮)
          • 说明
          • Python API
        • 4、云台(所有)LED 序号(1)灯效(常亮)
          • 说明
          • Python API
        • 5、关闭(所有)LED
          • 说明
          • Python API
        • 6、(开启)弹道灯
          • 说明
          • Python API
      • 底盘
        • 1、设置(PWM_all)输出百分比为(7.5)
          • 说明
          • Python API
        • 2、(开启)底盘速度杆量叠加
          • 说明
          • Python API
        • 3、设置底盘以(0)度跟随云台
          • 说明
          • Python API
        • 4、设置底盘平移速率(0.5)米/秒
          • 说明
          • Python API
        • 5、设置底盘旋转速率(30)度/秒
          • 说明
          • Python API
        • 6、控制麦轮以转速 左前轮(100)右前轮(100)左后轮(100)右后轮(100)转/分转动
          • 说明
          • Python API
        • 7、控制底盘向(0)度平移
          • 说明
          • Python API
        • 8、控制底盘向(0)度平移(1)秒
          • 说明
          • Python API
        • 9、控制底盘向(0)度平移(1)米
          • 说明
          • Python API
        • 10、控制底盘以(0.5)米/秒向(0)度平移
          • 说明
          • Python API
        • 11、控制底盘(向右)旋转
          • 说明
          • Python API
        • 12、控制底盘(向右)旋转(1)秒
          • 说明
          • Python API
        • 13、控制底盘(向右)旋转(0)度
          • 说明
          • Python API
        • 14、控制机器人向底盘前方(0)度平移且(向右)旋转
          • 说明
          • Python API
        • 15、控制底盘以(0.5)米/秒沿X轴平移 (0.5)米/秒沿Y轴平移 (30)度/秒绕 Z 轴旋转
          • 说明
          • Python API
        • 16、控制底盘停止运动
          • 说明
          • Python API
        • 17、底盘(航向轴)姿态角
          • 说明
          • Python API
        • 18、底盘当前位置(X 坐标)
          • 说明
          • Python API
        • 19、当底盘撞击到障碍物
          • 说明
          • Python API
        • 20、底盘撞击到障碍物
          • 说明
          • Python API
      • 云台
        • 1、(开启)云台速度杆量叠加
          • 说明
          • Python API
        • 2、设置云台以(0)度跟随底盘
          • 说明
          • Python API
        • 3、设置云台旋转速率(30)度/秒
          • 说明
          • Python API
        • 4、控制云台(回中)
          • 说明
          • Python API
        • 5、控制云台(向上)旋转
          • 说明
          • Python API
        • 6、控制云台(向上)旋转(0)度
          • 说明
          • Python API
        • 7、控制云台绕航向轴旋转到(0)度
          • 说明
          • Python API
        • 8、控制云台绕俯仰轴旋转到(0)度
          • 说明
          • Python API
        • 9、控制云台旋转到航向轴(0)度 俯仰轴(0)度
          • 说明
          • Python API
        • 10、控制云台以(30)度/秒绕航向轴旋转 (30)度/秒绕俯仰轴旋转
          • 说明
          • Python API
        • 11、云台(航向轴)姿态角
          • 说明
          • Python API
      • 发射器
        • 1、设置发弹数(1)颗/次
          • 说明
          • Python API
        • 2、单次发射水弹
          • 说明
          • Python API
        • 3、连续发射水弹
          • 说明
          • Python API
        • 4、停止发射水弹
          • 说明
          • Python API
      • 智能
        • 1、(开启)(视觉标签)识别
          • 说明
          • Python API
        • 2、(开启)线识别
          • 说明
          • Python API
        • 3、(开启)拍手识别
          • 说明
          • Python API
        • 4、设置视觉标签的可识别距离为(1)米内
          • 说明
          • Python API
        • 5、设置线识别颜色为(蓝)
          • 说明
          • Python API
        • 6、将曝光值设为(大)
          • 说明
          • Python API
        • 7、识别到(红心)并瞄准
          • 说明
          • Python API
        • 8、当识别到(行人)
          • 说明
          • Python API
        • 9、当识别到(两次拍手)
          • 说明
          • Python API
        • 10、识别到(行人)
          • 说明
          • Python API
        • 11、识别到(两次拍手)
          • 说明
          • Python API
        • 12、等待识别到(行人)
          • 说明
          • Python API
        • 13、等待识别到(两次拍手)
          • 说明
          • Python API
        • 14、识别到的视觉标签信息
          • 说明
          • Python API
        • 15、识别到的行人信息
          • 说明
          • Python API
        • 16、识别到的姿势信息
          • 说明
          • Python API
        • 17、识别到的线信息
          • 说明
          • Python API
        • 18、当前场景亮度
          • 说明
          • Python API
        • 19、准星位置
          • 说明
          • Python API
      • 装甲板
        • 1、设置装甲板灵敏度(5)
          • 说明
          • Python API
        • 2、当任一装甲板受到攻击
          • 说明
          • Python API
        • 3、最近受到攻击的装甲板(ID)
          • 说明
          • Python API
        • 4、(任一)装甲板受到攻击
          • 说明
          • Python API
        • 5、等待(任一)装甲板受到攻击
          • 说明
          • Python API
      • 移动设备
        • 1、移动设备(航向轴)角度
          • 说明
          • Python API
        • 2、移动设备(X轴)加速度
          • 说明
          • Python API
      • 多媒体
        • 1、播放音效(被击中)
          • 说明
          • Python API
        • 2、播放音效(被击中)直到结束
          • 说明
          • Python API
        • 3、拍照
          • 说明
          • Python API
        • 4、(开始)视频录制
          • 说明
          • Python API
      • 数据对象
        • 17、创建 PID 控制器
          • 说明
          • Python API
        • 18、设置 PID 控制器(#PID#)的误差为(0)
          • 说明
          • Python API
        • 19、设置 PID 控制器(#PID#)的参数 Kp(0)Ki(0)Kd(0)
          • 说明
          • Python API
        • 20、PID 控制器(# PID#)的输出
          • 说明
          • Python API

系统

1、开始运行

说明

(1)含义:当机器人启动时首先执行的程序

(2)类型:内置模块

注意:

如果模块没有放置在“开始运行”内部(事件触发、函数模块除外),将不会执行。例如在如下例程中,RoboMaster S1 不会拍照。

Python API

Function: start()

Type: Main function

2、设置整机运动(云台跟随底盘模式)

说明

(1)含义:设置整机运动的 3 种模式:

  • 云台跟随底盘模式:云台始终跟随底盘绕航向轴旋转

  • 底盘跟随云台模式:底盘始终跟随云台绕航向轴旋转

  • 自由模式:云台与底盘运动分离,互不影响

(2)类型:设置类

注意:

1)RoboMaster S1 的默认运动模式为“云台跟随底盘模式”,若在程序中未另行设置,则默认选择的是“云台跟随底盘模式”。

2)在“云台跟随底盘模式”下,如果底盘不旋转,云台无法单独左右旋转。

②一起摇摆

在“底盘跟随云台模式”下,只对云台进行设置:

云台绕航向轴来回旋转,观察底盘是否同样左右摇摆,并最终跟随云台回到初始位置。

注意:

在“底盘跟随云台模式”下,如果云台不旋转,底盘无法单独左右旋转。

③反向旋转

在“自由模式”下,控制云台和底盘各自向相反方向旋转。观察它们是否会相互干扰。

注意:

在“自由模式”下,“设置底盘以(x)度跟随云台”和“设置云台以(x)度跟随底盘”这两个模块不生效。

Python API

Function: robot.set_mode(mode_enum)

Parameters:

  • mode_enum(enum)

    • rm_define.robot_mode_gimbal_follow
    • rm_define.robot_mode_chassis_follow
    • rm_define.robot_mode_free

3、计时器(开始)计时

说明

(1)含义:控制计时器开始、暂停或结束计时

(2)类型:执行类

注意:

Python API

Function: tools.timer_ctrl(behavior_enum)

Parameters:

  • behavior_enum(enum):

    • rm_define.timer_start
    • rm_define.timer_stop
    • rm_define.timer_reset

4、控制相机放大(1)倍

说明

(1)含义:放大相机倍镜,让机器人的视觉识别距离更远,局部图像更清晰

(2)类型:执行类

Python API

Function: media_ctrl.zoom_value_update(value)

Parameters:

  • value (int): [1, 4]

5、计时器时间

说明

(1)含义:获取计时器从开始到当前时刻的用时,返回秒数

(2)类型:信息类(变量型数据)

Python API

Function: tools.timer_current()

Return value:

  • time_stamp(float)

6、程序运行时间

说明

(1)含义:获取程序运行用时,返回秒数

(2)类型:信息类(变量型数据)

Python API

Function: tools.run_time_of_program()

Return value:

  • time (float)

7、当前的(年)

说明

(1)含义:获取当前的时间信息,如年/月/日/时/分/秒等。

(2)类型:信息类(变量型数据)

Python API

Function: tools.get_localtime(time_enum)

Parameters:

  • time_enum (enum):

    • rm_define.localtime_year
    • rm_define.localtime_month
    • rm_define.localtime_day
    • rm_define.localtime_hour
    • rm_define.localtime_minute
    • rm_define.localtime_second

Return value

  • time (int)

8、当前的时间戳

说明

(1)含义:机器人启动时刻至今的时间间隔,返回累计的秒数

(2)类型:信息类(变量型数据)

当运行用时超过1小时(runTime_hour>1),要注意休息。

注意:

1)机器人的启动时刻是指上电时刻。

2)如果机器人在断电后重启,会重新累计时间戳。

Python API

Function: tools.get_unixtime()

Return value:

  • time (float)

灯效

1、设置(所有)LED 闪烁(2)Hz

说明

(1)含义:设置指定位置LED灯的闪烁频率,2Hz 即每秒闪烁 2 次

(2)类型:设置类

Python API

Function: led_ctrl.set_flash(armor_enum, frequency)

Parameters:

  • armor_enum(enum):

    • rm_define.armor_all
    • rm_define.armor_bottom_front
    • rm_define.armor_bottom_back
    • rm_define.armor_bottom_left
    • rm_define.armor_bottom_right
    • rm_define.armor_top_left
    • rm_define.armor_top_right
  • frequency(int): [1, 10]

2、底盘(所有)LED 颜色(青色)灯效(常亮)

说明

(1)含义:控制底盘指定位置LED灯的颜色和灯效:

  • 常亮,LED 灯保持点亮状态

  • 熄灭,LED 灯关闭

  • 呼吸,LED 灯明暗变化(由暗变亮再变暗)

  • 闪烁,LED 灯以一定频率闪烁

(2)类型:执行类

Python API

Function: led_ctrl.set_bottom_led(armor_enum, r, g, b, led_effect_enum)

Parameters:

  • armor_enum(enum):

    • rm_define.armor_bottom_all
    • rm_define.armor_bottom_front
    • rm_define.armor_bottom_back
    • rm_define.armor_bottom_left
    • rm_define.armor_bottom_right
  • r(int): [0, 255]

  • g(int): [0, 255]

  • b(int): [0, 255]

  • led_effect_enum(enum):

    • rm_define.effect_always_on
    • rm_define.effect_always_off
    • rm_define.effect_breath
    • rm_define.effect_flash

3、云台(所有)LED 颜色(青色)灯效(常亮)

说明

(1)含义:设置云台指定位置 LED 灯的颜色和灯效:

  • 常亮,LED 灯保持点亮状态

  • 熄灭,LED 灯关闭

  • 呼吸,LED 灯明暗变化(由暗变亮再变暗)

  • 闪烁,LED 灯以一定频率闪烁

  • 跑马灯,呈圆形排布的 8 颗 LED 灯顺时针滚动点亮

(2)类型:执行类

Python API

Function: led_ctrl.set_top_led(armor_enum, r, g, b, led_effect_enum)

Parameters:

  • armor_enum(enum):

    • rm_define.armor_top_all
    • rm_define.armor_top_left
    • rm_define.armor_top_right
  • r(int): [0, 255]

  • g(int): [0, 255]

  • b(int): [0, 255]

  • led_effect_enum(enum):

    • rm_define.effect_always_on
    • rm_define.effect_always_off
    • rm_define.effect_breath
    • rm_define.effect_flash
    • rm_define.effect_marquee

4、云台(所有)LED 序号(1)灯效(常亮)

说明

(1)含义:设置云台指定序号 LED 灯的亮灭,序号 1~8 分别对应云台两侧可独立控制的 8 颗 LED 灯

(2)类型:执行类

注意:LED灯支持多选。

Python API

Function: led_ctrl.set_signle_led(armor_enum, led_index, led_effect_enum)

Parameters:

  • armor_enum(enum):

    • rm_define.armor_top_all
    • rm_define.armor_top_left
    • rm_define.armor_top_right
  • index(int/list): [1, 8]

  • led_effect_enum(enum):

    • rm_define.effect_always_on
    • rm_define.effect_always_off

5、关闭(所有)LED

说明

(1)含义:关闭指定位置的LED灯

(2)类型:执行类

Python API

Function: led_ctrl.turn_off(armor_enum)

Parameters:

  • armor_enum(enum)

    • rm_define.armor_all
    • rm_define.armor_bottom_front
    • rm_define.armor_bottom_back
    • rm_define.armor_bottom_left
    • rm_define.armor_bottom_right
    • rm_define.armor_top_left
    • rm_define.armor_top_right

6、(开启)弹道灯

说明

(1)含义:控制发射器弹道灯的亮灭

(2)类型:执行类

Python API

Function: led_ctrl.gun_on()

led_ctrl.gun_off()

底盘

1、设置(PWM_all)输出百分比为(7.5)

说明

(1)含义:设置 PWM 输出百分比,数值越大,在某一周期内高电平的持续时间越长。该 PWM 基础频率为50Hz。

(2)类型:设置类

注意:

1)PWM 口位于底盘控制模块上,拿开底盘后侧的透明盖板即可看到。

从上至下共6个 PWM 口。

2)PWM 又称脉冲宽度调制,控制的是某一周期内高电平的持续时间,现广泛应用于LED 灯、舵机等的控制上。

3)上电后,PWM 接口默认输出7.5%占空比的信号,每次程序运行结束后,也会恢复默认的输出信号。

4)对灯条来说,PWM 输出百分比范围为0%~100%,0意味着灯最暗,100意味着灯最亮。

5)对舵机来说,PWM 输出百分比范围为2.5% ~ 12.5%。因为大部分舵机的控制脉冲频率为50 Hz,控制周期为20 ms,可调节角度-90 °~ 90°对应的高电平脉宽为0.5 ms ~ 2.5 ms, 因此舵机占空比的控制范围便是0.5/20~2.5/20,即2.5% ~ 12.5%。

玩家们可以根据自己想要控制的旋转角度设置舵机 PWM 的输出百分比。

Python API

Function: chassis_ctrl.set_pwm_value(pwm_port_enum, output_percent)

Parameters:

  • pwm_port_enum(enum)

    • rm_define.pwm_all
    • rm_define.pwm1
    • rm_define.pwm2
    • rm_define.pwm3
    • rm_define.pwm4
    • rm_define.pwm5
    • rm_define.pwm6
  • output_percent(int): [0, 100]

2、(开启)底盘速度杆量叠加

说明

(1)含义:开启或关闭底盘速度杆量叠加

(2)类型:设置类

注意:

1)如果不添加“开启底盘速度杆量叠加”模块,在运行程序时我们无法手控底盘;而添加此模块后,我们就可以对运行中的机器人进行移动控制,并且控制量会叠加。

2)杆量是指摇杆幅值的推动大小。杆量范围为 -1 ~ 1。

如图,在 FPV 界面中将虚拟摇杆推满,杆量便为 1。

3)速度杆量叠加是将底盘在程序中的速度与摇杆速度相加。

如图,在程序中设置底盘以 0.5m/s 向前平移,同时我们将杆量推满,

开启底盘速度杆量叠加后,机器人就会将两种控制数据“叠加”,

最终机器人将以(0.5+1*当前最大向前速度)m/s的速率向前平移。

Python API

Function: chassis_ctrl.enable_stick_overlay()

chassis_ctrl.disable_stick_overlay()

3、设置底盘以(0)度跟随云台

说明

(1)含义:在“底盘跟随云台模式”下,当云台左右旋转时,底盘始终与云台保持指定夹角

(2)类型:设置类

注意:

1)在“云台跟随底盘模式”或“自由模式”下,此模块不生效。

2)0度意味着没有夹角,底盘和云台绕航向轴的运动方向始终保持一致。

Python API

Function: chassis_ctrl. set_follow_gimbal_offset(degree)

Parameters:

  • degree(int): [-180, 180]°

4、设置底盘平移速率(0.5)米/秒

说明

(1)含义:设置底盘平移速率,默认平移速率是 0.5 米/秒。数值越大,移动越快。

(2)类型:设置类

注意:

在为底盘设定较大的平移速率前,请确保底盘运动方向上没有障碍物。

Python API

Function: chassis_ctrl.set_trans_speed(speed)

Parameters:

  • speed(float): [0, 3.5] m/s

5、设置底盘旋转速率(30)度/秒

说明

(1)含义:设置底盘旋转速率,默认旋转速率是 30 度/秒。数值越大,旋转越快。

(2)类型:设置类

Python API

Function: chassis_ctrl.set_rotate_speed(speed)

Parameters:

  • speed(int): [0, 600] °/s

6、控制麦轮以转速 左前轮(100)右前轮(100)左后轮(100)右后轮(100)转/分转动

说明

(1)含义:独立控制四个麦轮的转速,符合麦轮转动方向和速度的有效组合才会生效。

(2)类型:执行类

注意:

1)默认的麦轮组合“左前轮(100)右前轮(100)左后轮(100)右后轮 (100)转/分”是控制机器人向前平移。

2)如何判定组合是否有效?

请用手推着机器人作期望动作,俯视观察每个麦轮的转动方向——向前转动为正值,向后转动为负值。

例:

当机器人向右平移时,左前轮和右后轮向前转动,所以转速值为正值;右前轮和左后轮向后转动,所以转速值为负值。

当机器人向左后平移时,左前轮和右后轮向后转动,所以转速值为负值;右前轮和左后轮不动,所以转速值为 0。

当机器人向左旋转时,右前轮和右后轮向前转动,所以转速值为正值;左前轮和左后轮向后转动,所以转速值为负值。

Python API

Function: chassis_ctrl.set_wheel_speed(lf_speed, rf_speed, lr_speed, rr_speed)

Parameters:

  • lf_speed(int): [-1000, 1000] rpm

  • rf_speed(int): [-1000, 1000] rpm

  • lr_speed(int): [-1000, 1000] rpm

  • rr_speed(int): [-1000, 1000] rpm

7、控制底盘向(0)度平移

说明

(1)含义:控制底盘向指定方向平移

(2)类型:执行类

注意:

此模块会控制底盘向指定方向持续平移,直到收到“控制底盘停止运动”、“等待(x)秒”或其它控制底盘运动的指令。

Python API

Function: chassis_ctrl.move(degree)

Parameters:

  • degree (int): [-180, 180] °

8、控制底盘向(0)度平移(1)秒

说明

(1)含义:控制底盘向指定方向平移指定时长

(2)类型:执行类

Python API

Function: chassis_ctrl.move_with_time(degree, time)

Parameters:

  • degree(int): [-180, 180] °

  • time(float): [0, 20] s

9、控制底盘向(0)度平移(1)米

说明

(1)含义:控制底盘向指定方向平移指定距离

(2)类型:执行类

Python API

Function: chassis_ctrl.move_with_distance(degree, distance)

Parameters:

  • degree(int): [-180, 180] °

  • distance(float): [0, 5] m

10、控制底盘以(0.5)米/秒向(0)度平移

说明

(1)含义:控制底盘以指定的平移速率向指定方向平移

(2)类型:执行类

Python API

Function: chassis_ctrl.move_degree_with_speed(speed, degree)

Parameters:

  • speed(float): [0, 3.5] m/s

  • degree(int): [-180, 180] °

11、控制底盘(向右)旋转

说明

(1)含义:控制底盘向指定方向旋转

(2)类型:执行类

注意:

1)在“底盘跟随云台模式”下,此模块不生效。

2)在为底盘设定较大的旋转速率前,请确保机器人周围没有障碍物。

3)此模块会控制底盘向指定方向持续旋转,直到收到“控制底盘停止运动”、“等待(x)秒”或其它控制底盘运动的指令。

Python API

Function: chassis_ctrl.rotate(direction_enum)

Parameters:

  • direction_enum(enum):

    • rm_define.clockwise
    • rm_define.anticlockwise

12、控制底盘(向右)旋转(1)秒

说明

(1)含义:控制底盘向指定方向旋转指定时长

(2)类型:执行类

注意:

在“底盘跟随云台模式”下,此模块不生效。

Python API

Function: chassis_ctrl.rotate_with_time(direction_enum, time)

Parameters:

  • direction_enum(enum):

    • rm_define.clockwise
    • rm_define.anticlockwise
  • time(float): [0, 20] s

13、控制底盘(向右)旋转(0)度

说明

(1)含义:控制底盘向指定方向旋转指定角度

(2)类型:执行类

注意:

在“底盘跟随云台模式”下,此模块不生效。

Python API

Function: chassis_ctrl.rotate_with_degree(direction_enum, degree)

Parameters:

  • direction_enum(enum):

    • rm_define.clockwise
    • rm_define.anticlockwise
  • degree(int): [0, 1800] °

14、控制机器人向底盘前方(0)度平移且(向右)旋转

说明

(1)含义:控制底盘向指定方向平移的同时做旋转运动

(2)类型:执行类

注意:

在“底盘跟随云台模式”下,此模块中“控制机器人旋转”的部分不生效,“控制机器人平移”的部分不受影响。

Python API

Function: chassis_ctrl.move_and_rotate(degree, direction)

Parameters:

  • degree(int): [-180, 180] °

  • direction_enum(enum):

    • rm_define.clockwise
    • rm_define.anticlockwise

15、控制底盘以(0.5)米/秒沿X轴平移 (0.5)米/秒沿Y轴平移 (30)度/秒绕 Z 轴旋转

说明

(1)含义:控制底盘以指定速度在指定方向运动

(2)类型:执行类

Python API

Function: chassis_ctrl.move_with_speed(speed_x, speed_y,

speed_rotation)

Parameters:

  • speed_x(float): [0, 3.5] m/s

  • speed_y(float): [0, 3.5] m/s

  • speed_rotation(int): [-600, 600] °/s

16、控制底盘停止运动

说明

(1)含义:停止底盘的所有运动

(2)类型:执行类

Python API

Function: chassis_ctrl.stop()

17、底盘(航向轴)姿态角

说明

(1)含义:以上电时刻底盘位置为基准,获取底盘当前在航向轴、俯仰轴或翻滚轴上的姿态角值

(2)类型:信息类(变量型数据)

注意:

1、底盘绕航向轴:左右旋转

2、底盘绕俯仰轴:上下旋转

3、底盘绕翻滚轴:侧翻

Python API

Function: chassis_ctrl.get_attitude(attitude_enum)

Parameters:

  • attitude_enum(enum):

    • rm_define.chassis_yaw
    • rm_define.chassis_pitch
    • rm_define.chassis_roll

Return value:

  • degree(float)

18、底盘当前位置(X 坐标)

说明

(1)含义:获取底盘当前位置的坐标和朝向数据

(2)类型:信息类(变量型数据)

注意:

因为底盘处于闭环控制状态,所以用手推动它时会感觉有阻力,这是正常的。

Python API

Function: chassis_ctrl.get_position_based_power_on(action_enum)

Parameters:

  • action_enum(enum):

    • rm_define.chassis_forward
    • rm_define.chassis_translation
    • rm_define.chassis_rotate

Return value:

  • position(float)

19、当底盘撞击到障碍物

说明

(1)含义:在行驶过程中,当底盘撞击到人、桌腿等障碍物时,运行本模块内程序

(2)类型:事件类

Python API

Function: def chassis_impact_detection(msg)

Type: Event callback

20、底盘撞击到障碍物

说明

(1)含义:在行驶过程中,检测到底盘撞击到人、桌腿等障碍物时会返回“真”,否则返回“假”

(2)返回值:布尔型

Python API

Function:chassis_ctrl.is_impact()

Return value:

  • impact_status(bool)

云台

1、(开启)云台速度杆量叠加

说明

(1)含义:开启或关闭云台速度杆量叠加

(2)类型:设置类

Python API

Function: gimbal_ctrl.enable_stick_overlay()

gimbal_ctrl.disable_stick_overlay()

2、设置云台以(0)度跟随底盘

说明

(1)含义:在“云台跟随底盘模式”下,当底盘左右旋转时,云台始终与底盘保持指定夹角

(2)类型:设置类

注意:

1、在“底盘跟随云台模式”或“自由模式”下,此模块不生效。

2、0 度意味着没有夹角,云台和底盘绕航向轴的运动方向始终保持一致。

3、此例程是“控制云台左右旋转”的另一种实现方法。

Python API

Function: gimbal_ctrl.set_follow_chassis_offset(degree)

Parameters:

  • degree(int): [-180, 180] °

3、设置云台旋转速率(30)度/秒

说明

(1)含义:设置云台旋转速率,默认速率是 30 度/秒。数值越大,旋转越快。

(2)类型:设置类

注意:

在为云台设定较大的旋转速率前,请确保机器人周围没有障碍物。

Python API

Function: gimbal_ctrl.set_rotate_speed(speed)

Parameters:

  • speed(float): [0, 540] °/s

4、控制云台(回中)

说明

(1)含义:控制云台动作:

  • 回中:云台回到航向轴和俯仰轴的初始位置

  • 停止运动:云台停止运动,但仍处于受控状态

  • 休眠:云台断电

  • 唤醒:云台重新通电

(2)类型:执行类

注意:

在“云台跟随底盘模式”下,“控制云台回中” 模块不生效。

②空中悬停

云台向上旋转 0.5 秒后静止 2 秒,而后向下旋转 0.5 秒回到原位,停止运动。

Python API

Function: gimbal_ctrl.recenter()

gimbal_ctrl.stop()

gimbal_ctrl.suspend()

gimbal_ctrl.resume()

5、控制云台(向上)旋转

说明

(1)含义:控制云台向指定方向旋转

(2)类型:执行类

注意:

1)在“云台跟随底盘模式”下,“控制云台(向左/向右)旋转”不生效,“控制云台(向上/向下)旋转”不受影响。

2)此模块会控制云台向指定方向持续旋转,直到收到“控制云台停止运动”、“等待(x)秒”或其它控制云台运动的指令。

Python API

Function: gimbal_ctrl.rotate(direction_enum)

Parameters:

  • direction_enum(enum):

    • rm_define.gimbal_up
    • rm_define.gimbal_down
    • rm_define.gimbal_left
    • rm_define.gimbal_right

6、控制云台(向上)旋转(0)度

说明

(1)含义:控制云台向指定方向旋转指定角度

(2)类型:执行类

注意:

在“云台跟随底盘模式”下,“控制云台(向左/向右)旋转(x)度”不生效,“控制云台(向上/向下)旋转(x)度”不受影响。

Python API

Function: gimbal_ctrl.rotate_with_degree(direction_enum, degree)

Parameters:

  • direction_enum(enum):

    • rm_define.gimbal_up
    • rm_define.gimbal_down
    • rm_define.gimbal_left
    • rm_define.gimbal_right
  • degree(int): [0, 55]°

7、控制云台绕航向轴旋转到(0)度

说明

(1)含义:控制云台绕航向轴旋转到指定位置

(2)类型:执行类

注意:

1)在“云台跟随底盘模式”下,此模块不生效。

2)云台绕航向轴实现左右旋转,绕俯仰轴实现上下旋转。

Python API

Function: gimbal_ctrl.yaw_ctrl(degree)

Parameters:

  • degree(int): [-250, 250]°

8、控制云台绕俯仰轴旋转到(0)度

说明

(1)含义:控制云台绕俯仰轴旋转到指定位置

(2)类型:执行类

注意:

云台绕俯仰轴实现上下旋转, 绕航向轴实现左右旋转。

Python API

Function: gimbal_ctrl.pitch_ctrl(degree)

Parameters:

  • degree(int): [-20, 35]°

9、控制云台旋转到航向轴(0)度 俯仰轴(0)度

说明

(1)含义:控制云台旋转到指定角度位置

(2)类型:执行类

注意:

1)在“云台跟随底盘模式”下,“控制云台旋转到航向轴(x)度”部分不生效,“旋转到俯仰轴(x)度”部分不受影响。

2)

“控制云台(向上/下/左/右)旋转(x)度”是相对位置,基于云台当前方位。

3)

“控制云台绕航向轴旋转到(x)度”、“控制云台绕俯仰轴旋转到(x)度” 、 “控制云台旋转到航向轴(x)度 俯仰轴(x)度”是绝对位置,基于底盘当前方位。

Python API

Function: gimbal_ctrl.angle_ctrl(yaw_degree, pitch_degree)

Parameters:

  • yaw_degree (int): [-250, 250]°

  • pitch_degree (int): [-20, 35]°

10、控制云台以(30)度/秒绕航向轴旋转 (30)度/秒绕俯仰轴旋转

说明

(1)含义:控制云台以指定旋转速度同时绕航向轴、俯仰轴旋转

(2)类型:执行类

注意:

速度输入值的正负号代表着云台转动方向。

对航向轴而言:正值意味着向右转动,负值意味着向左转动。

对俯仰轴而言:正值意味着向上转动,负值意味着向下转动。

Python API

Function: gimbal_ctrl.rotate_with_speed(yaw_speed, pitch_speed)

Parameters:

  • yaw_speed(float): [-360, 360]°/s

  • pitch_speed(float): [-360, 360]°/s

11、云台(航向轴)姿态角

说明

(1)含义:获取云台当前在航向轴或俯仰轴上的姿态角值

(2)类型:信息类(变量型数据)

Python API

Function: gimbal_ctrl.get_axis_angle(axis_enum)

Parameters:

  • axis_enum (enum):

    • rm_define.gimbal_axis_yaw
    • rm_define.gimbal_axis_pitch

Return value:

  • degree(int)

发射器

1、设置发弹数(1)颗/次

说明

(1)含义:设置发弹数,即每次射出的水弹颗数

(2)类型:设置类

注意:

每次最多发射 8 颗水弹。

Python API

Function: gun_ctrl.set_fire_count(count)

Parameters:

  • count(int): [1, 8]

2、单次发射水弹

说明

(1)含义:控制发射器只发射一次水弹

(2)类型:执行类、阻塞型

注意:

1)默认状态是一次发弹一颗。

2)搭配“设置发弹数(x)颗/次”模块可以设置一次连发几颗。

Python API

Function: gun_ctrl.fire_once()

3、连续发射水弹

说明

(1)含义:控制发射器持续发射水弹

(2)类型:执行类、非阻塞型

注意:

1)默认频率是每秒发射一次,每次发弹一颗。

2)连续发射水弹是非阻塞型模块,也就是它会持续发射,直到遇到“停止发射”指令或例程结束的情况。

3)单次发射水弹和连续发射水弹的区别是:

5秒内不间断地发射水弹 发射一次水弹后安静等待5秒

Python API

Function: gun_ctrl.fire_continuous()

4、停止发射水弹

说明

(1)含义:停止发射水弹

(2)类型:执行类

注意:

1)因为“单次发射水弹”模块是阻塞型的,所以“停止发射水弹”指令对它不起作用。

2)“停止发射水弹”模块只对“连续发射水弹”有限制。

Python API

Function: gun_ctrl.stop()

智能

1、(开启)(视觉标签)识别

说明

(1)含义:开启或关闭 RoboMaster S1 对视觉标签、姿势、行人或同类S1机器人的视觉识别功能

(2)类型:设置类

注意:

RoboMaster S1 的智能识别功能默认处于关闭状态。所以如果未先开启识别功能,机器人对相应的可识别信息就不会有反应,比如:

在这两个例程中,RoboMaster S1 不会识别到人,云台LED不会闪烁。

Python API

Function: vision_ctrl.enable_detection(function_enum)

vision_ctrl.disable_detection(function_enum)

Parameters:

  • function_enum(enum):

    • rm_define.vision_detection_marker
    • rm_define.vision_detection_pose
    • rm_define.vision_detection_car
    • rm_define.vision_detection_people

2、(开启)线识别

说明

(1)含义:开启或关闭线识别功能

(2)类型:设置类

注意:

1)默认状态下,线识别功能处于关闭状态。所以如果未先“开启线识别”,则RoboMaster S1 不会响应任何巡线指令。

2)机器人默认能够识别的线颜色是蓝色。

Python API

Function: vision_ctrl.enable_detection(function_enum)

vision_ctrl.disable_detection(function_enum)

Parameters:

  • function_enum(enum):

    • rm_define.vision_detection_line

3、(开启)拍手识别

说明

(1)含义:开启或关闭掌声识别功能

(2)类型:设置类

注意:

默认状态下掌声识别功能处于关闭状态。

所以如果未先开启拍手识别,则 RoboMaster S1 不会响应任何拍手指令。

Python API

Function: media_ctrl.enable_sound_recognition(function_enum)

media_ctrl.disable_sound_recognition(function_enum)

Parameters:

  • function_enum(enum):

    • rm_define.sound_detection_applause

4、设置视觉标签的可识别距离为(1)米内

说明

(1)含义:设置视觉标签的有效识别距离,超出限制则不会识别

(2)类型:设置类

注意:

1)对此例程来说,如果把视觉标签放置在1米开外(比如说离机器人 1.5米或2 米远)的地方,机器人将无法识别。

2)此识别距离只对官方提供的标准尺寸的视觉标签而言,如果是自行打印的非标准尺寸视觉标签,有效识别距离会有差异。

Python API

Function: vision_ctrl.set_marker_detection_distance(distance)

Parameters:

  • distance(float): [0.5, 3]

5、设置线识别颜色为(蓝)

说明

(1)含义:设置机器人能够识别的线颜色

(2)类型:设置类

注意:

机器人默认能够识别的线颜色是蓝色。

Python API

Function: vision_ctrl.line_follow_color_set(color_enum)

Parameters:

  • color_enum(enum):

    • rm_define.line_follow_color_blue
    • rm_define.line_follow_color_red
    • rm_define.line_follow_color_green

6、将曝光值设为(大)

说明

(1)含义:在巡线时减小曝光值,可以缓解快速转向造成的视野模糊,让识别更稳定。

(2)类型:设置类

Python API

Function: media_ctrl.exposure_value_update(exposure_value_enum)

Parameters:

  • exposure_value_enum(enum):

    • rm_define.exposure_value_large
    • rm_define.exposure_value_medium
    • rm_define.exposure_value_small

7、识别到(红心)并瞄准

说明

(1)含义:机器人识别并瞄准对应视觉标签的中心位置

(2)类型:执行类

注意:

1、请先“开启视觉标签识别”功能,否则不会识别。

2、使用此模块时,当视野中有红心出现就会瞄准,5秒内没有识别到红心的话会超时退出,运行后面的程序。

Python API

Function: vision_ctrl.detect_marker_and_aim(marker_enum)

Parameters:

  • rm_define.marker_trans_red_heart

  • rm_define.marker_trans_target

  • rm_define.marker_trans_dice

  • rm_define.marker_number_[zero,…, nine]

  • rm_define.marker_letter_[A,…, Z]

8、当识别到(行人)

说明

(1)含义:当识别到物体、视觉标签、姿势等对应信息时运行本模块内的程序

(2)类型:事件类

注意:

1)事件触发模块优先级高,也就是说无论主线程运行到哪一步,只要满足事件触发条件,就会立刻跳出主线程,开始运行事件类模块内的程序。

2)需识别行人时,请控制云台适度向上旋转,让行人站在机器人前 1 米处,不要蹲着,确保行人完整出现在机器人视野中。

3)V 字、倒 V 字的姿势指令需要用手臂完成,而非手指。

Python API

Function: def vision_recognized_people(msg)

def vision_recognized_car(msg)

def vision_recognized_pose_all(msg)

def vision_recognized_pose_victory(msg)

def vision_recognized_pose_give_in(msg)

def vision_recognized_pose_capture(msg)

def vision_recognized_marker_trans_all(msg)

def vision_recognized_marker_trans_left(msg)

def vision_recognized_marker_trans_right(msg)

def vision_recognized_marker_trans_stop(msg)

def vision_recognized_marker_trans_forward(msg)

def vision_recognized_marker_trans_red_heart(msg)

def vision_recognized_marker_trans_target(msg)

def vision_recognized_marker_trans_dice(msg)

def vision_recognized_marker_number_all(msg)

def vision_recognized_marker_number_one, …, nine

def vision_recognized_marker_letter_all(msg)

def vision_recognized_marker_letter_A, …, Z

Type: Event callback

9、当识别到(两次拍手)

说明

(1)含义:当识别到对应的拍手指令时将运行本模块内的程序

(2)类型:事件类

Python API

Function: def sound_recognized_applause_twice(msg)

def sound_recognized_applause_thrice(msg)

Type: Event callback

10、识别到(行人)

说明

(1)含义:识别到物体、视觉标签、姿势等对应信息时返回“真”,否则将返回“假”

(2)返回值:布尔型

注意:

多和条件类模块连用。

Python API

Function: vision_ctrl.check_condition(condition_enum)

Parameters:

  • condition_enum(enum):

    • rm_define.cond_recognized_people
    • rm_define.cond_recognized_car
    • rm_define.cond_recognized_marker_trans_all
    • rm_define.cond_recognized_marker_trans_left
    • rm_define.cond_recognized_marker_trans_right
    • rm_define.cond_recognized_marker_trans_forward
    • rm_define.cond_recognized_marker_trans_stop
    • rm_define.cond_recognized_marker_trans_red_heart
    • rm_define.cond_recognized_marker_trans_target
    • rm_define.cond_recognized_marker_trans_dice
    • rm_define.cond_recognized_marker_number_all
    • rm_define.cond_recognized_marker_number_[zero,…, nine]
    • rm_define.cond_recognized_marker_letter_all
    • rm_define.cond_recognized_marker_letter_[A,…, Z]
    • rm_define.cond_recognized_pose_all
    • rm_define.cond_recognized_pose_victory
    • rm_define.cond_recognized_give_in
    • rm_define.cond_recognized_capture

11、识别到(两次拍手)

说明

(1)含义:识别到对应的拍手指令时返回“真”,否则返回“假”

(2)返回值:布尔型

Python API

Function: vision_ctrl.check_condition(condition_enum)

Parameters:

  • condition_enum(enum):

    • rm_define.cond_sound_recognized_applause_twice
    • rm_define.cond_sound_recognized_applause_thrice

12、等待识别到(行人)

说明

(1)含义:待机器人识别到物体、视觉标签、姿势等对应信息时将继续执行,否则将持续等待

(2)类型:执行类、阻塞型

注意:

若未识别到靶标签,程序会在此模块上停留等待,此时模块保持高亮:

Python API

Function: vision_ctrl.cond_wait(condition_enum)

Parameters:

  • condition_enum(enum):

    • rm_define.cond_recognized_people
    • rm_define.cond_recognized_car
    • rm_define.cond_recognized_marker_trans_all
    • rm_define.cond_recognized_marker_trans_left
    • rm_define.cond_recognized_marker_trans_right
    • rm_define.cond_recognized_marker_trans_forward
    • rm_define.cond_recognized_marker_trans_stop
    • rm_define.cond_recognized_marker_trans_red_heart
    • rm_define.cond_recognized_marker_trans_target
    • rm_define.cond_recognized_marker_trans_dice
    • rm_define.cond_recognized_marker_number_all
    • rm_define.cond_recognized_marker_number_[zero,…, nine]
    • rm_define.cond_recognized_marker_letter_all
    • rm_define.cond_recognized_marker_letter_[A,…, Z]
    • rm_define.cond_recognized_pose_all
    • rm_define.cond_recognized_pose_victory
    • rm_define.cond_recognized_give_in
    • rm_define.cond_recognized_capture

13、等待识别到(两次拍手)

说明

(1)含义:待机器人识别到对应的拍手指令时将继续执行,否则将持续等待

(2)类型:执行类、阻塞型

Python API

Function: vision_ctrl.cond_wait(condition_enum)

Parameters:

  • condition_enum(enum):

    • rm_define.cond_sound_recognized_applause_twice
    • rm_define.cond_sound_recognized_applause_thrice

14、识别到的视觉标签信息

说明

(1)含义:获取识别到的视觉标签信息,参数为N , ID , X , Y , W, H

(2)类型:信息类(列表型数据)

注意:

1)视觉标签信息的格式为:

第1项为识别到的视觉标签数量N,后续项以 5 个数据为一组,分别是第一个视觉标签的 ID,标签中心点在机器人视野中位置的横坐标 X、纵坐标 Y、宽度 W和高度 H;第二个视觉标签的 ID、标签中心点在机器人视野中位置的横坐标、纵坐标、宽度和高度;第三个…

2)返回的ID值释义:

ID值为1代表识别到的是:停止

ID值为2代表识别到的是:骰子

ID值为3代表识别到的是:靶

ID值为4代表识别到的是:左箭头

ID值为5代表识别到的是:右箭头

ID值为6代表识别到的是:前进箭头

ID值为8代表识别到的是:红心

ID值为10-19代表识别到的是:数字0-9

ID值为20-45代表识别到的是:字母A-Z

Python API

Function: vision_ctrl.get_marker_detection_info()

Return value:

  • detection_info(list)

15、识别到的行人信息

说明

(1)含义:获取识别到的行人或 S1 机器人信息,参数为N,X,Y,W,H

(2)类型:信息类(列表型数据)

注意:

物体信息的格式为:

第1项为识别到的物体数量N,后续项以 4 个数据为一组,分别是第一个物体中心点在机器人视野中位置的横坐标 X、纵坐标 Y、宽度 W和高度 H;第二个物体中心在机器人视野中位置的横坐标、纵坐标、宽度和高度;第三个……

Python API

Function: vision_ctrl.get_people_detection_info()

vision_ctrl.get_car_detection_info()

Return value:

  • detection_info(list)

16、识别到的姿势信息

说明

(1)含义:获取识别到的姿势信息,参数为 N,ID,X,Y,W,H

(2)类型:信息类(列表型数据)

注意:

1)姿势信息的格式为:

第1项为识别到的姿势数量 N,后续项以 5 个数据为一组,分别是第一个姿势的 ID 值,姿势中心点在机器人视野中的横坐标 X、纵坐标 Y,宽度 W和高度 H;第二个姿势返回的 ID 值,中心点在机器人视野中的横坐标、纵坐标,宽度和高度;第三个……

2)ID 值释义:

ID值为 4 对应姿势:正 V

ID 值为 5 对应姿势:倒 V 字

ID 值为 6 对应姿势:拍照手势

Python API

Function: vision_ctrl.get_pose_detection_info()

Return value:

  • detection_info(list)

17、识别到的线信息

说明

(1)含义:获取识别到的线信息,参数为 N,Info,X,Y,θ,C

(2)类型:信息类(列表型数据)

注意:

线信息的格式为:

第 1 项 N 为识别到的线上点的数量10(固定值),第 2 项 Info 为返回的线类型(0 表示无线,1 表示一条线,2 表示 Y 字路口,3 表示十字路口),后续项以 4 个数据为一组:分别是线上由近及远的十个点的横坐标 X,纵坐标 Y,实际切线角 θ,曲率 C(取值范围 0-10,0 表示纯直线),一共 42 个数据。

Python API

Function: vision_ctrl.get_line_detection_info()

Return value:

  • detection_info(list)

18、当前场景亮度

说明

(1)含义:获取当前场景的亮度信息,返回数值0-10。数值越大,代表当前场景越亮。

(2)类型:信息类(变量型数据)

Python API

Function: vision_ctrl.get_env_brightness()

Return value:

  • brightness_value(int)

19、准星位置

说明

(1)含义:获取准星位置信息,参数为 X,Y

(2)类型:信息类(列表型数据)

注意:

准星数据格式为:横坐标 X、纵坐标 Y,共2项。

Python API

Function: media_ctrl.get_sight_bead_position()

Return value:

  • sight_bead_position(list)

装甲板

1、设置装甲板灵敏度(5)

说明

(1)含义:数值越大,装甲板感应灵敏度越高。硬物敲击时建议灵敏度设为6,指关节叩击时设为 8。

(2)类型:设置类

注意:

灵敏度设置只在实验室环境中生效,对战中装甲板的灵敏度都会恢复为默认值。

Python API

Function: armor_ctrl.set_hit_sensitivity(value)

Parameters:

  • value(int): [0, 10]

2、当任一装甲板受到攻击

说明

(1)含义:当检测到指定位置的装甲板受到攻击时,运行本模块内的程序

(2)类型:事件类

注意:

事件触发模块优先级高,也就是说无论主线程运行到哪一步,只要满足触发条件,就会立刻跳出主线程,开始运行事件类模块内的程序。

Python API

Function: def armor_hit_detection_all(msg)

def armor_hit_detection_bottom_right(msg)

def armor_hit_detection_bottom_left(msg)

def armor_hit_detection_bottom_front(msg)

def armor_hit_detection_bottom_back(msg)

def armor_hit_detection_top_right(msg)

def armor_hit_detection_top_left(msg)

Type: Event callback

3、最近受到攻击的装甲板(ID)

说明

(1)含义:获取最近受到攻击的装甲板信息,ID值反馈出装甲板位置,通过时间戳计算可以获知受攻击的时间点

(2)类型:信息类(变量型数据)

注意:

返回的ID值释义:

ID 值为 1 对应受到攻击的装甲板在:底盘后侧

ID 值为 2 对应受到攻击的装甲板在:底盘前侧

ID 值为 3 对应受到攻击的装甲板在:底盘左侧

ID 值为 4 对应受到攻击的装甲板在:底盘右侧

ID 值为 5 对应受到攻击的装甲板在:云台左侧

ID 值为 6 对应受到攻击的装甲板在:云台右侧

Python API

Function: armor_ctrl.get_last_hit_index()

Return value:

  • index(int)

Function: armor_ctrl.get_last_hit_time()

Return value:

  • time(float)

4、(任一)装甲板受到攻击

说明

(1)含义:持续检测指定装甲板是否受到攻击,被攻击会返回“真”,否则返回“假”

(2)返回值:布尔型

Python API

Function: armor_ctrl.check_condition(condition_enum)

Parameters:

  • condition_enum(enum):

    • rm_define.cond_armor_hit
    • rm_define.cond_armor_bottom_front_hit
    • rm_define.cond_armor_bottom_back_hit
    • rm_define.cond_armor_bottom_left_hit
    • rm_define.cond_armor_bottom_right_hit
    • rm_define.cond_armor_top_left_hit
    • rm_define.cond_armor_top_right_hit

5、等待(任一)装甲板受到攻击

说明

(1)含义:待指定位置的装甲板受到攻击后才会执行下一条指令,否则持续等待

(2)类型:执行类、阻塞型

注意:

对此例程来说,若底盘左侧装甲板未受到攻击,程序会在此模块上停留等待,此时模块保持高亮。

Python API

Function: armor_ctrl.cond_wait(condition_enum)

Parameters:

  • condition_enum(enum):

    • rm_define.cond_armor_hit
    • rm_define.cond_armor_bottom_front_hit
    • rm_define.cond_armor_bottom_back_hit
    • rm_define.cond_armor_bottom_left_hit
    • rm_define.cond_armor_bottom_right_hit
    • rm_define.cond_armor_top_left_hit
    • rm_define.cond_armor_top_right_hit

移动设备

1、移动设备(航向轴)角度

说明

(1)含义:获取移动设备当前角度值

(2)类型:信息类(变量型数据)

注意:

1)RoboMaster S1 的默认运动模式是“云台跟随底盘模式”,所以如果想单独控制云台绕航向轴旋转,需要设置为“自由模式”。

2)移动设备是指手机、平板等。

3)移动设备姿态角范围是 -180~180°,

对航向轴来说:向右为正(0-180)

对俯仰轴来说:向上为正(0-180)

对翻滚轴来说:右下为正(0-180)

Python API

Function: mobile_ctrl.get_attitude(attitude_enum)

Parameters:

  • attitude_enum(enum):

    • rm_define.mobile_atti_pitch
    • rm_define.mobile_atti_roll
    • rm_define.mobile_atti_yaw

2、移动设备(X轴)加速度

说明

(1)含义:获取移动设备加速度单元的测量值

(2)类型:信息类(变量型数据)

注意:

(1)速度变化越快,获取到的加速度测量值越大。

(2)移动设备是指手机、平板等。

Python API

Function: mobile_ctrl.get_accel(axis_enum)

Parameters:

  • axis_enum(enum):

    • rm_define.mobile_accel_x
    • rm_define.mobile_accel_y
    • rm_define.mobile_accel_z

多媒体

1、播放音效(被击中)

说明

(1)含义:播放音效的同时,立刻执行下一条指令

(2)类型:执行类、非阻塞型

Python API

Function: media_ctrl.play_sound(sound_enum, wait_complete_flag=False)

Parameters:

  • sound_enum(enum):

    • rm_define.media_sound_attacked
    • rm_define.media_sound_shoot
    • rm_define.media_sound_scanning
    • rm_define.media_recognize_success
    • rm_define.media_gimbal_rotate
    • rm_define.media_count_down

2、播放音效(被击中)直到结束

说明

(1)含义:音效播放完毕后才会执行下一条指令

(2)类型:执行类、阻塞型

注意:

“播放音效”是播放音效和后续指令并行,是伴奏(比如歌伴舞)。

“播放音效直到结束”是播放音效和后续指令逐个进行,是独奏(比如音效演奏完毕后才开始跳舞)。

Python API

Function: media_ctrl.play_sound(sound_enum, wait_complete_flag=True)

Parameters:

  • sound_enum(enum):

    • rm_define.media_sound_attacked
    • rm_define.media_sound_shoot
    • rm_define.media_sound_scanning
    • rm_define.media_recognize_success
    • rm_define.media_gimbal_rotate
    • rm_define.media_count_down

3、拍照

说明

(1)含义:响起快门声的同时拍摄一张照片,照片会在相册中出现。

(2)类型:执行类

注意:

请提前在机器人中插入一张剩余用量在 2GB 以上的SD卡,无 SD 卡时拍照指令不生效。

Python API

Function: media_ctrl.capture()

4、(开始)视频录制

说明

(1)含义:开始或结束视频录制,结束后会在APP相册和 SD 卡中生成一段视频。

(2)类型:执行类

注意:

机器人中插入的SD 卡剩余用量需在 2GB 以上。

Python API

Function: media_ctrl.record(enable_enum)

Parameters:

  • enable_enum(enum):

    • 1
    • 0

数据对象

17、创建 PID 控制器

说明

(1)含义:创建 PID 控制器,对控制器进行命名。

(2)类型:设置类

注意:控制器创建完成后会出现 3 个相关模块,分别负责误差设置、参数调节及输出信息获取。

Python API

Class: rm_ctrl.PIDCtrl()

18、设置 PID 控制器(#PID#)的误差为(0)

说明

(1)含义:设置PID控制器误差,误差指目标值与反馈值间的差值

(2)类型:设置类

注意:

运行程序前,请保证视觉标签正确地出现在机器人视野中。

Python API

Class: rm_ctrl.PIDCtrl()

Function:

  • set_error(error)

19、设置 PID 控制器(#PID#)的参数 Kp(0)Ki(0)Kd(0)

说明

(1)含义:调节 PID 控制器参数,Kp 为比例系数,Ki 为积分系数,Kd 为微分系数

(2)类型:设置类

注意:

若想对 PID 内容有更加深入的了解,可以学习 RoboMaster App-大师之路中的《视觉标签跟随》项目。

Python API

Class: rm_ctrl.PIDCtrl()

  • Function:

    • set_ctrl_params(kp, ki, kd)
  • Parameters:

    • kp(float)
    • ki(float)
    • kd(float)

20、PID 控制器(# PID#)的输出

说明

(1)含义:获取指定PID控制器的输出值

(2)类型:信息类(变量型数据)

Python API

Class: rm_ctrl.PIDCtrl()

  • Function:

    • get_output()
  • Return value

    • output(float)

最后

以上就是眼睛大路灯为你收集整理的Robomaster-S1 Python API 整合的全部内容,希望文章能够帮你解决Robomaster-S1 Python API 整合所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部