You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下Xsens Device API的startRecording函数调用失败求助

解决Xsens Device API中startRecording调用失败的问题(Linux环境)

1. 修复USB设备权限问题

Linux下Awinda2 USB Dongle默认可能没有足够的读写权限,这是API调用失败的常见诱因:

  • 执行lsusb找到Xsens设备,确认厂商ID为2639
  • 创建udev规则文件/etc/udev/rules.d/99-xsens.rules,写入:
    SUBSYSTEM=="usb", ATTRS{idVendor}=="2639", MODE="0666"
    
  • 重启udev服务:sudo udevadm control --reload-rules && sudo udevadm trigger
  • 拔插Dongle使规则生效

2. 严格遵循传感器初始化流程

startRecording仅能在传感器进入测量模式后调用,必须确保流程正确:

  • 先打开Dongle设备,扫描并完成所有MTw传感器的连接
  • 将每个传感器切换到测量模式,等待模式切换完成
  • 再执行录制启动操作

示例代码片段:

from xsensdeviceapi import XsControl, XsDevice

# 初始化控制对象
control = XsControl()

# 打开Awinda Dongle
dongle = control.openDevice("usb:0")
if not dongle:
    print("无法打开Awinda Dongle")
    exit()

# 启用设备检测并等待传感器连接
dongle.enableDeviceDetection()
# 需添加等待逻辑,确保3个MTw传感器全部被检测并连接
# 例如循环检查control.devices()的数量,直到符合预期

# 将所有MTw传感器切换到测量模式
for device in control.devices():
    if device.isMtw():
        device.gotoMeasurement()
        # 等待模式切换完成
        while not device.isMeasurementEnabled():
            pass

# 尝试启动录制
if not dongle.startRecording():
    # 打印详细错误信息
    print(f"启动录制失败: {dongle.lastResultText()}")

3. 验证API依赖与版本

  • 确保安装的Xsens Device API Python绑定为最新稳定版
  • 检查系统是否能找到API的动态链接库:执行echo $LD_LIBRARY_PATH,确认包含Xsens库所在路径;若未包含,可在脚本开头添加:
    import os
    os.environ['LD_LIBRARY_PATH'] = '/path/to/xsens/lib:' + os.environ.get('LD_LIBRARY_PATH', '')
    

4. 利用错误信息定位问题

调用startRecording失败后,一定要通过lastResultText()获取具体错误描述,比如:

  • "Device not in measurement mode":传感器未进入测量模式
  • "Permission denied":设备权限不足
  • "No devices connected":传感器未正确连接

5. 避免重复录制操作

如果之前已启动录制且未停止,再次调用startRecording会直接失败。可在调用前检查录制状态:

if dongle.isRecording():
    dongle.stopRecording()
# 再执行startRecording

内容的提问来源于stack exchange,提问作者jvkloc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 15:03:32