问题标签 [ros]

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 回答
955 浏览

c++ - 使用 boost::bind (C++) 通过相同的 (ROS) 回调写入向量

我正在使用 ROS 主题来从模拟器中获取一些图像流。想法如下:我有“n”个视觉传感器,我想声明 n 个订阅者(通过一个 for 循环)读取 n 个不同的主题并调用相同的回调:将整数传递给 cb 我将能够填充图像向量(每个图像都接收到不同的主题)。

这是我的代码:

显然:“无效参数”在 //ERROR

有人可以帮我吗?...我认为这与 boost::bind 功能有关,谢谢

0 投票
1 回答
541 浏览

multithreading - 使用 ROS 节点中的 SIGNAL-SLOT 在 QLabel 中未显示/更新图像

我正在 ROS 节点中实现 Qt 代码。我有一个头文件,其中定义了所有成员 Q_SIGNAL 和 Q_SLOTS。在我的 .cpp 文件中,我想在按下按钮(assignButton)时显示图像。但是当我按下按钮时,什么也没有出现。

为了测试连接功能是否正常工作,我尝试在存储在我的笔记本电脑中的 imageLabel 中显示图像......它工作正常。

问题:-我正在通过 ROS 从模拟器中获取图像 void SelectionInterface::imageCallback(const sensor_msgs::ImageConstPtr& msg) ,我想通过 SIGNAL-SLOT 在 imageLabel 中显示这些图像..但它没有显示..没有错误

我的代码如下: -

1.头文件--SelectionInterface.h

2..cpp文件

0 投票
2 回答
14439 浏览

c++ - 取消订阅主题并订阅新的运行时 (C++) (ROS)

我正在使用 ROS 节点(C++ 代码)执行一些图像处理,读取来自模拟器中不同视觉传感器的图像。我有一个大问题,到目前为止,没有解决方案......

假设我的节点处于活动状态并且正在对从主题“A”获取的图像执行一些操作;在某个点(所以在运行时)我需要取消订阅这个主题“A”并订阅另一个主题“B”(这个主题的名称“B”由另一个订阅者传达给节点)以读取图像另一个视觉传感器:我想这样做只是更改主题名称(例如使用字符串变量)并使用用于主题“A”的相同回调。

困难如下:

  • 我无法读取所有图像并选择我需要的图像:传感器太多,无法处理这样的数据流,此外,该系统根本不可扩展。

  • 我需要在一个“生命”足够长的范围内声明这个新订阅者,以便从主题中读取(我认为,这就是为什么订阅者在主范围中定义的原因,在此之前)但是,在同时,在一个让我有可能更新主题的范围内(所以是一种循环,而不是只执行一次的 while 之前的部分)。

请帮助我...我真的不知道该怎么做

0 投票
1 回答
368 浏览

compiler-errors - Cmake 目录错误

我正在尝试开发自治实验室的 AR 无人机 ROS 包。当我运行时,catkin_make我收到此错误:

我已经搜索了这两个文件,但找不到它们。我在哪里可以找到它们或下载它们?谢谢!

0 投票
1 回答
1456 浏览

c++ - 编译器错误消息错误:在 '*' 标记之前应为 ')'。我的构造函数出错

我不断收到以下编译器错误

在 /home/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/src/BasicControllerState.cpp:1:0: /home/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/ 的文件中state_machine_planner/include/state_machine_planner/BasicControllerState.h:38:49: 错误: '*' 标记之前的预期')'
/home/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/src/BasicControllerState.cpp:4:44:错误:预期的构造函数、析构函数或类型转换之前的“(”标记在来自/home的文件中/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/include/state_machine_planner/StateMachinePlanner.h:16:0,来自/home/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/src /ControllerNode.cpp:4: /home/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/include/state_machine_planner/BasicControllerState.h:38:49: 错误: '<em>'之前的预期')'令牌制作[3]: [CMakeFiles/state_machine_planner.dir/src/BasicControllerState.cpp.o] 错误 1 ​​make[3]: * Waiting for unfinished jobs.... 在 /home/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/ 包含的文件中smart_wheelchair/state_machine_planner/include/state_machine_planner/StateMachinePlanner.h:16:0,来自/home/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/src/StateMachinePlanner.cpp:1:/home/armon/Development /groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/include/state_machine_planner/BasicControllerState.h:38:49: 错误:在'*'标记之前预期')'
/home/armon/Development/groovy_workspace/sandbox/smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/src/StateMachinePlanner.cpp:在构造函数'state_machine_planner::StateMachinePlanner::StateMachinePlanner()'中:
/home/armon/Development/groovy_workspace/sandbox/ smart_wheelchair/trunk/smart_wheelchair/state_machine_planner/src/StateMachinePlanner.cpp:9:30:错误:不匹配调用'(state_machine_planner::BasicControllerState) (costmap_2d::Costmap2DROS*&)'</p>

BasicControllerState 是 StateMachinePlanner 的成员

这是代码,

BasicControllerState.h(相关部分):

基本控制器状态.cpp:

StateMachinePlanner.h:

StateMachinePlanner.cpp(我在其中实例化它):

原谅我,我知道这可能看起来微不足道,但我希望能找到一些 c++ 向导来拯救我。在这一问题上花费了太长时间。

0 投票
1 回答
1238 浏览

pip - 错误 [Errno 89] 执行命令 python setup.py egg_info 时未实现功能

2013 年 6 月 25 日更新)我在尝试使用 安装不同的软件包时看到相同的错误pip,这表明该软件包可能与该问题无关。


QNX在运行时看到以下错误pip

我第一次运行此命令时,未安装依赖的组件,例如argparse,和,发生了同样的错误,但是在检查这些必需组件的部分。现在我已经一一安装了它们,它似乎发生在我自己安装的 pkg 上(即。)。docutilspython-dateutilsixcatkin_pkg

在 python 的控制台上,os.fork()我假设原因的来源,行为不同。因此,我什至不确定错误是否发生在os.fork()

我怎样才能避免这个错误?谢谢!

使用QNX6.5.0 SDP SP1,pip版本为 1.3(它的来源在 github 上),也是catkin_pkg 的来源

0 投票
1 回答
1037 浏览

opencv - 无法在 ROS Groovy 中使用 OpenCV 依赖项创建包

我想遵循http://ros.org/wiki/image_transport/Tutorials中提供的教程,但我收到以下错误消息:

我在 Ubuntu 12.10 中使用 ROS Groovy。我是 ROS 新手,因此我们将不胜感激。

0 投票
1 回答
1311 浏览

c++ - 正确类型转换字节以写入 C++ 中的串行句柄

背景

我正在将 Arduino 代码移植到 C++ 中,并且在将数据作为无符号字符发送时遇到问题。我需要发送一个 8 字节的无符号字符包,其中包括:

arduino 代码的代码编写为:

这显然在 C++ 中并不容易。

问题:

1) 如何正确类型转换以通过我的“sp->write()”函数发送 8 个字节的无符号字符?

2) 我使用什么 printf 修饰符将数据显示为 HEX 中的无符号字符字节?

代码说明

btn是一个由双精度操纵杆值组成的结构

cmd[]是一个大小为 8 的无符号字符数组

sp->write(const char * data, int length)是 fstream 写入函数的包装器。我已经包含了定义以防万一。

ROS_INFO是 printf 的包装器,用于输出到 ROS 控制台

代码

下面是写代码

0 投票
2 回答
6569 浏览

gcc - 使用 CMake 链接 .s 文件

我有我想使用的 ac 函数,但那是用Intel编译器而不是gnu C编译器编译的。我正在使用cmake构建程序。(我实际上正在使用ROS,因此rosmake但基础是cmake所以我认为它更多的是一个 cmake 问题而不是一个ROS问题)。假设用iccis构建的文件x.c并生成一个x.s文件。我想使用a()x.c文件中的函数y.cpp。在y.cpp我有:

CMakeLists.txt如果有的话,哪个有效

但是如果我构建x.cicc尝试包含该x.s文件:

它不起作用。我应该对打电话的方式进行一些改变a()y.cpp?还是有其他方法可以链接它。

0 投票
0 回答
903 浏览

opencv - 从相机图像测量盒子的大小

我目前正在用机器人抓取放置在桌子上的长方体物体(又名小纸板箱),机器人的抓手上连接着摄像头。我需要盒子的确切尺寸(误差约 1 毫米)及其在盒子上的位置。我有一些想法,但在我真正开始实施之前,我也想听听其他一些方法。

一些附加信息:

  • 盒子是有纹理的,虽然边缘通常是白色的,但它们在边缘图像中看起来不太好。

  • 我可以改变表面,放置物体,这样我就可以使用某种图案来简化分割过程,甚至可以使用电致发光箔来获得完美的边缘(在物体的边界处)。

  • 我可以主动移动手臂(具有良好(<1 mm)的里程计),以便我可以从不同位置拍摄两张图像

到目前为止我的策略:我从已知位置拍摄两张图像,这样我至少可以计算盒子的高度。然后我找到盒子的边缘(对背景进行分割)并使用边缘的交叉点来找到图像中盒子的角。连同已知的高度,我可以计算出桌子上盒子的大小和位置。在大多数情况下,角落就足够了,但有一个困难的情况:如果我直视盒子(看不到边),我只能检测到边缘图像中的四个角落。在这种情况下,我无法决定我是使用短而高的盒子还是更长的扁平盒子。

您如何看待这种方法?

或者你有完全不同的想法?抓手仍在进行中,因此我们甚至可以安装新的传感器。