" 你的人生 只有你才是主角 没关系 你可以的 一定会很顺利的。"
2018年12月5日
北平
ROS版本:ROS Kinetic Kame(2016)ROS与ubuntu版本的更新是保持同步的~
记录下详细的流程:
1.建立工作区catkin_ws/src
mkdir -p catkin_ws/src
2. 进入目录
cd catkin_ws/src
3.建立一个名为test的程序包,并设置依赖当前已存在的包roscpp
catkin_create_pkg test roscpp
4.进入程序包
cd test/src
5.新建main.cpp
subl main.cpp
注:此处涉及到选用OpenCV版本的问题;因为ROS-Kinetic完全安装中本身自带了Opencv3.3.1,因此在ROS中可以直接用ROS自带的Opencv3.3.1,但也可以使用自己Ubuntu中安装的Opencv2.4.9,都是可以的,一会介绍方法。
参考这3个博客 :❶https://blog.csdn.net/u010284636/article/details/80071786
❷https://blog.csdn.net/bigdog_1027/article/details/79092263
❸https://blog.csdn.net/chengde6896383/article/details/82423189
/*选用ROS自带的OpenCV 3.3.1*/
#include <iostream>
#include <stdio.h>
#include <opencv-3.3.1-dev/opencv2/core.hpp>
#include <opencv-3.3.1-dev/opencv/highgui.h>
#include <opencv-3.3.1-dev/opencv2/opencv.hpp>
using namespace cv;
int main()
/*
argc为运行时输入的参数数量,输入一个参数时为2,
argv为,argv[0]指向输入的程序路径及名称:/home/myname/Pictures/test.jpg
argv[1]指向第一个参数字符串,即图片
*/
{
Mat image;
image = imread("/home/zxkj/catkin_ws/src/test/src/test.jpg",1);
if (image.empty())
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
6.修改test程序包内的CMakeList.txt
cmake_minimum_required(VERSION 2.8.3)
project(test)
set(OpenCV_DIR /opt/ros/kinetic/share/OpenCV-3.3.1-dev)
find_package(catkin REQUIRED COMPONENTS
roscpp
OpenCV
)
include_directories(
include
${catkin_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)
catkin_package(
)
add_executable(main src/main.cpp)
target_link_libraries(main
${catkin_LIBRARIES}
${OpenCV_LIBRARIES}
)
7. cd ..
8. catkin_make
9. 更新/设置环境变量
source devel/setup.bash
10.运行可执行程序
rosrun test main
好嘞,就这样~
我们依然年轻: