在 webots 中改变全局坐标系
Changing global coordinate frame in webots
我刚开始使用 webots,遇到了以下问题:
Webots 全局坐标系将其 y 轴定义为向上显示(具有负 y 分量的重力矢量)。但是我想围绕一个z轴向上显示的坐标系构建一个世界。
是否可以全局更改?
感谢您的回复。
是的,可以按照以下步骤操作:
- 应旋转对象(Webots PROTOs 或 "level-0" Transform),使其底部指向 Z 轴(负)。您可以在选择对象后使用 3D 视图的 Gizmo 执行此操作。
WorldInfo.gravity
字段应更改为 0 0 -9.81
。除了改变重力外,这个参数还影响视点使用鼠标移动的方式。
WorldInfo.north
如果您打算在模拟中使用 Compass 传感器,则应进行修改。
- Webots 中为背景天空立方体发布的立方体纹理沿 y 轴方向。旋转它们并不简单。删除
Background.cubmap
是一个快速的解决方案,但它会避免获得好看的渲染(如果没有带纹理的背景,PBR 材料将无法正常工作)。为了更进一步,您必须为您的世界创建一组自定义纹理($YOUR_PROJECT/worlds/textures/cubic/*.png)。可能 switching/rotating/renaming 纹理就足够了。
请注意,在 Webots 中,由于 VRML 和 X3D 遗留问题,全局 y 轴向上。许多 X3D 导出器(如 Blender)允许在导出期间更改下轴。 => 向下使用 y 轴是个不错的主意:-)
从 Webots R2020b 开始,重力不再是矢量。相反,您可以在 WorldInfo
节点中将 coordinateSystem
字段的值设置为 ENU
:
https://cyberbotics.com/doc/reference/worldinfo
但是请注意,coordinateSystem
字段不会影响对象的轴系。如果您想将对象的轴系统更改为例如FLU (x-Forward, y-Left, z-Up) 然后你有手动修改对象。
我刚开始使用 webots,遇到了以下问题:
Webots 全局坐标系将其 y 轴定义为向上显示(具有负 y 分量的重力矢量)。但是我想围绕一个z轴向上显示的坐标系构建一个世界。
是否可以全局更改?
感谢您的回复。
是的,可以按照以下步骤操作:
- 应旋转对象(Webots PROTOs 或 "level-0" Transform),使其底部指向 Z 轴(负)。您可以在选择对象后使用 3D 视图的 Gizmo 执行此操作。
WorldInfo.gravity
字段应更改为0 0 -9.81
。除了改变重力外,这个参数还影响视点使用鼠标移动的方式。WorldInfo.north
如果您打算在模拟中使用 Compass 传感器,则应进行修改。- Webots 中为背景天空立方体发布的立方体纹理沿 y 轴方向。旋转它们并不简单。删除
Background.cubmap
是一个快速的解决方案,但它会避免获得好看的渲染(如果没有带纹理的背景,PBR 材料将无法正常工作)。为了更进一步,您必须为您的世界创建一组自定义纹理($YOUR_PROJECT/worlds/textures/cubic/*.png)。可能 switching/rotating/renaming 纹理就足够了。
请注意,在 Webots 中,由于 VRML 和 X3D 遗留问题,全局 y 轴向上。许多 X3D 导出器(如 Blender)允许在导出期间更改下轴。 => 向下使用 y 轴是个不错的主意:-)
从 Webots R2020b 开始,重力不再是矢量。相反,您可以在 WorldInfo
节点中将 coordinateSystem
字段的值设置为 ENU
:
https://cyberbotics.com/doc/reference/worldinfo
但是请注意,coordinateSystem
字段不会影响对象的轴系。如果您想将对象的轴系统更改为例如FLU (x-Forward, y-Left, z-Up) 然后你有手动修改对象。