其它使用与实时性问题
示教器设置在实时模式下是否生效
实时模式下,多数示教器中的运动和安全参数不生效(如加速度项)。常见仍生效项:
- 碰撞检测(碰撞后下电停止)
- 关节限位
- 基坐标系
- 力控参数(阻抗控制下)
点位跟随示例无法编译
follow_joint_position 与 torque_control 示例依赖 xMate 模型库,需要打开宏配置。
cmake -DXCORE_USE_XMATE_MODEL=ON
非 CMake 工程需添加宏:XMATEMODEL_LIB_SUPPORTED。
实时模式运动慢
- 问题1 :在用SDK开环下发控制指令的时候(1ms调用),发现下发的指令和实际执行之间存在滞后,且运行时间越长,滞后越明显。
- 问题2:跟随慢了
原理介绍-实时主循环通信流程
进入周期性主循环前会先清空通信缓存,避免残留数据干扰;每个周期内先完成状态侧接收与更新,再向控制器发送一条本周期指令。流程概览如下。
等待超时时间的原理
发送指令的周期受接收状态数据的周期控制,若默认超时时间1ms,可能存在未等待到状态数据更新,就发送的指令的情况,导致平均指令发送周期小于1ms,也就是发快了。
解决办法
实时模式接收状态数据默认的等待超时时间是 1ms ,v0.7.0版本已改为0.3ms。根据现场实际的网络情况,可以在可执行文件同目录下,增加配置文件 xcoresdk_config.json来设置超时时间,以适应实际情况和优化实时效果。若设备网络情况较好,并出现控制一段时间后,发送的运动指令有延迟执行的现象,可适当将超时时间调大,设置范围为 1∼4ms ,具体的 json 文件格式如下:
{
"rt":{
"_timeout_": 2
}
}