问题标签 [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 投票
1 回答
898 浏览

matlab - 神经网络会无法学习函数吗?以及如何为模式识别选择更好的特征描述符?

我正在研究 webbots,这是一个用于建模、编程和模拟移动机器人的环境。基本上我有一个带有 VGA 摄像头的小型机器人,它在小型乐高迷宫的白墙上寻找简单的蓝色图案并相应地移动

我这里使用的方法是​</p>

  • 从 webbots 获取图案的图像并将其保存在 PC 中的某个位置。
  • ​​​检测蓝色图案,形成一个包围图案的正方形,图案的至少2条边缘是正方形边界的一部分。
  • ​将其调整为 7x7 矩阵(使用最近邻插值算法)

  • 网络的输入只不过是每个 7x7 图像的红色像素强度(当我通过红色滤镜查看蓝色像素时,它看起来是黑色的)。提取每个像素的强度,然后将 7x7 矩阵转换为一维向量,即 1x49,这是我对神经网络的输入。(我选择这个特征作为我的输入,因为使用 C 和 webbots 访问这些信息“相对”不那么困难。​​​)

我使用 MATLAB 进行这种离线训练方法,并使用较慢的学习率(0.06)来确保参数收敛,并在大型和小型数据集(分别为 1189 和 346)上进行了测试。在我尝试过的无数次中,网络无法对模式进行分类。(它说模式属于所有 4 类!!!!!!)。该程序没有任何问题,因为我在 matlab 的 simpleclass_dataset 上对其进行了测试,并且几乎可以完美运行

神经网络是否有可能因为数据真的很差而无法学习到函数?(通过糟糕的数据,我的意思是对应于一个类的一个样本的数据点非常接近属于另一个类的另一个样本或类似的东西)。或者神经网络会因为非常差的特征描述符而失败?

任何人都可以建议一种更简单的方法来从图像中提取特征(我现在正在转向 MATLAB,因为我现在只关心 webbots 中的模拟而不是真正的机器人)。我可以选择哪些功能?图案非常简单(L,倒 L 及其反射版本是 4 种图案)

0 投票
1 回答
137 浏览

webots - 如何在 Webots 6.4.1 Pro 中获得 Khepera 差速器的真实位置?

是否可以添加 GPS 节点?这似乎是最简单的答案。

我在创建主管方面也取得了一些进展,但是我怎样才能让主管控制器和差速轮控制器同时运行呢?

为了追踪它的路径,我需要每隔几秒钟获得一次真实的位置。

0 投票
1 回答
1850 浏览

position - 如何编程将机器人(e-puck)移动到特定位置?

我是编程界的新手,尤其是 webbots。你们有什么想法/教程可以将 e-puck 机器人移动到 webbots 中的特定位置吗?在我的情况下,我试图将 e-puck 机器人移动到起始位置,当机器人完成执行墙壁跟随行为时,它将停止在与起始位置相同的位置。我正在寻找解决问题的想法/教程,但最后,我被卡住了。谁能帮我?

谢谢你。

0 投票
0 回答
227 浏览

c++ - execlp 执行后挂起

我在我的 cpp 程序中调用了一个外部二进制文件( Webots Simulatorfork() ),方法是调用and execlp(),它接受一个作为特定文件路径的参数。当文件的路径有效并且文件存在时没有问题,但是,当我将其指向无效文件时,我得到了预期Could not open file: 'file.wbt' 的但子进程没有退出。我虽然这可能是由于 Webot 的内部代码以及它如何处理此类错误,但是,如果我调用webots file.wbt系统的 bash shell 会引发相同的错误,但进程会按原样结束

我的程序的可编译部分:

只要二进制文件存在(安装了 webots),execlp 之后的代码行自然不会执行,因为 webots 替换了子进程。但是,在出现错误后Could not open (...)我没有得到任何输出stdout,程序挂起,并且我让进程webots在后台运行。

我到底做错了什么/如何找到解决方法或解决方案?

0 投票
1 回答
889 浏览

c++ - 通用 Makefile 中所需的预构建规则

我正在通过 makefile 为 Webots(机器人模拟器)编译 C++ 代码,并且我正在使用通用的 makefile Makefile.includeWebots 提供来简化该过程。

我通过自己的 makefile 构建,设置了一堆必需的变量,然后调用那个为编译设置所有必要规则的 makefile。无论如何,它应该是这样工作的。

我收到以下错误:

并查看相关行(来自Makefile.include):

我不确定在调用 and 时是否没有语法错误makepre-build或者post-build如果USER_PREBUILDandUSER_POSTBUILD应该是具体文件,但即使将它们替换为$(USER_PREBUILD)I get *** No targets specified and no makefile found。所以我假设我需要在调用外部makefile之前设置这些变量,但是如果我在构建之前没有任何事情要做,那么语法到底是什么?

奇怪的是,即使有这些错误,程序仍然编译(我得到了文件夹中的 *.o、*.d 和二进制build文件),但它从不将二进制文件复制到目标文件夹。

0 投票
1 回答
132 浏览

python - 从 C 生成 Python 脚本时出现 graphviz 问题

我正在为 Python 使用graphviz库。

当我从终端运行脚本时,会创建图表,但是当我使用posix_spawn从C程序启动脚本时,我收到错误消息说

“ValueError:在路径中找不到程序点”(我尝试了所有选项:'neato'、'dot'、'twopi'、'circo'、'fdp'、'nop')。

我的 Python 脚本使用#!/usr/local/bin/python位置。我尝试明确使用此路径并尝试了相同的顺序:

它奏效了

我不知道为什么在使用 posix_spawn 调用脚本后,graphviz 库无法再找到路径。

编辑:

将点路径添加到:bash_profile、bash_rc 和 etc/paths 后,当我尝试从 Python 脚本和 C 程序打印路径时,我得到 /usr/bin:/bin:/usr/sbin:/sbin,而我的 echot $ PATH 有很多行。

还尝试从 Python 附加 PATHsys.path.append('/opt/local/bin/dot')

PS 我使用 Webots 作为我的 IDE

0 投票
1 回答
250 浏览

c - 与 GHC 连接

我正在关注这个简短的教程

并尝试使用 GHC(Glasgow Haskell 编译器,版本 7.10.1)使用以下命令编译Webots应用程序(用 C 编写):

并在链接阶段出现以下错误:

我相信这意味着编译器无法找到函数('符号'),尽管它设法通过编译过程解析程序中使用 -I 路径指定的所有包含

0 投票
1 回答
118 浏览

c++ - 逆向工程 OSX 用户诊断报告堆栈跟踪

我想找出用 C/C++ 编写的应用程序到底在哪里失败。我无法直接调试应用程序,既不使用 gdb / lldb 也不使用 IDE,因为该应用程序是由程序启动的(它是 webots 机器人模拟软件的机器人控制器)。在 OSX 控制台中,我可以找到一个“用户诊断报告”,它甚至会在崩溃时显示轨迹跟踪。我只需要找出崩溃发生在我的源代码中的确切位置,但我不理解以下堆栈跟踪语法:

显然,+4839在我的int main() {}函数中某处()最终调用了某些东西strtol_l(必须是间接的,因为在控制器代码中没有出现此函数调用),这会导致崩溃。

代表什么+ 4839?它是内存块偏移量吗?它不能是源代码行号,因为控制器的源代码只有约 1200 行,并且控制器未使用调试信息编译。

0 投票
0 回答
398 浏览

c++ - 交叉编译一个 Webots 控制器

我正在尝试使用 MinGW 从 Linux 交叉编译到 Windows 的机器人控制器(.exe),用于 Webots(模拟软件)。

Webots 提供Makefile.include所有平台通用的文件,为编译准备构建环境(必要的依赖项):

我当前的makefile,我根据MinGW和我的webbots安装设置了几个变量:

另外,我已经在我的 Windows 机器上安装了 Webots,并将安装文件夹复制到我的 Linux 机器上的安装文件夹中,这样我就可以访问预编译的 Windows 库。

问题是当链接器试图找到几个库(-lController-lCppController,它们附加在里面Makefile.include)时:

从我收集到的信息来看,这个问题通常是在尝试将 32 位库链接到 64 位二进制文​​件时引起的(反之亦然),但我的 makefile-m32或. 我的操作系统都是 64 位的,所以我认为库的类型应该没有任何问题。-m64Makefile.include

我尝试过使用 Webots 的本机 linux 安装文件夹,但我遇到了类似的问题:

这很奇怪,因为libController.solibCppController.so都在里面/usr/share/webots/lib/

那么我到底错过了什么?

0 投票
0 回答
414 浏览

python - 在 Webots 模拟器中导入 numpy 会耗尽环境变量

我尝试在模拟器Webots(7.0.3)中导入numpy ,直到主管恢复模拟几次才成功使用。它出来这些错误信息:

revert 函数是监督机器人的原始函数,可以在 Webots 模拟器中调用:

任何机构都可以帮我解决这个问题吗?谢谢!