发布时间: 2026-01-12

二次开发启动流程


1.简介

客户应用场景中可能会要求使用 SDK 来开发,下面介绍 SDK 启动机器人方法,过程中请保持机器人为远程模式,与示教器操作大体一致只是以代码的形式分步执行,打开电源,释放抱闸等功能,至机器人处于正常模式后运行。

以下各指令代码可参考EliRobot Dashboard手册技术资料_机器人技术-艾利特机器人

2. 操作流程

2.1 定义函数

连接函数:

#建立socket连接
def connectETController(ip, port):
    #ip, port:IP和端口号
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        sock.connect((ip, port))
        return (True, sock)
    except Exception as e:
        sock.close()
        return (False)

29999端口接收和发送函数:

#29999端口使用,参考dashboard_shell手册
def dashboard_shell(content):
    #content:输入的内容
    robot_ip = "192.168.1.140"
    port = 29999
    ##连接机器人ip和端口
    conSuc, sock = connectETController(robot_ip, port)
    recvData1 = sock.recv(4096)   #清空缓存区
    if (conSuc):
        # 命令转字符串加换行
        # 发送给机器人
        sock.sendall(bytes(str(content + '\n'),"utf-8"))
        # 接受机器人该端口的返回信息
        recvData = sock.recv(4096)
        # decode()方法将一个字节序列转换成字符串
        recvData = recvData.decode()
        # 返回对应指令的字符,成功或者不成功
        return (recvData.replace('\n', '').replace('\r', ''))

2.2 机器人上电

#利用29999端口打开电源
def powering_on():
    ##电控柜上电后启动机器人上电
    Data = dashboard_shell("robotControl -on")
    # 返回Powering on上电成功,其他为失败
    print(Data)
    if Data == 'Powering on':
        print('上电成功')
    else:
        print(Data)
    time.sleep(0.5)

2.3 释放抱闸

#利用29999端口释放抱闸
def brake_releasing():
    while True:
        Data = dashboard_shell("brakeRelease")
        # 返回Brake is released.抱闸释放成功,其他为失败
        if Data == 'Brake is released':
            print('抱闸释放成功')
            break
        else:
            print(Data)
        time.sleep(0.5)

2.4 运行任务

#利用29999端口运行任务
def play():
    Data = dashboard_shell("play")
    # 返回Starting task任务运行成功,其他为失败
    if Data == 'Starting task':
        print('已启动任务')
    else:
        print('运行失败:'+Data)
    time.sleep(1)

 

2.5 任务状态查询

#利用29999端口查询任务状态
def task():
    Data = dashboard_shell("task -r")
    # 返回Task is running.任务正在运行,其他为失败
    if Data == 'Task is running':
        print('任务正在运行')
    else:
        print('当前运行状态为:'+Data)
    time.sleep(1)

3. 汇总

操作流程的2.1-2.4汇总在一起就可以实现SDK一键启动至运行状态(见下图)。

#打开电源
powering_on()
#释放抱闸
brake_releasing()
#运行任务
play()
#查询任务状态
task()

 

4. 其他

29999端口还可以打开或切换不同的任务和配置,具体使用指令可查询EliRobot Dashboard手册,手册下载可至官网或咨询艾利特技术人员技术资料_机器人技术-艾利特机器人

 

 

提交反馈