四、轨迹记录与回放(Python)
本页对应 C++ 版。函数名与参数顺序与 C++ 完全一致(Python SDK 由 C++ 经 SWIG 生成),差异只在两处:
- 返回值形态:C++ 用引用参数回填数据;Python 的返回形态由 SWIG 绑定决定,逐接口实测,不按类型推断。
- 少数接口在 Python 中不可直接调用(绑定缺陷),页面内已逐个标注。
本页共 12 个接口,其中 12 个在 Python SDK 中存在。
功能概述
track_record_start / track_record_start_robot
轨迹记录开始。设置采样参数后开始采集机器人末端轨迹。
track_record_start
def track_record_start(socketFd, maxSamplingNum, samplingInterval):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
track_record_start_robot
def track_record_start_robot(socketFd, robotNum, maxSamplingNum, samplingInterval):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 说明 |
|---|---|---|
| socketFd | SOCKETFD | 连接句柄 |
| robotNum | int | 机器人编号 (1-4),仅 _robot 版本 |
| maxSamplingNum | double | 最大采样点数,范围 [200, 12000] |
| samplingInterval | double | 采样间隔(秒),范围 [0.03, 1] |
C++ 侧返回值描述:SUCCESS(0) 表示成功,负数表示失败。
track_record_stop / track_record_stop_robot
轨迹记录关闭,结束轨迹数据采集。
track_record_stop
def track_record_stop(socketFd):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
ret = nrc.track_record_stop(fd)
print(ret)track_record_stop_robot
def track_record_stop_robot(socketFd, robotNum):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
ret = nrc.track_record_stop_robot(fd, 1)
print(ret)参数说明(与 C++ 一致):
| 参数 | 类型 | 说明 |
|---|---|---|
| socketFd | SOCKETFD | 连接句柄 |
| robotNum | int | 机器人编号 (1-4),仅 _robot 版本 |
C++ 侧返回值描述:SUCCESS(0) 表示成功,负数表示失败。
get_track_record_status / get_track_record_status_robot
查询轨迹记录开启状态。
get_track_record_status
def get_track_record_status(socketFd, recordStart):返回值:list,共 2 个元素,形如 [结果码, 数据...]。下标 0 是结果码,下标 1 是出参值。(实测为 list 而非 tuple,解包写法 ret, val = ... 同样可用。)
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
ret, val = nrc.get_track_record_status(fd, False)
print(ret, val) # 返回 list,可直接解包get_track_record_status_robot
def get_track_record_status_robot(socketFd, robotNum, recordStart):返回值:list,共 2 个元素,形如 [结果码, 数据...]。下标 0 是结果码,下标 1 是出参值。(实测为 list 而非 tuple,解包写法 ret, val = ... 同样可用。)
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
ret, val = nrc.get_track_record_status_robot(fd, 1, False)
print(ret, val) # 返回 list,可直接解包参数说明(与 C++ 一致):
| 参数 | 类型 | 说明 |
|---|---|---|
| socketFd | SOCKETFD | 连接句柄 |
| robotNum | int | 机器人编号 (1-4),仅 _robot 版本 |
| recordStart | bool& | 输出参数,记录状态:true=开启,false=关闭 |
C++ 侧返回值描述:SUCCESS(0) 表示成功,负数表示失败。
track_record_save / track_record_save_robot
轨迹记录保存,将采集到的轨迹数据以指定名称保存。
track_record_save
def track_record_save(socketFd, trajName):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
track_record_save_robot
def track_record_save_robot(socketFd, robotNum, trajName):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 说明 |
|---|---|---|
| socketFd | SOCKETFD | 连接句柄 |
| robotNum | int | 机器人编号 (1-4),仅 _robot 版本 |
| trajName | std::string | 保存的轨迹名称 |
C++ 侧返回值描述:SUCCESS(0) 表示成功,负数表示失败。
track_record_playback / track_record_playback_robot
轨迹回放,按设定速度复现已保存的轨迹。
track_record_playback
def track_record_playback(socketFd, vel):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
track_record_playback_robot
def track_record_playback_robot(socketFd, robotNum, vel):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 说明 |
|---|---|---|
| socketFd | SOCKETFD | 连接句柄 |
| robotNum | int | 机器人编号 (1-4),仅 _robot 版本 |
| vel | int | 回放速度(百分比) |
C++ 侧返回值描述:SUCCESS(0) 表示成功,负数表示失败。
track_record_delete / track_record_delete_robot
轨迹清除,删除当前保存的轨迹数据。
track_record_delete
def track_record_delete(socketFd):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
ret = nrc.track_record_delete(fd)
print(ret)track_record_delete_robot
def track_record_delete_robot(socketFd, robotNum):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
ret = nrc.track_record_delete_robot(fd, 1)
print(ret)参数说明(与 C++ 一致):
| 参数 | 类型 | 说明 |
|---|---|---|
| socketFd | SOCKETFD | 连接句柄 |
| robotNum | int | 机器人编号 (1-4),仅 _robot 版本 |
C++ 侧返回值描述:SUCCESS(0) 表示成功,负数表示失败。