반응형

1. Prerequisites

우선 간단한 시뮬레이터를 사용하기 위해 아래 코드를 입력한다.

$ sudo apt-get install ros-<버전이름>-ros-tutorials
(버전이름으로 melodic, kinetic 등을 사용)

 

 

2. Quick Overview of Graph Concepts

* nodes: 실행가능한 요소로 ROS에서 다른 노드들과 통신을 위해 사용된다.

* Messages: 토픽을 publish, subscribing 함에 있어 전달되는 ROS 데이터의 타입이다.

* Topics: 노드들은 토픽에 대한 메시지를 publish 하거나 subscribe할 수 있다.

* Master: 노드들이 서로를 찾을 수 있도록 한다.

* rosout: stdout/stderr 역할을 수행

* roscore: Master + rosout + parameter server 수행

 

 

3. Nodes

ROS 패키지 안의 노드들은 실행 가능한 파일들보다 적다. ROS에서 노드들은 ROS client library를 통해

서로 통신하게 되고 노드들은 Topic에 publish(send message) 혹은 subscribe(receive message) 수행.

 

 

 

4. Client Libraries

ROS client libraries는 각각 다른 언어로 작성된 노드들이 서로 통신할 수 있도록 한다.

* rospy = python client library

* roscpp = c++ client library

 

 

 

5. Roscore

ROS를 사용할때 가장먼저 시작되어야 할 부분으로 roscore을 실행하면 다음과 같은 결과를 확인할 수 있다.

 

 

6. Using rosnode

새로운 터미널을 열어 roscore을 실행시킨 후 rosnode를 입력하면 roscore가 무슨 일을 하는지 확인해볼 수 있다.

 

$ rosnode list  를 입력하면

/ rosout  이라는 출력을 확인할 수 있다.

 

이는 현재 하나의 노드(rosout 노드)가 실행중임을 의미한다. 해당 노드에 대한 자세한 정보를 확인하고 싶으면

아래 명령어를 입력한다.

 

이제 그럼 조금 더 다양한 노드들을 사용해보자.

 

 

 

7. Using rosrun

rosrun은 패키지 안의 노드를 바로 실행시킨다.

예를들어

 

위의 명령어를 입력하면 turtlesim 패키지 안의 turtlesim_node 가 실행된다.

이런 거북이가 보이게 되는데 이때 rosnode list를 통해 노드들을 확인해보면 아래와 같다.

 

 

반응형

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

Using rqt_console and roslaunch  (0) 2021.01.05
Understanding ROS Services and Parameters  (0) 2021.01.05
Understanding ROS Topics  (0) 2021.01.04
Building a ROS Package  (0) 2020.12.31
Creating a ROS Package  (0) 2020.12.31
반응형

 

우분투는 윈도우와 달리 최상위 권한자라는 개념이 존재하는데

우분투의 사용자(권한)는 일반 사용자와 root로 나뉘게 된다.

 

일반 사용자는 말 그대로 일반 사용자이고 이들에겐 root의 막강한 권한을 제공하지 않는다.

즉, 중요 구성 파일을 뜯어 고칠 수 없다.

 

그럼 root 권한을 어떻게 얻을 수 있는가.

우선 아래 명령을 통해 root권한의 비밀번호를 설정해준다.

$sudo passwd root

 

그럼

$ su 명령어 혹은

$ sudo su 명령어를 통해 루트 권한을 획득할 수 있고 종료하기 위해

 

$ su - (username)을 입력하면 된다.

반응형
반응형

1. Building Packages

패키지의 dependencies 설정이 완료되면 패키지를 빌드할 수 있다.

내용을 진행하기에 앞서 환경설정 파일(setup.bash)을 source하도록 하자.

 * 리눅스 환경 설정 파일들은 수정하기만 한다고 바로 내용이 적용되는 것이 아니다. 새로운 환경설정 내용을 바로 적용하기 위해서

    source 명령어가 사용된다.

 

 

 

1.1 Usung catkin_make

catkin_make는 CMake 작업환경에서 cmake와 make가 합쳐진 도구로 볼 수 있다.

catkin_make를 사용하지 않는다면 아래와 같은 과정을 각각의 CMake프로젝트에 대해 수행하게 된다.

해당 CMake 프로젝트의 폴더 안에서 build 디렉터리를 생성하고 cmake .. 와 make 단계를 진행하게 된다.

하지만 catkin_make를 사용하면 catkin 프로젝트 안에서 아래와 같이 진행할 수 있다.

위의 명령어를 통해 catkin프로젝트의 src폴더를 찾아 빌드를 진행하게 된다. 패키지의 소스코드가 다른 폴더(예를들어 my_src라는 폴더)에 들어있다면 catkin_make 는 다음과 같이 사용될 수 있다.

 

 

 

1.2 Building Your Package

 이전 게시물에서 catkin workspace와 beginner_tutorials 패키지를 생성하였다. catkin_ws로 이동하여 src디텍터리의

내용을 확인하면 CMakeLists.txt 파일과 beginner_tutorials 디렉터리를 확인할 수 있다.

 

앞의 게시물에서 beginner_tutorials 디렉터리 아래에 catkin_create_pkg가 생성한 파일들을 담아 놓았다.

이제 catkin_make를 사용하여 이 패키지를 빌드하자.

 

catkin_ws 디렉터리에서 아래 명령어를 입력한다.

 

 

그럼 해당 디렉터리에 build폴더가 생기며 빌드가 완료된다.

(build파일이 생기는 것을 확인하지 못했으면 폴더를 삭제 후 다시 catkin_make를 해보자.)

 

 

반응형

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

Using rqt_console and roslaunch  (0) 2021.01.05
Understanding ROS Services and Parameters  (0) 2021.01.05
Understanding ROS Topics  (0) 2021.01.04
Understanding ROS Nodes  (0) 2021.01.03
Creating a ROS Package  (0) 2020.12.31
반응형

드라이버를 설치하는데 꽤 많은 시간을 쏟았다.

생각보다 쉬운 작업이 아니였고 우분투를 처음 접해보는 나로서는 굉장히 까다로운

작업이였다.

 

다양한 방법들을 시도해 보았으나 내가 성공한 방법을 간단하게 정리해두겠다.

 

우선은 윈도우 모드로 들어가 윈도우에 그래픽카드에 관한 드라이버를 설치한다.

(이 과정이 우분투에 드라이버를 설치하는데 영향이 있는지는 모르겠으나

  윈도우에서 드라이버를 설치한 후 우분투에서도 성공하였으므로 이렇게 적어두겠다.)

 

그 다음은 NVIDIA 홈페이지에서 드라이버를 다운받는다.

 

nvidia.com/Download/index.aspx?lang=en-us

 

본인의 그래픽카드에 적합한 드라이버를 다운로드 하는데 이 때 나의 경우 다운로드 된

파일은 .run 파일이였다.

그리고 다운로드된 .run파일을 좌측 <파일>아이콘을 클릭한 후 "홈" 부분에 복사하여 준다.

 

그리고 gedit 텍스트 편집기로 blacklist.conf 파일을 편집해준다.

 

위 과정을 위해 우분투의 메인 화면에서 ctrl + alt + t   를 동시에 눌러 터미널을 실행시킨 후

 

sudo gedit /etc/modprobe.d/blacklist.conf

 

를 입력해준다.

 

그리고 아래의 내용들을 추가해주면 된다.

 

blacklist amd76x_edac      ///  나의 경우 이 부분은 이미 작성되어 있었기에 따로 추가해주지 않았다.

blacklist vga16fb

blacklist nouveau

blacklist rivafb

blacklist nvidiafb

blacklist rivatv

 

작성이 완료되었으면 gedit 프로그램에서 저장버튼(혹은 ctrl+s) 을 누르고 닫아준다.

 

그리고 NVIDIA의 모든 패키지를 삭제해준다.

 

이 과정은 위의 sudo gedit /etc/modprobe..... 를 진행했던 창에서

작성하여 진행하여 주면 된다.

 

sudo apt=get remove --purge nvidia*

(purge 앞에 -가 2개 있음을 주의하자)

 

이 과정까지 완료되었으면 디스플레이 매니저 사용을 중지시켜준다.

NVIDIA 드라이버 설치를 위해서는 종료해야 하며 지금까지 작성하였던 터미널을 사용하면 안된다.

 

GUI와 관계없는 터미널을 생성해 주기 위하여 ctrl + alt + F1  을 눌러준다.

(ctrl + alt + F7 을 누르면 원상태로 돌아온다.)

 

그리고 디스플레이 매니저 사용을 중지시키기 위하여 lightdm을 중지시키는 문장을 작성해준다.

(lightdm은 우분투에 최초로 설치된 디스플레이 매니저이다.)

 

sudo service lightdm stop

 

그리고 위에서 다운로드 된 파일을 실행 가능한 상태로 변경한다.

 

chmod +x NVIDIA_Linux-x86_64-435.21.run

 

마지막으로 run 파일을 실행시킨다.

 

sudo ./NVIDIA_Linux-x86_64-435.21.run

 

위의 코드를 입력하게 되면 여러 창이 나오게 되는데 모두 YES 를 눌러 통과시켜 주면 된다.

 

 

그리고 설치가 완료되었으면 아래 코드를 입력해주어 디스플레이 매니저를 다시 시작하여 준다.

 

sudo service lightdm start

 

마지막으로 그래픽모드로 전환(ctlr + alt + F7) 을 해주면 끝!!

 

 

드라이버가 제대로 설치되었는지는

 

nvidia-smi

 

를 입력해보면 알 수 있을 것이다.

 

 

 

 

 

 

반응형
반응형

1. 패키지와 키 업데이트

 

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update

 

 

 

2. ROS Melodic 설치

 

sudo apt install ros-melodic-desktop-full

 

 

 

3. rosdep 설치 및 초기화

 

sudo apt-get install python-pip
sudo pip install -U rosdep
sudo rosdep init

*** 아래 부분은 sudo가 붙지 않는다. (나중에 권한 문제가 생길 수 있다.)

rosdep update

 

 

 

4. 환경설정

 

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

 

 

 

5.  패키지 작성을 위한 툴 설치

 

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

 

 

 

6. 작업공간 세팅 및 초기화

 

mkdir -p catkin_ws/src
cd catkin_ws/
catkin_make

 

 

 

 

이제 roscore을 입력하여 실행시켜보자.

반응형
반응형

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에 설치하는 방법을 다룹니다. ps. Ubuntu 18.04에 OpenCV를 설치하는 방법은 다음 포스트를 참고하세요 [OpenCV/Ubuntu 개발 환경] - Ub..

webnautes.tistory.com

https://agiantmind.tistory.com/183

 

[Ubuntu] Ubuntu 16.04 + OpenCV 3.2 설치

※ 시스템 환경 - Ubuntu 16.04.2 LTS 64bit - OpenCV 3.2 - 설치일: 2017.06.12 ※ 참고자료 1. 멈춤보단 천천히라도 - Ubuntu 16.04에 opencv_contrib 포함하여 OpenCV 3.2 설치 위 블로그에 OpenCV 설치에 대한..

agiantmind.tistory.com

 

위의 두 블로그 글을 참고하였다.

 

우선 설치된 OpenCV가 있다면 새로 설치하는 과정에서 오류가 발생할 수 있으므로 기존의 OpenCV를 제거해준다.

 

$ pkg-config --modversion opencv

 

를 통해 기존의 openCV가 설치되어있는지 확인한다.

설치되어 있을 경우

위와 같이 설치된 OpenCV의 버전이 출력되게 되고

 

설치되어있지 않을 경우

 

위와 같은 내용이 출력되게 된다.

 

설치된 경우

$ sudo apt-get purge libope cv* python-opencv

$ sudo apt-get autoremove

 

과정을 통해 삭제하고 진행하도록 한다.

(설치되어있지 않은 경우 바로 진행하도록 한다.)

 

2. 기존 설치된 패키지 업그레이드

 

기존에 설치된 패키지들의 새로운 버전이 저장소에 있다면 리스트를 업데이트 하기 위해 실행한다.

또한 업그레이드를 진행하도록 한다.

 

$ sudo apt-get update

$ sudo apt-get upgrade

 

3. OpenCV 컴파일 전 필요한 패키지 설치

 

OpenCV를 컴파일하는데 사용하는 것들이 포함된 패키지들을 설치한다.

 

$ sudo apt-get install build-essential cmake

$ sudo apt-get install pkg-config

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

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev

$ sudo apt-get install libv4l-dev v4l-utils

$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

$ sudo apt-get install libqt4-dev

$ sudo apt-get install mesa-utils libgl1-mesa-dri libqt4-opengl.dev

$ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev

$ sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy

 

(각 코드에 대한 자세한 내용은 위의 블로그에 자세히 설명되어있다)

 

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

 

소스코드를 저장할 임시 디렉토리를 생성하여 이동한다.

$ mkdir opencv

$ cd opencv

 

OpenCV 3.2.0 소스코드를 다운로드 받아 압축을 풀어준다.

 

$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip 

불러오는 중입니다...

$ unzip opencv.zip

$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip 

불러오는 중입니다...

$ unzip opencv_contrib.zip

 

 

3.2) OpenCV 빌드

 

$ cd opencv-3.2.0/

$ mkdir build

$ cd build

 

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=OFF -D WITH_IPP=OFF -D WITH_1394=OFF -D BUILD_WITH_DEBUG_INFO=OFF -D BUILD_DOCS=OFF -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D ENABLE_NEON=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules -D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_XINE=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_INCLUDE_DIR=/usr/include/python2.7 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so ../

 

컴파일을 시작하기 전에 사용중인 컴퓨터의 CPU 코어수를 확인한다.

 

$ cat /proc/cpuinfo | grep processor | wc -l(알파벳 i가 아닌 l)

$ time make -j4(여기서 4는 코어수)

$ sudo make install

 

4. 설치확인

 

$ pkg-config --modversion opencv

$ pkg-config --libs --cflags opencv

 

 

 

5. 예제코드 실행

 

opencv디렉토리에

$ gedit Test.cpp

 

를 통해 코드를 입력한다.

 

 

#include <opencv/hughgui.h>

int main()
{
	IplImage *image = cvLoadImage("lena.jpeg");
    cvShowImage("Test", image);
    cvWaitKey(0);
    cvReleaseImage(&image);
}

 

 

 

 

$ g++ -o imgvoew Test.cpp $(pkg-config --libs --cflags opencv)

 

$ ./imgview

 

반응형

+ Recent posts