初始化连接

设备发现

注意

本功能基于 mDNS 技术,用于 Web 前端开发的 JavaScript SDK 不支持该功能

devices = lebai_sdk.discover_devices(time)

在持续时间内连续发现周边设备,持续时间结束后,返回发现的设备的名称、IP、MAC 地址。

  • 参数

    • time 持续时间
  • 返回

    • 列表类型。列表里包含搜到的设备结果,每个设备对象的属性(设备的名称、IP、MAC 地址)以字典形式呈现
    • name 设备的名称
    • ip 设备IP
    • mac 设备MAC 地址
示例程序
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()

devices = lebai_sdk.discover_devices(3)
print(devices)
# 输出:
# [{'name': 'lebai-3wbgvM', 'mac': 'b4:4b:d6:5e:55:1c', 'ip': '10.20.17.1', 'online': True}]

初始化对象

注意

由于通信不稳定,ip错误等原因,可能导致错误发生。大多数情况下,需要使用错误处理机制来捕获错误,防止异常退出。

lebai = lebai_sdk.connect(ip, simu)

连接到乐白机械臂

  • 参数

    • ip 乐白机械臂的 IP 地址
    • simu 是否以仿真模式连接。可选,默认真机模式
  • 返回

    • lebai 机械臂实例,后续控制机械臂的方法需使用该实例
示例程序
import lebai_sdk
lebai_sdk.init()

# 如果出现event loop相关的RuntimeError,尝试添加以下2行
# import nest_asyncio
# nest_asyncio.apply()

# 设定机器人ip地址,需要根据机器人实际ip地址修改
robot_ip = "192.168.4.145" 
# 创建实例  
lebai = lebai_sdk.connect(robot_ip, False) 

获取连接状态

connected = lebai.is_connected()

返回连接状态。用于判断是否处于连接状态,如果重启手臂会断连。

  • 返回
    • connected 连接状态
示例程序
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.123" 
try:
    lebai = lebai_sdk.connect(robot_ip, False) 
    connected = lebai.is_connected()
    if not connected:
        print('机器断连')
        disconnect_reason = lebai.wait_disconnect()
        print(disconnect_reason)

except Exception as e:
    print('初始化对象失败: %s'%e)

等待断开连接

disconnect_reason = lebai.wait_disconnect()

返回连接断开后的断开原因。如果检测到手臂断开连接,判断断开原因,重新连接。

  • 返回
    • disconnect_reason 断开连接的原因
示例程序
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.123" 
try:
    lebai = lebai_sdk.connect(robot_ip, False) 
    connected = lebai.is_connected()
    if not connected:
        print('机器断连')
        disconnect_reason = lebai.wait_disconnect()
        print(disconnect_reason)
        lebai = lebai_sdk.connect(robot_ip, False) 

except Exception as e:
    print('初始化对象失败: %s'%e)