问题标签 [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.
c++ - 使用 boost::bind (C++) 通过相同的 (ROS) 回调写入向量
我正在使用 ROS 主题来从模拟器中获取一些图像流。想法如下:我有“n”个视觉传感器,我想声明 n 个订阅者(通过一个 for 循环)读取 n 个不同的主题并调用相同的回调:将整数传递给 cb 我将能够填充图像向量(每个图像都接收到不同的主题)。
这是我的代码:
显然:“无效参数”在 //ERROR
有人可以帮我吗?...我认为这与 boost::bind 功能有关,谢谢
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文件
c++ - 取消订阅主题并订阅新的运行时 (C++) (ROS)
我正在使用 ROS 节点(C++ 代码)执行一些图像处理,读取来自模拟器中不同视觉传感器的图像。我有一个大问题,到目前为止,没有解决方案......
假设我的节点处于活动状态并且正在对从主题“A”获取的图像执行一些操作;在某个点(所以在运行时)我需要取消订阅这个主题“A”并订阅另一个主题“B”(这个主题的名称“B”由另一个订阅者传达给节点)以读取图像另一个视觉传感器:我想这样做只是更改主题名称(例如使用字符串变量)并使用用于主题“A”的相同回调。
困难如下:
我无法读取所有图像并选择我需要的图像:传感器太多,无法处理这样的数据流,此外,该系统根本不可扩展。
我需要在一个“生命”足够长的范围内声明这个新订阅者,以便从主题中读取(我认为,这就是为什么订阅者在主范围中定义的原因,在此之前)但是,在同时,在一个让我有可能更新主题的范围内(所以是一种循环,而不是只执行一次的 while 之前的部分)。
请帮助我...我真的不知道该怎么做
compiler-errors - Cmake 目录错误
我正在尝试开发自治实验室的 AR 无人机 ROS 包。当我运行时,catkin_make
我收到此错误:
我已经搜索了这两个文件,但找不到它们。我在哪里可以找到它们或下载它们?谢谢!
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++ 向导来拯救我。在这一问题上花费了太长时间。
pip - 错误 [Errno 89] 执行命令 python setup.py egg_info 时未实现功能
2013 年 6 月 25 日更新)我在尝试使用 安装不同的软件包时看到相同的错误pip
,这表明该软件包可能与该问题无关。
我QNX
在运行时看到以下错误pip
。
我第一次运行此命令时,未安装依赖的组件,例如argparse
,和,发生了同样的错误,但是在检查这些必需组件的部分。现在我已经一一安装了它们,它似乎发生在我自己安装的 pkg 上(即。)。docutils
python-dateutil
six
catkin_pkg
在 python 的控制台上,os.fork()
我假设原因的来源,行为不同。因此,我什至不确定错误是否发生在os.fork()
。
我怎样才能避免这个错误?谢谢!
使用QNX
6.5.0 SDP SP1,pip
版本为 1.3(它的来源在 github 上),也是catkin_pkg 的来源。
opencv - 无法在 ROS Groovy 中使用 OpenCV 依赖项创建包
我想遵循http://ros.org/wiki/image_transport/Tutorials中提供的教程,但我收到以下错误消息:
我在 Ubuntu 12.10 中使用 ROS Groovy。我是 ROS 新手,因此我们将不胜感激。
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 控制台
代码
下面是写代码
gcc - 使用 CMake 链接 .s 文件
我有我想使用的 ac 函数,但那是用Intel
编译器而不是gnu
C
编译器编译的。我正在使用cmake
构建程序。(我实际上正在使用ROS
,因此rosmake
但基础是cmake
所以我认为它更多的是一个 cmake 问题而不是一个ROS
问题)。假设用icc
is构建的文件x.c
并生成一个x.s
文件。我想使用a()
我x.c
文件中的函数y.cpp
。在y.cpp
我有:
CMakeLists.txt
如果有的话,哪个有效
但是如果我构建x.c
并icc
尝试包含该x.s
文件:
它不起作用。我应该对打电话的方式进行一些改变a()
吗y.cpp
?还是有其他方法可以链接它。
opencv - 从相机图像测量盒子的大小
我目前正在用机器人抓取放置在桌子上的长方体物体(又名小纸板箱),机器人的抓手上连接着摄像头。我需要盒子的确切尺寸(误差约 1 毫米)及其在盒子上的位置。我有一些想法,但在我真正开始实施之前,我也想听听其他一些方法。
一些附加信息:
盒子是有纹理的,虽然边缘通常是白色的,但它们在边缘图像中看起来不太好。
我可以改变表面,放置物体,这样我就可以使用某种图案来简化分割过程,甚至可以使用电致发光箔来获得完美的边缘(在物体的边界处)。
我可以主动移动手臂(具有良好(<1 mm)的里程计),以便我可以从不同位置拍摄两张图像
到目前为止我的策略:我从已知位置拍摄两张图像,这样我至少可以计算盒子的高度。然后我找到盒子的边缘(对背景进行分割)并使用边缘的交叉点来找到图像中盒子的角。连同已知的高度,我可以计算出桌子上盒子的大小和位置。在大多数情况下,角落就足够了,但有一个困难的情况:如果我直视盒子(看不到边),我只能检测到边缘图像中的四个角落。在这种情况下,我无法决定我是使用短而高的盒子还是更长的扁平盒子。
您如何看待这种方法?
或者你有完全不同的想法?抓手仍在进行中,因此我们甚至可以安装新的传感器。