ROS下入門程式設計C++(使用OpenCV)
阿新 • • 發佈:2018-12-29
" 你的人生 只有你才是主角 沒關係 你可以的 一定會很順利的。"
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/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
好嘞,就這樣~
我們依然年輕: