• Dobot机械臂的Python Demo


    官网下载地址:[OFFICIAL]Dobot Magician Download Center | DOBOT

    0.Python Demo流程:

    一、下载安装python 3.7.5 64-bit
    二、将Dobot动态链接库放到python的运行目录或者将Dobot动态链接库所在目录添
    加到系统Path环境变量(对应电脑系统64位或者32位)
    三、连接机械臂Magician,并装上吸盘套件
    四、选择Dobot Demo文件夹,并打开Dobotcontrol.py文件​​​​​​​。
    五、点击Run下面的Run Module F5, 此时程序会运行,如果出现“Connect status:DobotConnect_Occupied”,说明程序连接正常运行成功。
    (或者第四步用Pycharm打开文件,点击运行)

    1.项目说明

    在Python演示中有两个文件。

    (1)DobotControl.py:Dobot接口二次封装

    (2)DobotDllType.py:具体实现文件

    在运行DobotControl.py之前,请将Dobot DLLS目录添加到python的运行目录中,或者添加到系统环境变量中。

    不同版本的Python需要对应Demo的对应版本。例如,64位的Python应该使用64位的Python demo,而32位的Python应该使用32位的Python demo,否则程序会报告错误。

    2.Python API 

    DobotDllType.py封装了Dobot DLL的C类型接口,这是Dobot的Python接口。加载DLL的示例如下所示。(请确保将Dobot DLL目录添加到系统环境变量中,以确保正确加载DLL。)

    1. def load():
    2. if platform.system() == "Windows":
    3. print("您用的dll是64位,为了顺利运行,请保证您的python环境也是64位")
    4. print("python环境是:",platform.architecture())
    5. return CDLL("./DobotDll.dll", RTLD_GLOBAL)
    6. elif platform.system() == "Darwin":
    7. return CDLL("./libDobotDll.dylib", RTLD_GLOBAL)
    8. elif platform.system() == "Linux":
    9. return cdll.loadLibrary("libDobotDll.so")

    3.代码说明

    在调用与运动相关的接口(PTP、JOG等)时,本DEMO采用队列模式。

    (1)加载DLL并获取Store对象(API)。当调用Python API时,将使用该对象。

    api = dType.load()

    (2)连接到Dobot魔术师并打印连接信息。连接成功后,将处理相关代码。

    1. state = dType.ConnectDobot(api, "", 115200)[0]
    2. print("Connect status:",CON_STR[state])
    3. if (state == dType.DobotConnect.DobotConnect_NoError):
    4. #Dobot操作代码
    5. dType.DisconnectDobot(api)

    (3)控制队列:

    1. dType.SetQueuedCmdClear(api) #清空队列
    2. dType.SetQueuedCmdStartExec(api) #开始队列
    3. dType.SetQueuedCmdStopExec(api) #停止队列

    (4)设置运动参数

    1. dType.SetHOMEParams(api, 200, 200, 200, 200, isQueued = 1)
    2. dType.SetPTPJointParams(api, 200, 200, 200, 200, 200, 200, 200, 200, isQueued = 1)
    3. dType.SetPTPCommonParams(api, 100, 100, isQueued = 1)

    (5)将PTP命令下载到队列中,并获取最后一个命令的索引。

    1. for i in range(0, 5):
    2. if i % 2 == 0:
    3. offset = 50
    4. else:
    5. offset = -50
    6. lastIndex = dType.SetPTPCmd(api, dType.PTPMode.PTPMOVLXYZMode, 200 + offset, offset, offset, offset, isQueued = 1)[0]

    (6)等待最后一个运动命令完成。

    1. #如果还未完成指令队列则等待
    2. while lastIndex > dType.GetQueuedCmdCurrentIndex(api)[0]:
    3. dType.dSleep(100)

  • 相关阅读:
    Echarts 极坐标柱状图的详细配置过程
    【Arduino+ESP32专题】案例:读取SD卡图片并显示
    【华为OD题库-023】文件目录大小-java
    qiankun项目搭建手册
    浅谈程序的数字签名
    连续六个季度实现盈利改善,达达集团内外双重确定性凸显
    review 11
    MT管理器和高级终端Termux
    虹科方案丨自动驾驶多传感器数据融合方法
    VMware16虚拟机:安装Windows10系统---超详细教程
  • 原文地址:https://blog.csdn.net/weixin_43042683/article/details/125535655