本人是某非理工类某高校大四狗,由于毕设研究需要使用webots软件,在学习使用webots的过程花费了很多时间。由于这个软件基本没有什么中文资料,所以想把自己所学到的一些东西写下来,如有什么错误的地方,大家可以批评指正。

打开webots软件,我使用的是webots pro 7.0.3,界面大概如下,该软件是支持中文的,可以通过Tools->Prefences…选项,在General中language选项改成Chinese-中文。

由于语言已经改成了中文,菜单栏的内容比较简单,在帮助这一栏有用户指南(guide)和参考手册(reference),英语好的同学可以自行阅读学习,其他的在使用到的时候我们再详细介绍。

在界面的左边的窗口是Scene Tree(场景树),模型和环境的建模都在这个窗口。

最上面的三个节点是WorldInfo(世界信息)、Viewpoint(视角)、Background(背景),这三项是无法删除的。

WorldInfo里面有仿真物理学的一些参数,我们一般不修改这些参数。

basicTimeStep:这个参数,它代表仿真最小的时间单元,当它为32时,即每次仿真的时间步长为32毫秒。

Gravity:是重力的大小和方向,xyz的方向可以看仿真视图(界面中间Simulation View)的右下角会有一个坐标系,如图没有坐标系,可以在菜单栏:查看->可选显示->显示坐标系统打开。

 Physics:搭载物理插件的参数,在后期需要用到机械上的铰链、万向节等结构时需要用到物理插件。

其他的参数意义可以自行查看 参考手册(F4)(reference.pdf)   3.53节 WorldInfo

ViewPoint:里面的参数记录了你在仿真视图中观察的角度和位置,除非特殊需要,可以直接用鼠标左键右键中键点击仿真视图拖拽进行视图调整。follow可以锁定一个节点,在仿真的时候视图跟随其运动。

      Bcakground:背景颜色RGB。

接下来的两个节点是PointLightcheckeredFloor,这两个节点是新建时自动添加的,分别是光源和地板,也可见删除自己在新建。这两个节点有位置和大小信息,可以自行修改看看效果。

在场景树上有一排工具栏,前三个分别是剪切、复制、粘贴,这三个工具是对节点进行剪切、复制、粘贴的(PS:这个软件没有返回,操作需谨慎)。接下来是删除、重置、转换、新建、导出、导入、帮助,这些工具都是对节点进行操作的。

在仿真视图上有一排工具,前五个是新建、打开、保存、另存为、重置(退回为保存时的状态),都是对世界模型的操作。接下来是一堆像播放的按钮,依次是单步仿真、实速仿真、加速仿真、最快速仿真(不显示画面),然后是录像和拍照,输出视频和图片。最后是仿真时间和仿真速度

最右边的文本编辑窗口,也就是编辑控制器程序的窗口,这次先不介绍。

接下来我们建一个简单的模型,一个球自由落体,看看仿真效果。

在建立模型时,先观察仿真时间是否为0时刻,不是的话点击仿真窗口重置按钮重新加载世界,因为仿真时间不为0是无法保存的。

在左边场景树种点击新建,选择新节点的Solid(实体)。在Solid节点展开下点击children,新建shape节点,并点击shape节点,在下方DEF中输入qiu,回车,将Shape节点命名为qiu。在shape节点下点击geometry NULL,新建sphere节点。

然后仿真视图,会有个球,一半在地面上,solid节点下的translation改成(0,0.2, 0)。球完全出现在了地板上方。点击boundingObject NULL,新建节点USE下的qiu(Shape),如果USE节点下面没有出现 qiu(Shape),一般是因为之前没有给Shape节点命名。(PS:这个命名不是节点下面的name属性,name属性是控制器会用到的,命名方法是点击节点,在下方DEF中输入)。

添加好了会出现如下图的线框网格,代表这个物体的外边界,即和其他物体发生碰撞的边界,如果没有出现,在场景里点一下球体。

然后在physics NULL中添加physics节点,这个节点下可以设置密度和质量了,默认是密度1000,质量-1,-1代表不适用质量这个属性,如果要设置质量信息,将密度改成-1,质量改成相应值就好了。

然后保存一下世界,预先创建一个文件夹,要创建两级目录,比如D:\webots\robot\robot,因为在后面添加控制器时,软件自动创建D:\webots\robot\controller这个文件夹,为了避免不同项目的控制器不相互干扰,所以创建一个两级目录。点击菜单栏 文件->保存世界。

然后点击一下仿真按钮,就能发现球落在了地板上。这样一个简单的自由落体就完成了。

接下来说一下用鼠标简单的移动物体。选中球体,按下Shift+鼠标左键,发现可以在水平面上移动球体。还有其他的按键如下。

Shift+鼠标左键:水平移动物体

Shift+鼠标中间键:铅直移动物体

Shift+鼠标右键:沿xyz轴旋转物体,连续按下shift键,旋转轴会在XYZ依次轮换。(然后你会发现你把粘滞键按出来了,哈哈,强迫症一直按吧,开个玩笑,可以忽略)

Alt+鼠标左键:添加一个力(仿真运行时才有反应)

Alt+鼠标右键:添加一个力矩(仿真运行时才有反应)

自己第一次发这种软件教程。这个例子比较简单,不足以展示这个软件的功能,但是这个软件确实很强大,下一次我会发一个四足机器人的模型建立、传感器输出、还有控制器的编写,大概这个样子。

原创文章,出自"博客园, _阿龙clliu" :http://www.cnblogs.com/clliu/

webots自学笔记(一)软件界面和简单模型仿真的更多相关文章

  1. webots自学笔记(二)节点与机器人建模

    原创文章,出自"博客园, _阿龙clliu" :http://www.cnblogs.com/clliu/ 上一次介绍了界面和一个简单的自由落体,然而在实际运用中,机器人的结构都是 ...

  2. webots自学笔记(五)使用物理插件ODE建立铰链

    原创文章,来自"博客园,_阿龙clliu" http://www.cnblogs.com/clliu/,转载请注明原文章出处. 在一些三维制图软件或仿真软件里,都有运动副的概念,w ...

  3. webots自学笔记(四)传感器API使用、查看官方文档

           原创文章,来自“博客园,_阿龙clliu” http://www.cnblogs.com/clliu/,转载请注明原文章出处.           不能说webots的学习资料少,只能说 ...

  4. webots自学笔记(六)实用控制器函数补充

    原创文章,来自"博客园,_阿龙clliu" http://www.cnblogs.com/clliu/,转载请注明原文章出处.       用Webots软件做机器人仿真时,可以编 ...

  5. webots自学笔记(三)控制器与电机控制

    原创文章,来自“博客园,_阿龙clliu” http://www.cnblogs.com/clliu/,装载请注明原文章出处. 上一次建了四足机器人的模型,模型文件在上一篇有下载地址,这一次用控制器让 ...

  6. Hadoop自学笔记(三)MapReduce简单介绍

    1. MapReduce Architecture MapReduce是一套可编程的框架,大部分MapReduce的工作都能够用Pig或者Hive完毕.可是还是要了解MapReduce本身是怎样工作的 ...

  7. Hadoop自学笔记(二)HDFS简单介绍

    1. HDFS Architecture 一种Master-Slave结构.包括Name Node, Secondary Name Node,Data Node Job Tracker, Task T ...

  8. CSS自学笔记(10):CSS3盒子模型

    CSS3为CSS技术的升级版本.最新版本. 就CSS而言,它是一个模块,是一个庞大而又复杂的模块,但是在CSS3中,将这一个庞大的模块分解为一个个容易理解的同时又很精简的小模块,同时CSS3中又添加了 ...

  9. CSS自学笔记(6):CSS的模型

    CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边距.边框和外边距的方式. 图片来源:w3school.com.cn 元素(element)是一个html文档的实际内容区域,依次由 ...

随机推荐

  1. C# Unity游戏开发——Excel中的数据是如何到游戏中的 (一)

    引言 现在做游戏开发的没有几个不用Excel的,用的最多的就是策划.尤其是数值策划,Excel为用户提供强大的工具,各种快捷键,各种插件,各种函数.但是作为程序来说其实关注的不是Excel而是它最终形 ...

  2. xtemplate语法

    XTemplate 是富逻辑的 KISSY 模板引擎,面向复杂的业务逻辑场景,同时保持高性能和丰富的配置方法,是易学易懂的模板语言. 一个典型的XTemplate模板实例: Hello {{name} ...

  3. linux下的Source命令的基本功能

    source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令.注:该命令通常用命令“.”来替代.如:source .bash_rc 与 . .bas ...

  4. MiniProfiler工具介绍

    MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性能分析的轻量级程序.可以对一个页面本身,及该页面通过直接引用.Ajax.Iframe形式访问的其它页面进行监控 ...

  5. GitLab Wiki 内容恢复版本管理

    原来一直在网站上写Wiki文档, 最近手欠误删一篇文档, 想要恢复文档时才发现原来gitlab的Wiki是用git管理的从此再也不用为误删担心了 实现步骤: mac系统安装gollow brew in ...

  6. Dynamics CRM 2015-Form之控制Ribbon Button

    在上一篇中,我用一个例子,简单介绍了如何添加Ribbon Button,以及如何理解RibbonDiffXml,对这方面还不清楚的,可以先看看这篇博文:Dynamics CRM 2015-Form之添 ...

  7. linux文本处理常用指令总结

    引子 作为一个偏爱windows的程序员,以前做文本处理的时候总是喜欢在windows下用notepad++等图形化工具处理,比如有时需要把linux服务器上一个文件进行一次全局字符串替换这样简单的操 ...

  8. jvm的内存空间分区

    在方法(代码块)中定义一个变量时,java就在栈中为这个变量分配JVM内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的JVM内存空间:而在堆中分配的JVM内存由java虚拟机的自动 ...

  9. 国内不能使用Google解决方案(不断更新与递增中...)

    1.修改hosts方式可以根据对hosts的配置,解决Google搜索.Gmail.谷歌学术.维基百科.GitHub.Twitter.Facebook.Flickr.imgur.Google Serv ...

  10. 配置FindBugs和常见FindBugs错误

    配置FindBugs: 在这里可以对FindBugs规则等进行详细设置. 选择你的项目,右键 => Properties => FindBugs => 1 Run Automatic ...