跳到主要内容

常见问题

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接口

  1. 如果获取到的数值都是0,检查startReceiveRobotState是否传入了对应的字段
  2. startReceiveRobotState和updateRobotState接口中传入的时间应该相同。
  3. 如果感觉获取到的位置相比示教器有延迟,需要在updateRobotState前使用while (robot.updateRobotState(chrono::steady_clock::duration::zero()));清除旧数据
  4. 如果开启了实时模式,数据有略微的偏差,是因为有重力补偿的原因,后续sdk下发点位都以sdk获取到的位置为准。如果非要一样,可以在示教器上,选项-生产专用-关闭重力补偿(不建议)
  5. 如果数值偏差很大,可以切换示教器状态显示的坐标系,看是否有相同的情况