반응형

OpenCV 홈페이지의 Release 부분에서 OpenCV 4.1.0 을 다운받아준다.

(Window에서 설치할 것이므로 Window로 받아주도록 한다.)

 

다운받은 파일을 실행시키면 압축을 풀도록 되어있는데 간단하게 c드라이브에 바로 풀어줄 수 있도록 한다.

그럼 C드라이브에 opencv라는 이름의 디렉토리(파일)이 생성되었음을 확인할 수 있다.

 

 

* Visual 에서 설정

1) 비주얼스튜디오를 실행시킨 후 빈프로젝트를 만들어주고 소스파일에 cpp파일을 만들어준다.

프로젝트의 속성 -> C/C++ 탭의 "추가 포함 디렉토리" 에 방금 설치된 opencv 파일의 경로에서 build\include 폴더를 추가해준다.

이 때 헤더를 조금 더 편하게 선언해주기 위해서는 opencv2 폴더도 같이 추가해주도록 한다.

 

2) 링커 탭의 추가 라이브러리 디렉터리 에서 opencv 폴더의 build\x64\vc15\lib 을 추가해준다.

3) 링커 탭의 <입력> 탭으로 이동하여 추가 종속성에 lib 폴더에 있던 라이브러리들을 추가해준다.

(opencv_world410.lib   opencv_world410d.lib 를 각각 추가해준다.)

 

설치가 완료되었으면 

위와 같이 Release 와 x64로 설정해 주도록 한다.

 

그리고

위의 코드를 입력하고 실행시켜보도록 한다.

 

나는 이를 실행시키면

이러한 오류가 뜨는 것을 확인할 수 있었는데

이는

위와 같이 프로젝트의 설정 창에서 디버깅->환경   파트에서

opencv_world410.dll 이 있는 경로를 추가해주도록 한다.

추가할 때 앞에 PATH= 을 붙여주도록 한다.

 

반응형

'OpenCV' 카테고리의 다른 글

Hough Circle / 허프변환을 통한 원 검출  (0) 2020.12.29
Hough Transform 을 이용한 직선 검출  (0) 2020.12.29
OpenCV 환경설정  (0) 2020.01.08
Linux(Ubuntu)에 openCV 설치  (0) 2019.12.26
OpenCV를 이용한 영상처리  (0) 2019.08.12
반응형

https://webnautes.tistory.com/1030

 

Ubuntu 16.04에 opencv_contrib 포함하여 OpenCV 4.0.1 설치하는 방법

OpenCV 4.0.1과 opencv_contrib(extra modules)를 컴파일하여 Ubuntu 16.04에 설치하는 방법을 다룹니다. 1. 설치된 OpenCV 제거 2. 기존 설치된 패키지 업그레이드 3. OpenCV 컴파일 전 필요한 패키지 설치 4. Op..

webnautes.tistory.com

 

위의 블로그에서

 

4. OpenCV 설정과 컴파일 및 설치

전 단계까지 끝내준다.

 

4단계부터는 opencv의 소스코드의 압축파일을 갖고와서 진행하게 되는데 이 압축파일이 어디있는건지 잘 모르겠으므로 책의 내용을 따라가자.

 

install 파일의 내용을 따라 GTK+ 2.x 부터 추가해주기로 한다.

 

$ sudo apt-get install gtk2.0

 

$ apt install pkg-config

 

$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev lib$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-devpng12-dev

 

https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/1.0/

 

OpenCV - Browse /opencv-unix/1.0 at SourceForge.net

×

sourceforge.net

위에서 opencv - 1.0.0.tar.gz 파일을 받은 후 home에 mkdir을 통해 opencv라는 디렉토리를 하나 만들어준다.

 

$ tar -xvzf opencv-1.0.0.tar.gz

(압축 풀어주는 과정)

 

다 되었으면 opencv 디렉토리 안에 만들어진 opencv-1.0.0 디렉토리로 이동하여

 

$ ./configure

$ make

$ sudo make install

$ sudo ldconfig      (I가 아니라 L)

 

 

 

 

반응형
반응형

PC에서

$ roscore  을 입력시켜주고

 

$ ssh <NAME>@192.168.xx.xxx   을 입력시켜 원격으로 접속할 수 있도록 해준다.

(이 때 Turtlebot PC의 방화벽 설정이 잘 꺼져있는지 확인해주어야한다.)

$ roslaunch turtlebot3_bringup turtlebot3_robot.launch

 

$ export TURTLEBOT3_MODEL=waffle_pi   를 통해 사용할 장비가 와플파이임을 입력시켜주고

$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_method:=gmapping

   위 문장을 통해 gmapping 방식을 통한 SLAM을 시작하면서 RVIZ창을 띄워주도록 한다.

   GMapping 방식은 레이져의 범위에 대한 데이터를 이용하여 지도를 작성하는 방법인데

   자세한 부분은 다음에 다시 올리도록 하겠다.

   gmapping 외에도 cartographer, hector, karto, frontier_exploration 등이 있다.

 

$ export TURTLEBOT3_MODEL=waffle_pi

$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

 

   여기까지 실행하면

다음과 같은 창과 함께 키도르를 이용하여 지도를 만들어 갈 수 있을 것이다.

다 만든 지도는 위와 같았고 이렇게 지도작성을 끝냈으면

 

$ rosrun map_server map_saver -f ~/map

   을  통해 작성된 지도를 저장해준다.

 

지도의 저장이 완료되었으면 SLAM이 작동되고 있는 창을 닫아준 후

 

$ export TURTLEBOT3_MODEL=waffle_pi

$ roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

   을 통해 앞에 작성된 지도를 불러와 설정을 해준다.

상단 툴바에 2D Pose Estimate 클릭

  다음으로 2D Pose Estimate를 통해 현재 로봇의 위치를 집어주고 방향또한 집어준다.

  그 다음 로봇을 움직이면서 작동시키다 보면 위의 사진에 보이듯 로봇 주변에 퍼져있는

  Point Cloud가 점차 로봇의 위치에 수렴하는 것을 확인할 수 있다.

 

  그렇게 된다면 2D Pose Estimate 옆의 2D NAV Goal  을 클릭하여 로봇의 도착지점과 방향을

  선택해 줄 수 있다.

반응형

'ROS > TURTLEBOT3' 카테고리의 다른 글

터틀봇3(TURTLEBOT3) 개발환경  (0) 2020.12.29
반응형

$ roscore

 

위의 코드를 입력하여 roscore 실행

 

$ rosrun turtlesim turtlesim_node

 

그리고 다른 창을 열어(ctrl+t)

 

$ rosrun turtlesim turtle_teleop_key

 

 

그리고 연결상태를 확인하기 위하여

 

$rqt

 

를 진행하여 주고 위의 [플러그인] 메뉴에서 [ROS Graph] 를 선택하여 준다.

그럼 아래와 같이 나오는 것을 확인할 수 있다.

반응형
반응형

우선 본인 pc에 카메라가 연결되어 있는지 확인한다.

그리고  일반 카메라는 UVC를 지원하므로 ROS의 uvc_camera 패키지를 이용한다.

아래의 코드를 이용하여 uvc_camera 패키지를 설치하여주자.

 

$ sudo apt-get install ros-kinetic-uvc-camera

 

 

그 후 roscore을 실행시켜주고 새로운 창을 띄워준다.

 

$ rosrun uvc_camera uvc_camera_node

 

$rqt

 

그 다음 'rqt' 명령어로 rqt를 구동한 후 메뉴에서 [플러그인] -> [이미지뷰] 를 선택한다.

그리고 왼쪽 위의 메시지 선택란을 /image_raw 로 선택한다.

 

위의 플러그인 선택과정을 진행하는 방법 외에도

 

$ rqt_image_view

 

를 이용할 수 있다.

반응형
반응형

Node

최소 단위의 실행 가능한 프로세서를 가리키는 용어이다.

한가지의 일을 하나의 노드라고 볼 수 있고 하나의 실행 가능한 프로그램이라고

생각할 수 있을 것 이다.

ROS에서는 최소한의 실행단위로 프로그램을 나누어 작업하게 되는데 각 노드는

메시지 통신으로 데이터를 주고 받게 된다.

 

Package

하나 이상의 노드들의 실행을 위한 정보 등을 묶어 놓은 것이다.

하나의 노드는 실질적으로 사용하기 힘들다

실행 가능한 여러개의 노드들을 묶어놓은 것으로 볼 수 있다.

 

Message

메시지를 통해 노드간의 데이터를 주고 받게 된다.

각각의 노드가 작성되어 있는데 노드1과 노드2를 연동시키기 위해 메시지통신을 사용한다.

Message는 integer, floating point, boolean 와 같은 변수 형태이다.

 

Topic

단방향, 연속성을 가진 통신용어이다.

일방적인 데이터를 계속 보낼 때 사용되며 예를들어 센서를 사용할때

센서의 데이터값을 일방적으로 계속 보내야하므로 그럴 때 사용된다.

 

Publisher

통신을 할 때 메시지를 보내는 부분을 Publisher 이라 한다.

 

Subscriber

통신을 할 때 메시지를 받는 부분을 Subscriber 이라 한다.

 

(통신은 기본적으로 1:1통신 뿐 아니라 1:N, N:1, N:N 통신 모두 가능하다)

 

 

Service

위의 Topic과는 다르게 양방향 통신이 필요할 때 사용된다.

 

Service client 는 메시지를 요청하는 부분,

Service server 은 그에 대응하여 실행, 즉 process를 실행하는 부분이다.

 

 

Master

각 실행되는 노드들을 관리하는 부분이다.

노드가 실행되게 되면 노드의 정보를 받는데

노드의 이름, Topic의 이름, 어떤 형태의 메시지를 보낼 것인지, IP정보와 포트번호 등의

정보를 받아 다른노드와의 통신을 돕는다.

 

Rosrun

rosrun을 이용하여 하나의 노드를 실행시키게 되는데

$rosrun turtlesim turtlesim_node 에서

turtlesim 은 package의 이름, turtlesim_node는 노드의 이름이다.

반응형
반응형

우선 카메라를 작동시킬 pc에서 roscore을 실행시켜 주도록 한다.

 

$ roscore

 

그리고 카메라를 사용하기 위해 아래의 코드를 입력한다.

 

$ rosrun uvc_camera uvc_camera_node

$ rqt_image_view

 

그 상태에서

 

$ gedit ~/.bashrc

 

를 입력해주고

아래에서 4번째 줄에 위치한

 

export ROS_MASTER_URI=http://*****:11311

 

부분에 카메라를 띄울 pc의 ip를 적어준다.

 

그리고 export ROS_HOSTNAME=192.168.0.13   이 부분에는 자신의 ip 주소를 넣어준다.

 

그러면 MASTER_URI에 입력된 IP의 pc 웹캠을 자신의 pc에서 확인할 수 있다.

반응형

'ROS' 카테고리의 다른 글

VINS-MONO  (0) 2021.03.09
Realsense D435i Rtabmap  (0) 2021.03.09
RPLIDAR A3 실행(Hector SLAM In ROS)  (0) 2021.02.02
Ubuntu에서 ROS를 통해 Intel Realsense D435i 사용하기  (1) 2021.01.06
ROS에서 Realsense D435i 실행시키기  (0) 2020.12.28
반응형

이번에 pc를 초기화 한 이후 비주얼스튜디오를 새로 깔아놨다.

 

그리고 좀 써보려고 하는데 scanf를 사용하는 부분에서 에러가 발생하면서

 

에러코드 C4996

'scanf': This function or variable my be unsafe.  라는 에러를 나타내게 되었다.

 

그리고 이어지는 설명에서 보이듯 scanf대신 scanf_s  를 사용하거나 

_CRT_SECURE_NO_WARNINGS  를 사용하라고 나와있는데 나는 지금껏 scanf를 사용해 왔으니

갑자기 scanf_s 를 사용하게 되면 굉장히 불편할 것 같아서 두번째 방법을 사용하기로 하였다.

 

 

 


위의 사진에서와 같이 프로젝트의 이름을 우클릭 하게 되면 가장 아래에 속성을 조정할 수 있는 부분을 확인할 수 있다.

 

속성창에 들어가게 되면

위와 같은 창을 확인할 수 있고 사진과 같이 좌측의 C/C++  에서 "전처리기" 부분에 들어가준다.

 

그리고 전처리기 정의에서 가장 뒤에 " ; " 를 사용하여 앞의 문장과 구분을 지어준 후

 

_CRT_SECURE_NO_WARNINGS;   를 써준 후 확인 및 적용을 눌러준다.

 

 

조금 더 간단한 방법이 있긴 한데

 

위와 같이 C/C++ 부분의 "일반"  에서  "SDL 검사"  를  "아니요(/sdl-)"   로 변경해 주면 된다.

반응형

'이것저것' 카테고리의 다른 글

윈도우 파티션 합치기  (0) 2020.12.29
pyqtgraph(파이썬)로 그래프 그릴때 x축 문자열로 출력하기  (0) 2020.11.14
calibration  (0) 2020.03.20
티스토리에서 수식 입력하기  (0) 2019.08.13
회전행렬 증명  (0) 2019.08.12

+ Recent posts