机械臂安全控制
一、API 简介
1、is_power_on()
函数功能:判断机械臂是否供电。
返回值:1 已供电,0 断电,-1 错误。
2、power_on()
函数功能:为机械臂供电。
3、power_off()
函数功能:为机械臂断电,所有功能将失效。注意:断电后无法让机械臂放松,即set_free_mode()
失效。
4、pause()
函数功能:暂停机械臂运动。
5、resume()
函数功能:恢复机械臂运动。
6、stop()
函数功能:机械臂停止运动
7、is_in_position(data,flag)
函数功能:判断机械臂是否到达指定位置
参数说明:
data
:包含六个元素的 list 集合,表示角度集合,或者是机械臂头部数据集合。
flag
:1 表示 data 数据表示机械臂头部数据,0 表示 data 数据表示机械臂角度集合数据。
8、is_paused()
函数功能:判断机械臂是否处于暂停状态
返回值:1表示处于暂停状态,0表示没有处于暂停状态,-1表示错误
二、代码内容
from pymycobot.mycobot import MyCobot
from pymycobot import PI_PORT, PI_BAUD # 当使用树莓派版本的mycobot时,可以引用这两个变量进行MyCobot初始化
import time
# MyCobot 类初始化需要两个参数:
# 第一个是串口字符串, 如:
# linux: "/dev/ttyUSB0"
# windows: "COM3"
# 第二个是波特率:
# M5版本为: 115200
#
# Example:
# mycobot-M5:
# linux:
# mc = MyCobot("/dev/ttyUSB0", 115200)
# windows:
# mc = MyCobot("COM3", 115200)
# mycobot-raspi:
# mc = MyCobot(PI_PORT, PI_BAUD)
#
# 初始化一个MyCobot对象
# 下面为树莓派版本创建对象代码
mc = MyCobot(PI_PORT, PI_BAUD)
# 判断机械臂是否供电,若无供电需要先为其供电
if not mc.is_power_on():
# 为机械臂供电
mc.power_on()
# 机械臂以30的速度到达[0,0,0,0,0,0]位置
mc.send_angles([0, 0, 0, 0, 0, 0], 30)
# 获取当前时间
start = time.time()
# 判断机械臂是否到达[0,0,0,0,0,0]位置
while not mc.is_in_position([0, 0, 0, 0, 0, 0], 0):
# 恢复机械臂的移动
mc.resume()
# 让机械臂移动0.5s
time.sleep(0.5)
# 暂停机械臂移动
mc.pause()
# 判断移动是否超时
if time.time() - start > 9:
# 停止机械臂的移动
mc.stop()
break
# 获取当前时间
start = time.time()
# 机械臂以30的速度到达[88.68, -138.51, 155.65, -128.05, -9.93, -15.29]位置
mc.send_angles([88.68, -138.51, 155.65, -128.05, -9.93, -15.29], 30)
# 判断机械臂是否到达[88.68, -138.51, 155.65, -128.05, -9.93, -15.29]位置
while not mc.is_in_position([88.68, -138.51, 155.65, -128.05, -9.93, -15.29], 0):
# 恢复机械臂的移动
mc.resume()
# 让机械臂移动0.5s
time.sleep(0.5)
# 暂停机械臂移动 可以用is_paused()判断机械臂是否处于暂停状态
mc.pause()
# 判断移动是否超时
if time.time() - start > 9:
mc.stop()
# 停止机械臂的移动
break
# 执行完操作后,为机械臂断电
mc.power_off()