常见问题
FAQ
SDK与控制器通信方式是什么,能不能直接提供TCP/IP协议?
SDK和控制器的通信方式是TCP/IP, 实时部分通过UDP。
外部通信功能提供了直接通过TCP/IP协议控制机器人的方式:

除此之外的协议仅限内部使用,不对外提供。
ARM架构芯片是否支持
C++和Python SDK提供的ARM架构库文件是用Ubuntu 18.04 的默认aarch64编译器,其配置为:
- 架构:ARMv8-A (64-bit)
- ABI:LP64 + 硬浮点(hard-float)
- 依赖:glibc 2.27
一般可以适用于:
- 运行 Linux 的 64 位 ARM 设备(树莓派 3B+/4/5, NVIDIA Jetson 等)
- 系统满足 glibc ≥ 2.27 要求
- 不兼容 32 位 ARM 设备或旧版 glibc 系统
若目标设备的配置项不满足,需要提供gcc交叉编译工具链,我们尝试针对性交叉编译。
SDK获取到的笛卡尔位置和示教器显示不一致
如果用的是getStateData接口
- 如果获取到的数值都是0,检查startReceiveRobotState是否传入了对应的字段
- startReceiveRobotState和updateRobotState接口中传入的时间应该相同。
- 如果感觉获取到的位置相比示教器有延迟,需要在updateRobotState前使用while (robot.updateRobotState(chrono::steady_clock::duration::zero()));清除旧数据
- 如果开启了实时模式,数据有略微的偏差,是因为有重力补偿的原因,后续sdk下发点位都以sdk获取到的位置为准。如果非要一样,可以在示教器上,选项-生产专用-关闭重力补偿(不建议)
- 如果数值偏差很大,可以切换示教器状态显示的坐标系,看是否有相同的情况