ROS下入门编程C++(使用OpenCV)

" 你的人生 只有你才是主角 没关系 你可以的 一定会很顺利的。"

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

好嘞,就这样~

我们依然年轻:

猜你喜欢

转载自blog.csdn.net/m0_38087936/article/details/84840830