简介
SDK中提供了与机器人30001端口连接、发送脚本的接口,以及解析30001端口数据的框架。SDK中只有部分数据包的解析,如果要解析其他数据包,需要手动编写解析代码。
PrimaryPortInterface 类
简介
此接口提供了与机器人primary port接口通讯的方法。
导入
from elite_cs_sdk import PrimaryClientInterface, PrimaryPackage
from elite_cs_sdk import RobotError, RobotRuntimeExceptionPrimaryPortInterface 类的构造函数
通讯
连接
def connect(ip: str, port = 30001) -> bool- 功能连接到机器人的30001端口(默认)。
- 参数
- ip:机器人端口
- timeout_ms:设置机器人读取下一条指令的超时时间,小于等于0时会无限等待。
- 返回值:成功返回 true,失败返回 false。
- 注意
- 如果重复调用此函数而没有调用disconnect,那么会断开原来的连接。
- 重复调用此函数的频率最好不要超过2HZ。
断开连接
def disconnect()- 功能断开与机器人的连接
- 注意建议在调用此函数之后进行500ms左右延迟再调用connect。
发送脚本
def sendScript(script: str) -> bool- 功能向机器人发送可执行脚本
- 参数
- script:待发送的脚本。
- 返回值:发送成功返回 true,失败返回 false。
获取数据包
def getPackage(pkg: PrimaryPackage, timeout_ms: int) -> bool- 功能获取机器人数据包并解析
- 参数
- pkg:待获取的数据包
- timeout_ms:等待超时时间。
- 返回值:获取成功返回 true,失败返回 false。
获取本地的IP地址
def getLocalIP() -> str- 功能获取本机IP地址。
- 返回值:本机IP地址。如果为空,与机器人30001的连接则存在问题。
注册机器人异常回调
def registerRobotExceptionCallback(cb: Callable[[RobotException]])- 功能 注册机器人异常回调函数。当从机器人的 primary 端口接收到异常报文时,将调用该回调函数。回调函数接收一个 RobotExceptionSharedPtr 类型的参数,表示发生的异常信息。
- 参数
- registerRobotExceptionCallback: 回调函数,用于处理接收到的机器人异常。参数为机器人异常的共享指针(参考:RobotException)。
PrimaryPackage 类
简介
此类主要用于被继承,以此来获取Primary端口数据。
SDK中没有提供全部的数据包解析,如果需要其他的数据包,可以参考Elite官方文档“CS_用户手册_机器人状态报文.xlsx”来编写自己需要的数据包解析。
PrimaryPackage 接口
from elite_cs_sdk.primary_client import PrimaryPackagePrimaryPackage 类的构造函数
构造函数
def __init__(type: int)- 功能初始化数据
- 参数
- type:数据包类型(参考Elite官方文档:CS_用户手册_机器人状态报文.xlsx)
纯虚函数
解析报文
def parser(len: int, data: bytes)- 功能由子类来完成具体实现,解析Primary端口机器人状态报文的子报文。当子类实例作为参数传入
PrimaryPortInterface::getPackage()中会被调用。 - 参数
- len:子报文的长度。
- data:子报文字节流。
其余
获取报文类型
def getType() -> int- 功能获取数据包的类型。
- 返回值:数据包类型。
SDK内部使用
等待更新
def waitUpdate(timeout_ms: int) -> bool- 功能等待数据包数据更新。在getPackage()函数中调用。
- 参数
- timeout_ms:超时时间
- 返回值:未超时返回 true,超时返回 false。
KinematicsInfo 类
简介
机器人配置数据中运动学的数据包解析。PrimaryPackage 是此接口的父类,除了 PrimaryPackage 类中的方法以外,此接口主要内容是机器人的DH参数。
KinematicsInfo 接口
from elite_cs_sdk import KinematicsInfoDH参数
dh_a_ : list[6]dh_d_: list[6]dh_alpha_: list[6]