본문 바로가기

Jetson

(13)
[Jetson Pytorch] 1. Pytorch 개요 및 설치 Pytorch 개요 회사에서 pytorch를 다루게 되었다. 원래 tensorflow를 사용할 생각이었으나 찾아보니 tensorflow의 경우 tensorflow1.x 버전은 성능면에서 다른 신규 Neural Network 툴에 비해 약하며 tensorflow2.x버전은 아직 신규 툴이라 버그가 많다는 것 같다. 그 외 툴로는 pytorch가 가장 대표적이며 연구 논문들에서 사용하는 툴의 빈도로도 pytorch가 tensorflow를 넘어섰다기에 이를 다루어 보도록하겠다. 우선 pytorch는 python을 위한 오픈소스 머신러닝 라이브러리로 Facebook 인공지능 연구팀이 개발한것으로 유명하다. 쉽게 GPU 사용이 가능하며 Uber등에서 사용하는등 다양한 실증 사례가 존재한다. 그리고 무엇보다도 te..
[Jetson ROS] 5-2. ROS에서 Basler 카메라 사용하기 (2) 이전 포스트에서 Basler카메라의 설치방법을 올렸었다. 이번 포스트에서는 rosservice명령어를 통해 몇가지 영상 설정을 변경하는 방법을 설명하고자 한다. rosservice는 ros 내에서 subscribe되고 있는 메시지에 대하여 다른 노드에서 보내는 것이 아닌 터미널에서 사용자가 직접 메세지를 보내는 방법이라고 생각하면 좋을 것이다. 우선 아래의 명령어를 통해 rosservice로 사용 가능한 메세지들을 확인해 보면 다음과 같다 rosservice list 이 명령어 중 카메라에 따라, 혹은 api에서 호환이 안되는 명령어들이 있는데 이는 사용자가 직접 확인해 보는것이 좋을 것이다. 각 요소에 대한 내용을 https://github.com/basler/pylon-ros-camera를 참고해 보..
[Jetson ROS] 5-1. ROS에서 Basler 카메라 사용하기 (1) ROS에서 Basler카메라를 사용하는 방법을 정리하고자한다. 단 이 포스트의 경우 OpenCV를 설치하여 구동하고자 하다 실패한 뒤 Basler API를 통해 구현한 자료이다. OpenCV 설치 없이 Basler API가 먹히는지는 따로 시도해보지 않았으나 아마 높은 확률로 구동되지 않을것이다. 따라서 이전 시도에서 설치했던 OpenCV관련 내용은 추가 하겠으나 이중 일부는 설치할 필요가 없는 내용일 것임은 확인해야 할 것이다. OpenCV 설치하기 OpenCV는 Open Source Computer Vision의 약자로 인텔에서 개발한 영상관련 프로그래밍 라이브러리이다. 윈도우 리눅스 등 환경에서 사용이 가능하며 Tensorflow, Pytorch등 다양한 딥러닝 툴에도 지원이 가능한 툴이다. Bal..
[Jetson ROS] 4. ROS에서 python3 사용하기 우선 ROS는 기본적으로 python 2.7버전을 사용한다. 하지만 python 2.x버전은 추후 지원이 종료되기도 하며 일부 소프트웨어는 python3.x 기반으로 작성되고 있기 때문에 ROS내에서 python3 버전을 사용할 필요가 있다. 방법은 간단하다. sudo apt install python3-pip python3-all-dev python3-rospkg sudo apt install ros-melodic-desktop-full --fix-missing 커멘드에 대해 간단히 요약하자면 윗줄은 python3의 설치 및 ros에 python3를 설치하는 과정이며 아래줄은 python3를 설치하는 과정에서 손실된 일부 패키지들을 다시 재설치해주는 명령어이다. 이후 python3 파일을 ROS에서 사..
[Jetson ROS] 3. ROS package 이전 글에서 언급했듯 ROS 내 catkin workspace에는 package라는 구성요소들이 존재하며 package내 node들이 작동한다. 이번 글에서는 package를 생성하는 법을 소개하고 패키지의 기본적인 구성을 보이며, 필자가 기존에 사용해봤던 코드(Python기반) 의 일부를 발췌해 node간 통신이 어떤식으로 구현되는지를 보여주고자 한다. package의 생성은 catkin_ws내 src폴더에서 진행하며 생성 코드는 catkin_create_pkg이며 코드 위에 패키지의 이름과 의존요소들을 있는대로 집어넣으면 된다. cs catkin_create_pkg [패키지 이름] [source1] [source2] [source3] ... cm 참고로 cs 및 cm은 6번 글에서 적용시킨 단축 커멘..
[Jetson ROS] 2. ROS catkin workspace ROS를 사용하기위해 필요한 catkin workspace를 구성하는 단계이다. catkin 이외에도 ROS내에서 사용가능한 workspace형태가 있다고 알고있지만 사용해본적이 없고 또 catkin이 가장 대중적인 방법이기도 하기에 catkin을 소개하겠다. 우선 catkin이란 공통된 source를 가지는 ROS 패키지들을 하나로 묶아 관리하는 workspace로 알고 있으며 ROS에서 제공하는 다양한 툴을 이용해 쉽게 환경을 구축할 수 있다. catkin workspace의 구성을 간단하게 표현하자면 오른쪽과 같은것이다. 사실 잘 표현한 것인지는 모르겠지만 대충 workspace내에 package가 존재하며 패키지 내 노드들이 각자 작동하며 message의 형태로 통신한다 라는 식으로 생각하면 될듯..
[Jetson ROS] 1. ROS 설치 및 초기 설정 ROS는 Robot Operation System으로 PC내에서 다양한 slave device와 통신해 제어하는것이 가능한 소프트웨어이다. 필자도 간단한 것이지만 이를 석사연구 및 졸업 논문에 사용한적이 있다. 프로그래밍은 C++ 및 Python으로 구동하도록 되어 있다. 소프트웨어 내에 Node라는 독립구동되는 요소들이 각자 구동하고 ROSCORE 내에서 message를 통해 소통하는 방식으로 기억한다. 따라서 전혀 다른 목적으로 만들어진 하드웨어끼리 통신도 간단하게 구현이 가능하며 실제로 필자의 경우도 연구실 내 다른 연구원이 만든 로봇과 필자가 만든 로봇를 따로 만든뒤 각 노드를 간단하게 수정하는것으로 기기간 연동이 되도록 구현한 기억이 있다. 본론으로 넘어와서 설치 방법을 설명하도록 하겠다. 우선..
[Jetson] 5. Tensorflow 설치 Tenserflow는 가장 널리 알려진 딥러닝 툴중 하나이다. 회사에서 이걸 쓸 일이 있을 진 모르겠지만 일단 깔아두고 보겠다. 우선 Package를 다운로드 하겠다. 이는 jetpack SDK 4.4.1을 기준으로 작성된 내용이니 버전을 잘 확인하도록 하자. sudo apt-get update sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 kera..
[Jetson] 4. 초기 설정 진행(2) 1) CUDA Toolkit 및 CuDNN 설치 및 설치확인 이전에 ubuntu PC를 통해 진행했을 땐 cuda 툴킷 및 cuDNN을 직접 설치해 줬었는데 놀랍게도 Jetson의 경우 초기에 설치한 Jetpack SDK 내에 CUDA Toolkit 및 CuDNN이 설치 되어 있다. 따라서 설치 확인만 진행해도 될 듯하다. 현재 기기에 설치된 jetpack SDK는 4.4.1버전이며 여기에 맞는 툴킷은 CUDA Toolkit 10.2, cuDNN 8.0이다 이를 확인하는 방법으론 터미널을 통해 다음을 입력하면 된다. cat /usr/local/cuda/version.txt cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 첫번째 커맨드를 입력시 CUDA..
[Jetson] 3. 초기 설정 진행(1) 1) 업데이트 확인 Jetson의 ubuntu 첫 설치시 기본적인 업데이트가 필요하다. uubntu 내에서 업데이트는 terminal을 통해 진행할 수 있다. 혹시 터미널을 사용하는 방법에 대하여 알지 못하는 사람을 위해 간단히 설명하자면 터미널은 시스템 매뉴 내에서 아이콘을 클릭해 열거나 단축키 "Ctrl+Alt+t"를 통해 열 수 있다. 터미널에서 폴더이동과 관련된 몇가지 기본 명령어를 언급해보자면 다음과 같다. cd '위치'//'위치'에 해당하는 위치로 이동 cd ..// 현재 폴더의 상위 폴더로 이동 cd ~// Home으로 이동 ls// 폴더 내 파일 리스트 출력 Ctrl+C// 실행 중인 프로세스 중지 본론으로 돌어와서 업데이트를 진행하는 방법은 아래의 코드를 입력하면 된다. sudo apt-..