Python API使用案例

使用python API前,需先确认机器人的IP地址:在机器人终端输入 ifconfig 获取

1 机器人使能控制

1.1 机器人打开使能

from pymycobot import ElephantRobot
import time
if __name__=='__main__':

    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "先关闭机器人使能"   
    elephant_client.state_off()
    time.sleep(3)

    "给机器人上电"   
    elephant_client.power_on()
    time.sleep(3)

    "给机器人使能"   
    elephant_client.state_on()
    time.sleep(3)

1.2 机器人关闭使能

from pymycobot import ElephantRobot
import time
if __name__=='__main__':

    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "关闭机器人使能"   
    elephant_client.state_off()
    time.sleep(3)

1.3 机器人仅上电

from pymycobot import ElephantRobot
import time
if __name__=='__main__':

    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "机器人上电"   
    elephant_client.power_on()
    time.sleep(3)

1.4 机器人仅下电

from pymycobot import ElephantRobot
import time
if __name__=='__main__':

    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "机器人下电"   
    elephant_client.power_off()
    time.sleep(3)

2 关节控制

  使用VNC Viewer进入RoboFlow系统后,在快速移动界面下,可通过关节控制,控制机器人到达目标位置后,记录操作面板上显示的机器人6个关节的角度

2.1 单关节控制

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "填入要控制的单个关节的角度,第1个参数0为第一轴,以此类推;第2个参数表示关节角度;第三个参数表示运动速度"
    elephant_client.write_angle(0,94.828,1000)

    "等待机器人运动到目标位置再执行后续指令"
    elephant_client.command_wait_done()

2.2 多关节控制

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "在列表内填入记录下的6个关节角度,最后一个参数为运动速度,需更改为自己设定的关节角度"
    elephant_client.write_angles([94.828,-143.513,135.283,-82.969,-87.257,-44.033],1000)

    "等待机器人运动到目标位置再执行后续指令"
    elephant_client.command_wait_done()

2.3 关节角度获取

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "打印机器人当前6个关节角度信息"   
    print(elephant_client.get_angles())

2.4 机器人关节回到零位

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "在列表内填入6个关节零位角度,最后一个参数为运动速度"
    elephant_client.write_angles([0,-90,0,-90,0,0],1000)

    "等待机器人运动到目标位置再执行后续指令"
    elephant_client.command_wait_done()

3 坐标控制

  主要用于实现智能规划路线让机械臂从一个位置到另一个指定位置。分为[x,y,z,rx,ry,rz],其中[x,y,z]表示的是机械臂末端在空间中的位置(该坐标系为直角坐标系),[rx,ry,rz]表示的是机械臂末端在该点的姿态(该坐标系为欧拉坐标)   使用VNC Viewer进入RoboFlow系统后,在快速移动界面下,可通过笛卡尔坐标控制,控制机器人到达目标位置后,记录操作面板上显示的机器人6个坐标值

使用坐标控制需要先用关节运动将机械臂调整至下图姿态,避免奇异点导致机械臂无法执行动作

3.1 单参数坐标控制

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "填入参数,第1个参数的2代表Z轴方向,以此类推;第2个参数表示关坐标值;第三个参数表示运动速度"
    elephant_client.write_coord(2,94.828,3000)

    "等待机器人运动到目标位置再执行后续指令"
    elephant_client.command_wait_done()

3.2 多参数坐标控制

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "在列表内填入记录下的6个坐标值,最后一个参数为运动速度,,需更改为自己设定的位姿"
    elephant_client.write_coords([-130.824,256.262,321.533,176.891,-0.774,-128.700], 3000)

    "等待机器人运动到目标位置再执行后续指令"
    elephant_client.command_wait_done()

3.3 笛卡尔坐标获取

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "打印输出机器人当前笛卡尔空间坐标信息"
    elephant_client.get_coords()

4IO控制

4.1 设置IO引脚输出状态

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "引脚序号0 ~ 5对应底座电气接口OUT 1 ~ 6 ; 16 ~ 17 对应机械臂末端电气接口 OUT 1 ~ 2"
    "控制机器人OUT1输出为高电平"
    elephant_client.set_digital_out(0,1)

    "机器人延时3秒后再执行后面程序"
    elephant_client.wait(3)

    "控制机器人OUT1输出为低电平"
    elephant_client.set_digital_out(0,0)

    "机器人延时3秒后再执行后面程序"
    elephant_client.wait(3)

4.2 获取IO引脚输出状态

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "引脚序号0 ~ 5对应底座电气接口OUT 1 ~ 6 ; 16 ~ 17 对应机械臂末端电气接口 OUT 1 ~ 2"
    "获取机器人OUT1输出状态"
    elephant_client.get_digital_out(0)

    "机器人延时0.5秒后再执行后面程序"
    elephant_client.wait(0.5)

4.3 获取IO引脚输入状态

from pymycobot import ElephantRobot

if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()

    "引脚序号0 ~ 5对应底座电气接口OUT 1 ~ 6 ; 16 ~ 17 对应机械臂末端电气接口 OUT 1 ~ 2"
    "获取机器人IN1输入状态,低电平有效,即GND与输入端导通时反馈1,其余状态反馈0"
    elephant_client.get_digital_in(0)

    "机器人延时0.5秒后再执行后面程序"
    elephant_client.wait(0.5)

5 自适应夹爪控制

from pymycobot import ElephantRobot
import time
if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()
    time.sleep(1)

    "夹爪设置透传模式"
    elephant_client.set_gripper_mode(0)
    time.sleep(1)

    "夹爪完全张开"
    elephant_client.set_gripper_state(0,100)
    time.sleep(2)

    "夹爪完全闭合"
    elephant_client.set_gripper_state(1,100)
    time.sleep(2)

    "夹爪张开到指定行程,这里张开到夹爪行程的一半"
    elephant_client.set_gripper_value(50,100)
    time.sleep(2)

6 相对运动

from pymycobot import ElephantRobot
import time
if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.10.158", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()
    time.sleep(1)

    "机器人以当前坐标位置往Z方向正方向整体运动50mm"
    elephant_client.jog_relative("Z",50,1500,1)

    "等待机器人运动到目标位置再执行后续指令"
    elephant_client.command_wait_done() 

    "机器人以当前J6关节角度增加10度"
    elephant_client.jog_relative("J6",10,1500,0)

    "等待机器人运动到目标位置再执行后续指令"
    elephant_client.command_wait_done()

7 机器人夹爪搬运木块案例

from pymycobot import ElephantRobot
import time
if __name__=='__main__':
    "将ip更改成P600树莓派的实时ip"
    elephant_client = ElephantRobot("192.168.137.182", 5001)

    "启动机器人必要指令"
    elephant_client.start_client()  
    time.sleep(1) 

    "夹爪设置透传模式"
    elephant_client.set_gripper_mode(0)
    time.sleep(1) 

    "夹爪完全张开"
    elephant_client.set_gripper_state(1,100)
    time.sleep(1)

    for i in range (1):
        "机器人关节运动到安全点,需更改为自己设定的关节角度"
        elephant_client.write_angles([94.828,-143.513,135.283,-82.969,-87.257,-44.033],1000)
        "等待机器人运动到目标位置再执行后续指令"
        elephant_client.command_wait_done()

        "机器人笛卡尔运动到码垛抓取过渡点,需更改为自己设定的位姿"
        elephant_client.write_coords([-130.824,256.262,321.533,176.891,-0.774,-128.700], 3000)
        elephant_client.command_wait_done()

        "机器人以当前坐标位置往Z轴负方向整体运动100mm,到达木块抓取位置"
        elephant_client.jog_relative("Z",-100,1500,1)
        elephant_client.command_wait_done()

        "控制夹爪闭合到30mm"
        elephant_client.set_gripper_value(30,100)
        "控制机器人等待1秒后再动作"
        elephant_client.wait(1)

        "机器人以当前坐标位置往Z轴正方向整体运动100mm,到达木块抓取过渡点"
        elephant_client.jog_relative("Z",100,1500,1)
        elephant_client.command_wait_done()

        "机器人以当前坐标位置往Y轴正方向整体运动300mm,到达木块放置过渡点"
        elephant_client.jog_relative("Y",300,1500,1)
        elephant_client.command_wait_done()

        "机器人以当前坐标位置往Z轴负方向整体运动100mm,到达木块放置位置"
        elephant_client.jog_relative("Z",-100,1500,1)
        elephant_client.command_wait_done()

        "控制夹爪完全张开"
        elephant_client.set_gripper_value(100,100)
        "控制机器人等待1秒后再动作"
        elephant_client.wait(1)

        "机器人以当前坐标位置往Z轴正方向整体运动100mm,到达木块放置过渡点"
        elephant_client.jog_relative("Z",100,1500,1)
        elephant_client.command_wait_done()

        "机器人关节运动到安全点"
        elephant_client.write_angles([94.828,-143.513,135.283,-82.969,-87.257,-44.033],1000)
        elephant_client.command_wait_done()

← 上一页 | 下一页 →

results matching ""

    No results matching ""