我很好image_transport
地包含在我的CMake
文件和packake.xml
. 我在 ubuntu 16 上使用 ROS Kineltic,尽管我在 ubuntu 14 上使用 ros indigo 和玉石遇到了同样的问题。
我的 CMake 文件如下:
find_package(catkin REQUIRED COMPONENTS
cv_bridge
image_transport
roscpp
rospy
std_msgs
message_generation
genmsg
)
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package(
CATKIN_DEPENDS cv_bridge image_transport roscpp rospy std_msgs message_generation
)
include_directories(
${catkin_INCLUDE_DIRS}
)
....
虽然我package.xml
是
<buildtool_depend>catkin</buildtool_depend>
<build_depend>cv_bridge</build_depend>
<build_depend>image_transport</build_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>message_generation</build_depend>
<run_depend>cv_bridge</run_depend>
<run_depend>image_transport</run_depend>
<run_depend>roscpp</run_depend>
<run_depend>rospy</run_depend>
<run_depend>std_msgs</run_depend>
<run_depend>message_runtime</run_depend>
<run_depend>message_generation</run_depend>
<run_depend>image_transport</run_depend>
在我的 .cpp 文件中
#include <ros/ros.h>
#include <image_transport/image_transport.h>
.....
int main(int argc, char **argv)
{
ros::init(argc, argv, "imagegraber");
ros::NodeHandle nodea;
image_transport::ImageTransport it(nodea);
image_transport::Subscriber sub = it.subscribe("/pg_15508342/image_raw", 1, imageCallback);
ros::spin();
return 0;
}
然而,Segmentation fault (core dumped)
当我运行我的代码时,我收到了......可能是什么问题?代码在image_transport::ImageTransport it(nodea);
请注意,我能够使用命令行运行 image_transport: rosrun image_transport republish raw in:=/pg_15508342/image_raw raw out:=/newim
。也能跑image_view