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则显示物体的阴影