概述
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 整合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复