- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 Webots 中使用 Pioneer 3AT 模拟一个巡线器。这是我涉及群体机器人的应用程序的第一步。我已经放置了相机。但是,我无法在模拟显示中(实时)显示使用 OpenCV 处理的图像。目前,我计划使用 https://www.cyberbotics.com/doc/reference/display 中提到的显示节点对车道进行阈值显示。 .
但是,我无法启动和运行它。问题是如何在 webots 显示中显示处理后的 numpy 图像数组?
我目前拥有的代码:
camera = Camera("camera")
camera.enable(TIME_STEP);
display = Display("display")
while (robot.step(timestep) != -1):
cameraData = camera.getImage();
image = np.frombuffer(cameraData, np.uint8).reshape((camera.getHeight(), camera.getWidth(), 4))
现在,如何在 display
中显示 image
?我尝试了 imageNew
、imagePaste
等。但是,我通过 SWIG 收到了大量 C/C++ 错误,而且我也找不到任何相关示例。 (Webots 模拟器只有一个使用 display city.wbt 和使用静态图像的示例。我不确定是否可以使用。但是,该示例的摘要代码在 C 中,如下所示。)
// speedometer
WbDeviceTag display;
int display_width = 0;
int display_height = 0;
WbImageRef speedometer_image = NULL;
// initialize display (speedometer)
if (enable_display) {
display = wb_robot_get_device("display");
speedometer_image = wb_display_image_load(display, "speedometer.png");
}
// display background
wb_display_image_paste(display, speedometer_image, 0, 0, false);
P.S.:我已经为此花费了 4 个多小时,但我找不到任何解决方案。 Qt 上似乎有类似的问题(我没有使用 Qt)。但是,这个问题没有得到回答:Ploting an image with 'imshow' of opencv in webots .非常感谢任何帮助,因为我计划开源我的整个项目。
编辑 1: 我根据 following note for Java 尝试了以下操作.但是,我得到一个空白的显示屏。经过 10 小时的努力,没有运气。
Note [Java]: The
Display.imageNew
function can display the image returned by theCamera.getImage
function directly if the pixel format argument is set to ARGB.
display.imageNew(cameraData, display.ARGB, camera.getHeight(), camera.getWidth())
最佳答案
我找到了一种“官方方式”来启动和运行它。但是,我不喜欢这个解决方案,因为它没有直接集成到模拟器中(并且使用这种方法时模拟变得太慢了)。现在,我接受这个答案。但是,我会接受巧妙地集成到 Webots 中的任何其他答案。
cv2.startWindowThread()
cv2.namedWindow("preview")
while (robot.step(timestep) != -1):
cv2.imshow("preview", image)
cv2.waitKey(TIME_STEP)
关于python - Webots 显示处理过的 numpy 图像(OpenCV Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58286019/
我想知道车辆的对象在 WeBot 中是如何建模的及其动力学方程。我知道可以使用两种类型的控制:使用巡航速度,目标最终速度但加速度恒定(与 PROTO 文件中的 time0to100 值成比例),并使用
是否有可能以编程方式计算 Webots 模拟步骤,即每次一个模块完成其规划时,Webots 应该根据模块的输出计算下一个模拟步骤。 我已经检查了主管模式,但除了设置模拟模式外,它似乎无法控制模拟运行。
是否有可能以编程方式计算 Webots 模拟步骤,即每次一个模块完成其规划时,Webots 应该根据模块的输出计算下一个模拟步骤。 我已经检查了主管模式,但除了设置模拟模式外,它似乎无法控制模拟运行。
我刚开始使用 webots 并面临以下问题: Webots 全局坐标系将其 y 轴定义为向上显示(具有负 y 分量的重力矢量)。但是,我想围绕 z 轴向上显示的坐标系构建一个世界。 是否有可能在全局范
我在 Webots 模拟器和机器人技术方面都是新手。我正在使用新的开源版本的 webots。我相信它与旧版本的网络机器人不兼容。我测试了 GitHub 上可用的一些旧程序。那是行不通的。在某些程序中,
我有一个由 Webots 中的 ROS(python)远程控制的机器人(它使用 ros_automobile Controller )。我现在想做的就是在我的 python 代码中远程创建(渲染)对象
在尝试弄清楚如何集成健身房界面时,我正在尝试从控制台运行外部机器人Python Controller 。我已经关注官方guide并相应地设置我的 (macOS) 环境变量。 当我尝试通过键入以下内容来
是否有一种交互式、命令式的方式来使用 Python 来操作 Webots 模拟,而不是使用 Controller 脚本?例如。您与 OpenAI Gym 交互的方式。谢谢! 最佳答案 不,Webots
我用的是新版webots R2019a。第一步它工作正常,但是当我重新加载世界时问题仍然存在;世界的界面变成了白色。 我的操作系统是 win 10,我的显卡:AMD Radeon HD 8750M。
我正在 Visual Studio 中用 C++ 为 Webots 编写程序。我正在尝试从 Webots 软件交叉编译到 e-puck1,但据我所知,由于我在 VS 中,因此没有这样做所需的 make
我正在尝试创建一个 Webots 模拟,当 Kinect 摄像头检测到一个人时,我希望我的机器人能够说话。 我有一个连接到 USB 端口的 Kinect V2,它可以通过使用 PyKinect2 和
我在两个物体(一个球体和一个盒子)之间有一个铰接点。我想知道当球体用旋转电机围绕盒子旋转时如何避免球体进入盒子内部。 这是沿 x 轴旋转时球体进入盒子内部的快照: 两个物体都有物理特性,并且都在机器人
我正在尝试从我正在编写的一些 C++ 代码中启动 Webots,但遇到了一些问题。我运行的 Webots 版本是 7.4.3(由于一些不相关的原因我当时无法更新到 8.1.0),它在解释命令行参数时有
我是 webots R2109b 的新用户。我写了一个代码来运行 youbot 但我无法运行 Controller python 文件。即使我重新加载我的世界文件,它也不会编译我的 Controlle
是否可以从外部 Python IDE(如 pyCharm)控制 Webots?如果有一个示例说明如何执行此操作以及要添加的模块的位置,我将不胜感激。谢谢 最佳答案 是的,有一些关于如何在 PyChar
我刚刚开始使用 Webots,我想在一个项目中包含 OpenCV。我读到为了做到这一点,我应该修改我的 Controller 的makefile。所以,我做了一个简单的 Controller ,机器人
今天我仔细研究了作为默认 ROS Controller 一部分的“RosInertialUnit.cpp”文件中使用的四元数计算。 我想使用“keyboard_teleop.wbt”世界试用 Inte
这里的社区很小,但希望有人能看到。我正在尝试为电子冰球做 Webots 模拟的纯 C++ 实现。 C++ 文档非常缺乏,我似乎无法找到解决此问题的方法(C 实现非常出色,但所有函数调用都针对 C++
我有来自 webots lidar.wbt 的这段代码。我需要为另一个项目使用 opengl 绘制一些激光雷达数据。 #include #include #include #include #
我正在尝试在 Webots 中使用 Pioneer 3AT 模拟一个巡线器。这是我涉及群体机器人的应用程序的第一步。我已经放置了相机。但是,我无法在模拟显示中(实时)显示使用 OpenCV 处理的图像
我是一名优秀的程序员,十分优秀!