Webots仿真笔记
Webots简介
简介
Webots是一款专业的物理仿真软件,被广泛运用在机器人仿真实践控制算法中,2018年12月该软件宣布开源。
Webots最初采用C进行编程,至今已经实现提供C、C++、Python、Java、Matlab接口的API进行仿真控制器。同时它提供了对应的ROS和ROS2功能包用于实现相关的节点接口。
学习资源汇总
Webots开源于2018年,国内相关的教程资源较少且由于软件尚处于开发阶段,各个版本的功能大相径庭,致使软件的学习成本较高,推荐参看官方手册进行学习。本笔记基于Webots2023a版本进行记录。
Webots Node
环境节点
WorldInfo
节点说明
WorldInfo节点用于设置仿真世界的基础信息,节点的官方文档内容如下:Worldinfo
该节点的属性如下:
WorldInfo { |
常用属性
-
title
: 世界名,用于描述此仿真世界的用处 -
info
:世界说明,详细说明仿真的功能 -
gravity
:仿真世界重力加速度,修改此属性可用于仿真月球、宇宙等环境 -
coordinateSystem
:定义全局坐标系,影响加速度计、GPS、等设备的返回值ENU
:东北天坐标系,沿X正轴向东,沿Y正轴向北,沿Z正轴向天NUE
:沿X正轴向北,沿Y正轴向天,沿Z正轴向东EUN
:沿X正轴向东,沿Y正轴向天,沿Z正轴向北
-
gpsCoordinateSystem
:GPS设备参考坐标系WGS84
:返回设备所在的经纬度及海拔高度local
:返回相对世界坐标系的位置
-
gpsReference
:GPS参考点- 若
gpsCoordinateSystem
设置为WGS84
,则参数表示为纬度、经度、海拔,单位为十进制度数和米 - 若
gpsCoordinateSystem
设置为local
,则参数表示为三轴上的坐标,单位为米
- 若
-
randomSeed
:世界随机种子,应设置为非负数或-1(表示根据时间进行设置)。该参数将影响仿真传感器的噪声等,通过配置此参数可使得仿真效果被重现。
Viewpoint
节点说明
Viewpoint节点定义了用户查看仿真世界的视角,官方文档说明如下:Viewpoint
该节点的属性如下:
Viewpoint { |
常用属性
-
fieldOfZView
:视窗视角大小,单位为弧度制。小视角意味着长焦,大视角则代表广角 -
orientation
和position
:视窗在坐标系内的位姿设置,可通过鼠标在仿真世界内拖拽而直接修改。 -
follow
:可设置视窗跟随指定物体进行移动,用于填写物体名称- 填写物体时,应从根节点开始写;
- 使用
:
连接父节点和子节点; - 若节点名称包括
:
则用\:
进行转义 - 例如
robot:second\:solid:target\solid
表示follow
的对象为robot
下second:solid
下的target\solid
-
followType
:设置视窗跟随follow
的方式None
:视窗不变Tracking Shot
:视窗随对象平移Mounted Shot
:视窗随对象进行偏移和旋转(当需要展示从机器人内部向外观察时较好,例如车窗内)Pan and Tilt Shot
:视窗始终看向对象中心
-
followSmoothness
:设置视窗跟随follow
的平滑程度,仅在followType
设置为Tracking Shot
时有用,值越高移动约平滑
视角跟随的配置可直接在仿真世界中点击所需跟踪的物体后,直接在菜单栏 -> 查看 -> 追随物体中进行设置跟踪方式。
Background
节点说明
TexturedBackgroud和TexturedBackgroundLight节点分别用于设置背景图和环境光
TexturedBackgroud
该节点用于设置背景图,属性如下:
-
texture
:背景图,根据需求在下拉菜单中进行选择 -
luminosity
:背景亮度 -
skyColor
:背景颜色,RGB值
-skybox
:若设置为True
则背景显示为texture
中设置的内容,反之则显示设置的skyColor
TexturedBackgroundLight
-
texture
:环境光类型,根据需求在下拉菜单中进行选择 -
luminosity
:亮度 -
castShadows
:设置为True
则显示物体的阴影