Swift-Sim机器人仿真客户端应用错误排查请求
问题:Swift-Sim加载机器人模型资源时出现404错误
环境与运行代码
使用Swift-Sim运行Franka Panda机器人仿真的入门代码:
import roboticstoolbox as rtb import spatialmath as sm import numpy as np from swift import Swift # 初始化Swift仿真器并启动 env = Swift() env.launch(realtime=True) # 创建Panda机器人模型并设置关节初始位姿 panda = rtb.models.Panda() panda.q = panda.qr # 设置目标末端执行器位姿(基于当前位姿偏移) Tep = panda.fkine(panda.q) * sm.SE3.Tx(0.2) * sm.SE3.Ty(0.2) * sm.SE3.Tz(0.45) # 将机器人添加到仿真环境 env.add(panda) # 循环仿真直到到达目标位姿 arrived = False while not arrived: # 计算末端执行器朝向目标所需的速度 v, arrived = rtb.p_servo(panda.fkine(panda.q), Tep, 1) # 设置机器人关节速度 panda.qd = np.linalg.pinv(panda.jacobe(panda.q)) @ v # 仿真步进50毫秒 env.step(0.05)
错误现象
运行代码后Chrome浏览器自动弹出,随即显示:
Application error: a client-side exception has occurred (see the browser console for more information).
浏览器控制台日志显示大量资源加载失败,典型错误:
index-0723cc3b940b78c7.js:194 Error: Could not load retrieve/C:\Users\user_name\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\rtbdata\xacro\franka_description\meshes\visual\link0.dae: fetch for "http://localhost:52000/retrieve/C:/Users/user_name/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0/LocalCache/local-packages/Python311/site-packages/rtbdata/xacro/franka_description/meshes/visual/link0.dae" responded with 404: File not found) at Object.onError (index-0723cc3b940b78c7.js:194:104816) at index-0723cc3b940b78c7.js:186:224752
已尝试操作
- 确认目标文件确实存在于报错路径中
- 重新下载安装
roboticstoolbox、swift-sim等依赖库 - 在代码中添加
env.hold()语句
排查与解决方案
1. 显式添加静态资源目录
Swift-Sim可能未自动映射rtbdata的资源路径,可在代码中手动指定:
env = Swift() # 显式将rtbdata的资源目录添加到模拟器的静态文件服务中 env.add_static_files(rtb.rtbdata_path()) env.launch(realtime=True)
2. 替换微软商店版Python为独立安装版
微软商店版本的Python存在文件系统隔离限制,可能导致Swift的资源服务器无法读取AppData下的文件。卸载微软商店版Python,改用官网下载的独立exe版本安装,再重新安装依赖库。
3. 验证路径转义与权限
- 手动在浏览器中访问转义后的资源URL:将路径中的
C:替换为C%3A,确保所有斜杠为正斜杠,例如:http://localhost:52000/retrieve/C%3A/Users/user_name/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0/LocalCache/local-packages/Python311/site-packages/rtbdata/xacro/franka_description/meshes/visual/link0.dae
若能访问,说明是代码中路径生成的转义问题;若仍404,需检查Python进程是否有读取该文件的权限,尝试以管理员身份运行脚本。
4. 调整依赖库版本
部分版本的Swift-Sim或Robotics Toolbox在Windows路径处理上存在bug,尝试安装特定版本:
pip install roboticstoolbox-python==1.0.2 swift-sim==0.9.0
内容的提问来源于stack exchange,提问作者Deniz Lapsekili
相关产品推荐
相关产品推荐

