Webots 基于 ODE 开源动力学仿真软件
(http://www.ode.org/)
下面通过一个例子快速上手 webots
1. 新建项目
安装完 Webots 6.4.3 后,双击出来欢迎界面,如下
点第一个 Guided Tour 可以看它自带的例子。点右下角的“Your Project”就新建了一个项目,软件的
主界面分为四大块。
1) 3D 窗口用于显示仿真环境(基于 openGL)(新建后系统默认设置是一个棋盘形的平地以及视角、
灯光、重力加速度等)
2) 场景树用于显示仿真环境中的物体属性,鼠标双击仿真环境中的物体即可看到场景树中对应的信
息。里面有 Worldinfo 等几个项,含义以后再说。
3) 代码区用于显示世界文件或控制器的代码,webots 自带 IDE(MinGW, 编程语言支持 C/C++、
Python、Java 等),也可以用其他 IDE,如 visual studio。
4) 控制台显示调试的信息和控制器的输出参数。
2. 编写控制器程序——controller
什么是控制器?
建立世界模型和机器人模型相当于搭建实验场地和物理平台。这时的机器人相当于没有装操作系
统的电脑,什么也干不了。要想让机器人干点什么就要通过控制器程序控制它。可以用以下程序语言:
C,C++,Java,Python,Matlab。一个控制器程序可以给多个机器人同时用,但一个机器人一次只
能用一个控制器。
操作:
点工具栏上的 向导(wizard)——>新项目目录,弹出
这是选择你新建的文件放置的位置。选好后确定。
再进入 向导(wizard)——>新机器人控制器
选 C 语言即可,确定,弹出文件名窗口,给你的文件夹起个名吧,最好别用中文。
起好名后确定,弹出
看到了吧,它会自动在你选择的位置新建以上文件和目录。我起的名字是 turn。确定后在左面出
现了控制器的程序模版:
对此修改即可,我们先写个简单的控制器,功能是让机器人转圈。
程序代码如下,将其完全覆盖原来的模版即可:
#include
#include
#define TIME_STEP 32
int main(int argc, char **argv)
{
wb_robot_init();
// set up the speeds
wb_differential_wheels_set_speed(100, 200);
do {
} while (wb_robot_step(TIME_STEP) != -1);
wb_robot_cleanup();
return 0;
}
复制后点编辑区上工具栏上的 保存,再点 编译,最后点 生成可执行文件。
如果没有错误,会出现:
选是,则仿真环境被重置。
3. 导入机器人
先选中选择场景树的最后一项 Solid,再在最上面一列图标中的倒数第三个 ,叫 Add new。如果看
不到就调整一下场景树栏的宽度。
弹出这个 展开最后一项,选择 EPuck,点加入。
于是,一个小机器人就出现在 3D 窗口中了:
先说一下鼠标的使用:
在 3D 窗口中:
左键——调整视角
中键——缩放
右键——平移
Shift+左键——移动选中物体
Shift+中键——调整选中物体的高度
Shift+右键——按旋转轴旋转选中物体
双击选中物体——出现信息框(双击机器人试试)
在场景树中展开 Worldinfo 项,找到 runRealTime 项,在最下面的框中勾选
目的是让机器人仿真和控制器程序同步。如果是 false 则机器人能运行多快就多快。
展开 epuck 项
变为
找到 controller 项,下面有对应的选项:
它默认的控制器是 void,要选我们自己的,点省略号“…”,出来:
如果你刚才的程序没问题,这里会出现你生成的程序(后缀名是 exe,可以去看看),我的是 turn。
4. 仿真
点 3D 窗口上
中间的箭头 开始仿真,机器人就开始走了,再点 仿真结束,机器人停止。
未完待续