问题标签 [webots]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
106 浏览

java - 一个对象的创建和分配没有 new 或声明

我正在尝试理解 Webots(机器人模拟程序)中的示例代码。

我遇到过这段代码:

我不明白第一行是什么肉。看起来“rightShoulderPitch”是Servo类的一个对象,但它没有像往常一样创建,以及“getServo”(我认为它是一种方法)如何出现在这里。

如果有帮助,此类的标题是:

参考手册中也有公司的描述,但我不明白它们的意思。可以在这里搜索getservo找到它。

--- RShoulderPitch:是机器人肩部的名称

我会非常感谢您的帮助。

谢谢

0 投票
2 回答
645 浏览

c++ - 在 Webots C++ 中将速度设置为 DifferentialWheels 的问题

这里的小社区,但希望有人看到这一点。我正在尝试为 E-puck 进行 Webots 模拟的纯 C++ 实现。C++ 文档非常缺乏,我似乎无法找到解决此问题的方法(C 实现非常出色,但所有函数调用都针对 C++ 进行了更改)。

本质上,我只是想让一个简单的应用程序启动并运行……我想让 E-puck 向前发展。我将在下面发布我的全部代码......我所做的只是实例化一个机器人实体,打印出所有 IR 传感器值,并尝试将其向前移动。

问题是它不动。我认为会有一些将DifferentialWheel 对象链接到E-puck 的调用(类似于camera = getCamera("camera")调用)。

如果我注释掉我对 setSpeed 的调用,程序就会完美运行(不会移动,但会打印值)。如果我把它留在里面,一旦接到那个电话,模拟就会在一个步骤后冻结。老实说,我不确定我做错了什么。

现在,如果这是 C 实现,我会调用wb_differential_wheels_set_speed(1000, 1000); 但是,该调用在 C++ 头文件中不可用。

0 投票
1 回答
12465 浏览

c - MAC 10.7:gl.h 文件在哪里?

可能重复:
Mac OS X Lion 上的 FreeGLUT

第一个测验:谁能解释一下为什么我无法在我的mac上的任何地方找到gl.h文件?!如果可以简单地回答这个问题,也许您甚至不必阅读其余部分,但是我在网上找不到任何答案(经过数小时的研究),除了著名的“它已集成到操作系统中”或类似的东西。


我的问题详细:

我在使用 OpenGL 编译 .c 文件时遇到问题。我已经浏览了几个小时的网页,但没有找到任何解决方案。这是问题所在:

对于那些知道这个软件的人,我正在使用 Webots(一个机器人模拟软件),我想实现一个物理插件。我从一个已经存在的(和工作的)插件中复制了代码,只是为了尝试一下。我正在使用使用 gcc 的 webbots 进行编译(我必须安装 gcc 编译器,因为它不再随 Xcode 提供)。

现在,问题是 .c 文件包含一个“physics.h”标头,其中包含 OpenGL/gl.h 文件,然后我得到错误:“OpenGL/gl.h。没有这样的文件或目录”。

现在我尝试了很多事情:

  • 搜索 gl.h :它似乎不存在(我无法找到它,无论是手动还是使用 finder 搜索功能)

  • 用 GLUT/glut.h 替换包含 OpenGL/gl.h :我收到错误“gl.h 和 glu.h 没有这样的文件或目录”,因为它们包含在 glut.h

  • 链接makefile中的gl库和框架

  • 可能是这些的所有组合,使用绝对或相对路径!

由于 OpenGL 和 GLUT 应该与 OS 一起本地安装(我正在使用 Lion 10.7.5),我想每个需要的文件都应该在那里。为此,我找不到下载这个据称丢失的文件的方法......

此外,我的一位同事尝试并成功在 linux 上编译它!Linux 是一个很棒的平台,但我仍然喜欢我的 mac,所以请让我希望有另一种解决方案,而不是为 linux 更改!!!

我认为我的问题出在 Makefile 或 physic.h 文件中,所以它们是:

Physic.h

生成文件:

PS:在“my_contact_p_physics.c”(我正在努力编译的 .c 文件)中,我只包含一个 ODE/ode.h 文件和带有绝对路径的physics.h 文件。由于“集成”到 webbots 中的 ODE,我无法在终端中直接编译,这也是我直接在 webbots 中编译的原因。

0 投票
1 回答
962 浏览

matlab - 连接 webbots 和 MATLAB

我想连接 Cyber​​robotics Webots 软件和 MATLAB。在 Webots 中,我选择了“机器人竞赛”并打开了存在于 webbot 中的世界“nao_matlab”,当我在控制台中编译并运行此消息时显示:

什么问题?

0 投票
1 回答
743 浏览

java - 如何在 Webots 中显示图形?

我已经实现了适用于 Webots 模拟 e-puck(PRO 7.0.3,OS X)的遗传算法(Java)。我现在要做的是显示一个图表,该图表将显示健身得分如何随时间变化。

我一直在尝试使用 JFreeChart,但不幸的是,不允许从 Webots 模拟中显示新框架。

我一直在研究使用显示节点手动生成图形,但这非常繁琐且有限。

你知道其他方法吗?或者也许是强制 Webots 允许 JFrames 的方法?

0 投票
0 回答
223 浏览

c++ - 使用 system() 启动程序时缓冲区溢出

我目前正在使用 UNIX 套接字在我的 C++ 程序和 Webots(机器人模拟器)之间进行通信。但是,我注意到过了一段时间(1~2 小时)后,Webots 意外关闭,没有任何明显的原因(或者我还没有发现),这是我在做什么的螺丝C++程序,因为我需要不断地发送和接收数据包。

因此,为了安全起见,我在我的代码上实现了一些Webots-checker,使用system()and pidof()

它只是检查是否有任何名为 的进程,webots-bin如果找不到则重新启动该程序。但是,当这应该起作用时(几个小时后,当 Webots 关闭时),我得到一个缓冲区溢出错误:

使用system()从程序中启动和关闭 Webots 是可行的,但目前似乎失败了,可能是因为关闭了 Webots 的方式?

编辑:分叉程序并用于启动Webots时会发生同样的事情execlp,但如果我定期关闭并重新打开则不会。从回溯(我已经添加)中,我认为问题出在 Webots 二进制文件中,但据我所知。有没有办法防止这种缓冲区溢出?

0 投票
2 回答
1000 浏览

java - 在 webbots 上使用航路点实现最短路径算法的可能性

我目前正在做一个项目,使用 Webots 来创建一个 3d 模拟世界 - 一个集装箱码头堆场,多个机器人(AGV)到达指定目的地以装载/卸载集装箱。

以下是我过去几周所做的一瞥。

http://www.youtube.com/watch?v=Rt6NlGP9wpA

您看到的圆形气泡充当向 AGV 发送方向的无线范围。

在最短路径算法(如 Dijkstra 或 A* 算法)上看到一些类似的线程,我很确定它可以完成,但我希望是否有人可以提供一些见解是否可能?以及首选使用哪种算法?

谢谢并恭祝安康

0 投票
1 回答
304 浏览

connector - 在 webbots 中使用连接器

我想模拟一个机器人抓取一个盒子并运输它的环境。机器人必须从它想要的任何位置抓取盒子,但使用抓取器是不可能的,所以我想也许我可以使用机器人上的连接器和盒子上的另一个连接器,并将它的长度和宽度设置得足够大,并将连接角度设置为 180 度以让机器人随心所欲地抓住它。我将盒子定义为机器人节点以在其上放置连接器,但是当机器人足够接近时,机器人不会连接到盒子。我想也许这样的事情是不可能的,是吗?机器人可以用连接器接盒子吗?谢谢。

0 投票
2 回答
873 浏览

c - 移动机器人(e-puck)编程(c语言)

我正在对我的差动驱动移动机器人(e-puck)进行编程,以移动到具有特定方向的某个坐标。机器人到达坐标没有问题,但是当它到达坐标时,它无法确定特定的方向并保持“旋转”在现场寻找方向,有没有人有这方面的经验?我在这个问题上停留了很长时间,真的希望有人知道为什么。代码的相关部分粘贴在下面。

0 投票
1 回答
116 浏览

matlab - e-puck_matlab 程序运行不停

我使用了在 Matlab 代码中使用 braitenberg 避障的 e-puck 机器人,程序运行不停,我尝试将计数器设置为:

在程序结束时,我制作了一个程序保存,如下所示:

存储数据,可用于人工神经网络训练,但e-puck仍长时间移动;那么,我实际上能做什么?