我正在使用g++在ros工作空间之外使用ros,我想包括我制作的自定义msg。通常我只会做"#include "msg_filter/my_msg.h"“,但这在环境之外似乎不起作用。我应该怎么做呢?
发布于 2020-05-27 05:31:23
让我们进入正在发生的事情的低级。如果您有一个catkin_ws/src/my_pkg/msg/CustomMessage.msg,并且正确地编译了它(您可以在ROS中正常使用它),您会在catkin_ws/devel/include/my_pkg/CustomMessage.h中找到它的头文件,在catkin_ws/devel/lib/python2.7/dist-packages/my_pkg/msg/_MyMsg.py中找到一个python msg文件。如果您在cmd行或您的.bashrc中安装了source catkin_ws/devel/setup.bash,您仍然可以在另一个工作区中看到它们。
但是试图在catkin buildsystem之外编译和利用ROS msgs可能是不明智的-在这一点上,在一个公共的头文件中创建自己的数据结构要容易得多,并将其用于库或程序之间的接口(只是猜测你的用例)。根据记录,虽然您可以使用g++在cmd行上编译与ROS相关的内容(其余的头/库在/opt/ros/<distro>/中),但我怀疑这将比更改依赖项/接口或在catkin中进行更快地痛苦。
发布于 2021-01-21 00:38:16
一种非常肮脏的方法是对IP流量进行陷阱。
https://stackoverflow.com/questions/62026639
复制相似问题