Webots学习⽇志:官⽅教程要点
⼀、前⾔与在线资料
与Gazebo相⽐,Webots的中⽂⼊门资料相对较少,且基本上都是从Webots官⽅⼊门教程中摘取部分翻译出来的。要想了解Webots的全貌,还得从Webots官⽅⽂档出发。
Webots官⽅⽂档中,核⼼⽂档主要有三份,建议的学习或阅读顺序依次是:
(1)⼊门教程:
(2)参考⼿册:
(3)⾃动驾驶专题:
另外,还有两份⽂档,⼀份是关于最新动态的(主要是版本更新⽇志和最新功能介绍),另⼀份是关于技术问答的。
(1)最新动态:
(2)技术问答:
同时,官⽅还提供了云端仿真环境,供研究者或兴趣者测试相关算法,并在测试结束后⽣成排名。
(1)云端服务:sqlserver快速入门
⼆、本⽂⽬的与离线⽂档
第⼀次学习Webots时就全⾯阅读了两三遍《⼊门教程》和《参考⼿册》,并结合实际操作做了详细的笔记,但所作笔记都是浓缩的要点且某些要点从不同的章节总结⽽来,也有⼀些当时认为不重要点没记录。当过了较长⼀段时间没使⽤Webots,希望看笔记快速回忆时,发现不能确切地将某些知识点映射到《⼊门教程》或《参考⼿册》对应的章节。于是⼜重新浏览⼀遍《⼊门教程》,浏览过程中发现的确很多知识点都是熟悉的或⽬前不关注的,如果能直接定位到⾃⼰期望的知识点,那将节省不少的时间。
基于以上⽬的,决定⽤中⽂提炼出《⼊门教程》各个章节的要点,以供后续快速定位参考。同时,对⼀些我认为较基础或较重要的内容作详细说明。由于我主要的编程语⾔是C/C++和Python,所以涉及到编程语⾔相关的知识点,⾸先聚焦在C/C++,其次是
Python,Java&Matlab将忽略。
不知道是不是墙的原因,国内⽹打开Webots在线官⽅⽂档很慢,甚⾄很多时候打不开(外⽹则很顺畅)。
getenv函数然⽽,其实Webots安装后,官⽅⽂档也相应的安装了,位于WEBOTS_HOME/docs下。直接⽤浏览器打开index.html是不可⾏的,需要按README.md操作。
⾸先,在WEBOTS_HOME/docs打开终端运⾏python -m http.server 8000。
然后,在浏览器中输⼊链接即可。
或者直接单击MainGUI->Help->Offline document在MainGUI中查看,但不如浏览器中阅读得劲。
三、⼊门教程各章节要点
本⽂内容是基于Webots2020-rev2-doc撰写。
前⾔(Foreword):知道Webots于2018年基于Apache2.0开源。
致谢(Thanks):略
1.直接安装(Installing Webots)
1.1系统要求(System Requirements):主机不要是10年前的就⾏、系统选Ubuntu长期⽀持版或Win8.1X64或Win10
1.2显卡要求(Verifying Your Graphics Driver Installation):选NVIDIA或AMD就对啦、安装或更新到最新驱动准没错
1.3如何安装(Installation Procedure)
官⽹说了多种⽅法,我⾃⼰总结了两种简单易⾏的安装⽅式。
(1)对于Ubuntu:下载deb包执⾏apt-get install ./webots_2020b-rev1_amd64.deb,ubunut20.04默认安装到/usr/local/webots。
(2)对于Windows:下载exe包直接双击安装即可。
1.4关于许可证(Webots license agreement):主体是Apache
2.0协议,部分插件是Webots Assets协议,部分社区贡献的插件提供了独⽴的使⽤许可证。
1.5⽤户数据收集(Telemetry):详细注明要收集客户端的哪些数据、可在MainGUI->Tools->Preference相应处禁⽤。
1.6帮助翻译⽂档(Translating Webots to Your Own Language):希望你帮助把Webots⽂档翻译成⾃⼰国家的语⾔,并告诉你如何呈交给Webots官⽅。
2.编译安装(Building Webots):略
3.基础知识(Getting Started with Webots)
3.1Webots简介(Introduction to Webots)
介绍什么是Webots、可以⽤Webots做什么、⼀个Webots⼯程的组成、什么是World、什么是Controller、什么是Supervisor Controller,具体可参见官⽅⽂档。以下是我认为时间久了容易忘记的点,这些点不⼀定是核⼼但得知道。
(1)Webots提供了许多机器⼈模型和控制代码,可以帮助使⽤者快速开始。
(2)Webots提供了许多与实际机器⼈(如EPuck、Nao)相同的API,使得控制程序可以⽆缝应⽤到真实的机器⼈。
(3)Supervisor是属性supervisor为TRUE的Robot。
3.2启动Webots(Starting Webots)
Ubuntu和Windows直接单击应⽤图标都能启动,这⾥不多说明。⾸重说明以下三点。
(1)root账户启动问题:我习惯于直接使⽤root账户,如果是在root账户下使⽤webots,每次启动需要附加参数--no-sandbox,稍显不便,更关键的是后续与ROS2结合使⽤Launch启动时,⽆处输⼊--no-sandbox参数,导致⽆法启动。解决⽅案是在/usr/local/webots相应处添加--no-sandbox参数。具体修改如下:
if command -v primusrun >/dev/null 2>&1; then
primusrun "webots_home/bin/webots-bin" "@" "--no-sandbox" &
else
"webots_home/bin/webots-bin" "@" "--no-sandbox" &
fi
(2)终端启动命令:webots [options] [worldfile]。以下是常⽤选项。
--fullscreen:全屏启动
--minimize:最⼩窗⼝启动access数据库系统开发
-
-mode=pasue/realtime/run/fast
--stdout:重定向输出到终端(默认输出到GUI终端)
--stderr:重定向错误到终端(默认输出到GUI终端)
(3)安全启动模式:Webots默认打开上次关闭的World,打开这个World,可能会因为其依赖的OpenGL存在问题⼀直卡在启动界⾯,若出现这种问题,可新增环境变量WEBOTS_SAFE_MODE并设为true,此时启动Webots就会打开⼀个空World。若想每次启动Webots不打开上次关闭的World或想打开⼀个空的World,也可以这么操作。
3.3主界⾯介绍(The User Interface):略
3.4三维窗⼝介绍(The 3D Window)
介绍如何选择部件及其⼦部件、如何操作相机、如何操作部件、如何使⽤叠层窗,总结如下。
(1)操作相机
旋转相机:按下⿏标左键并拖动(若选中对象则以其为旋转中⼼否则以相机⾃⾝为旋转⼼)
python入门教程 下载
平移相机:按下⿏标右键并拖动
缩放相机:按下⿏标中键并拖动
复合操作:按下⿏标双键并拖动(⽔平拖动为旋转、垂直拖动为缩放、斜拖动则旋转并缩放)
(2)操作对象
旋转对象:选中对象平移轴并按下⿏标左键拖动
平移对象:选中对象旋转轴并按下⿏标左键拖动
缩放对象:Ctrl
平⾏地⾯平移:选中对象并按下Shift和⿏标左键拖动
环绕地轴旋转:选中对象并按下Shift和⿏标右键拖动
平⾏地轴平移:选中对象并按下Shift和⿏标中键或左右键拖动
作⽤⼒到对象:指向作⽤点并按下Alt和⿏标左键拖动
作⽤转矩到对象:指向作⽤点并按下Alt和⿏标右键拖动
(3)叠层窗⼝
共有在类叠窗:相机设备、深度设备、显⽰设备
叠窗可以⾃由缩放尺⼨、可以隐藏、双击转换为独⽴窗⼝
mysql workbench版3.5场景树介绍(The Scene Tree):常⽤界⾯、不易遗忘、不强调。
c语言逻辑判断优先级
3.6终端介绍(The Console):可并存多个终端、每个终端可绑定指定控制器、每个终端可绑定指定⽇志类型
3.7⾸选项介绍(Preferences)
详见⽂档或打开软件查看。这⾥重点阐述两点。
(1)General选项卡可设置:默认界⾯语⾔、默认启动模式(pasue/realtime/run/fast)、默认Python版本
(2)OpenGL选项卡最佳渲染配置:AmbientOcclusion=Ultra、TextureQuality=High、MaxTextureFiltering=5、DisableShadows=False、DisableAntiAliasing=False。最佳性能配置则配置
为相反的值。
3.8引⽤Webots(Citing Webots):略
3.9外设⽀持(Computer Peripherals):知道⽀持游戏⼿柄和虚拟现实头盔、且有⼿柄编程接⼝Joystick,详见⽂档。Processing math: 0%

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。