虽然我是干软件编程的,但工作中总会遇到一些'计划外技能点':机械、仿真、建模、视觉,甚至一点点工业设计。
Webots 对我来说就是一个非常友好的妥协方案。买不起的设备可以先在电脑里跑,不用等硬件、不用装、不用修,也不会因为线接反了或者电机坏了浪费一天。当然,它也有一个相当危险的点:功能太多,但你并不知道从哪开始用。
这篇文章就记录一个非常基础、但几乎每个人都会遇到的问题:如何把自己建的静态模型,正确地放进 Webots 世界中。
一、模型从哪里来?
如果你只是想在 Webots 里摆点桌子、凳子、机台外壳、围栏之类的东西,其实不需要高精度建模。我个人推荐两条路:SolidWorks 或 Fusion 360。
我这次用的是 Fusion 360。目标很简单,只做了一个非常朴素的工作台:实际尺寸 1600 × 700 × 750 mm,本质就是桌子加四条腿。细节肯定有瑕疵,但先能用最重要。
Webots 里 80% 的静态模型,本质都是'占位 + 参考',不是产品级建模。
二、导出模型,准备进 Webots
建好之后,直接从 Fusion 导出即可。常用格式是 .stl(最常用,也最稳)或 .dae(Collada,带材质,但容易踩坑)。我这里直接用 STL。
三、把 STL 丢进 Webots
现在进入 Webots。我先简单建了一个地板,准备把工作台放进去,看看比例和效果。
直接找到 STL 文件拖进 Webots,然后你会看到一个非常经典的画面:模型大得离谱。
真的大到让人想笑。这其实是几乎所有新手都会遇到的问题,原因只有一个:单位不一致。
- CAD(Fusion / SolidWorks):毫米
- Webots(VRML):米
也就是说 1600 mm = 1.6 m,但 Webots 并不知道你这个 STL 是毫米单位,它会默认当成'米'来用。于是,一个 1.6 米的桌子变成了 1600 米的怪物。
四、正确的做法:不要直接用导入的 Shape
这是一个非常重要的工程经验点。
❌ 不推荐
- 直接用 Webots 自动生成的 Shape
- 在原始节点上乱改
✅ 正确流程
- 新建一个
Solid - 把 STL 放进这个
Solid里 - 用
scale控制尺寸 - 顺便统一材质和颜色
五、缩放比例到底该怎么设?
我这里是一步步试出来的。
第一次尝试 scale 0.01,小了一点,但还是不对。
第二次尝试 scale 0.001,基本和真实工作台比例一致。
原因很简单:毫米 → 米 = ÷1000。
六、加一点材质,模型就'活了'
在 Solid 里给 Shape 加一个材质,设个浅灰 / 银白,roughness 稍微高一点。哪怕模型很简单,一有材质,工业感马上就出来了。
七、最终的文件结构(推荐习惯)
Solid
├─ Transform
│ └─ Shape
│ ├─ geometry (Mesh / STL)
│ └─ appearance
好处是后期可以整体移动,可以加物理属性(质量 / 碰撞),不会被 Webots 自动生成的结构绑死。
八、这一小步,其实非常关键
看起来这只是'把一个桌子放进 Webots',但它解决的是后面一整条路径:工厂场景搭建、机台布局、机器人可达性验证、视觉 / 相机位姿规划。
而且最爽的一点是:没有硬件质量问题,没有装配问题,没有'今天不想配线了'的问题。
Webots 的功能确实很多,也确实容易让人迷路。但只要你从最基础的'把东西放进去'开始,后面每一步都会自然展开。


