본문 바로가기

Project/KUSMO

ROS Noetic에서 Navigation 구동을 위한 Intel NUC 11 Essential Kit (NUC11ATKC2) 초기 설정 방법 및 관련 용어 정리

728x90
 

산업용 PC Intel® NUC 11 Essential Kit [NUC11ATKC2]

[국내 대리점 정품] Intel® NUC Kit with Intel® Celeron® Processors

www.devicemart.co.kr

 

1) 제품 분석

  • Intel® Celeron® Processor N4505 (4M Cache, up to 2.90 GHz) 포함
  • Windows11, 10, Linux OS 사용 가능
  • Board Number : NUC11ATBC2

 

M.2 SSD 설치 공간

  • Internal Drive Form Factor : M.2 SSD (80mm와 42mm의 SSD 사용 가능)
    • M.2 : SSD의 Form Factor로, SSD를 포함한 소형 Form Factor 카드에 대한 여러 옵션을 제공하기 위해 만들어짐
    • Form Factor : 전자 제품의 Hardware 또는 Hardware 부품의 크기, 모양, 실제 사양 등을 일컫는 단어
    • SSD의 Form Factor들은 아래와 같다

  • SATA (Serial Advanced Technology Attachment) : HDD와의 Data 전송을 위한 Serial 전송 방식을 사용하는 Interface
  • NVME (Non Volatile Memory Express) : PCIe SSD에서 사용하는 Protocol으로, SATA에 비해 빠른 속도를 갖는다
    • SATA는 Host와 연결하기 위해 HBA(Host Bus Adapter)라는 중간 연결 카드가 필요한 반면, PCIe는 그런 중간 장치가 필요 없다
    • 즉 NVME는 Host Controller에서 기존 Data Bus를 사용하지 않고 SSD의 Data에 접근하는 속도를 크게 높이는 장치 사양이다
  • PCI (Peripheral Component Interconnect Bus) : Computer의 주변 기기를 확장하기 위해 Intel사에서 만든 Bus 규격으로, 최초의 병렬 방식이다
  • PCIe (PCI Express) : PCI를 직렬로 변경하여 더 빠른 속도를 낼 수 있도록 발전된 형태로, PCI에 비해 2배의 Data 전송 속도를 갖는다
  • 직렬로 연결된 하나 이상의 Data 전송 레인으로 구성되어있고, 각 레인은 수신용, 전송용 총 두쌍의 와이어로 구성된다
  • 각 레인은 PCI Controller와 확장 카드 사이의 독립적인 연결을 한다

 

  • Total Core : 2
  • Total Threads : 2
  • Processor Base Frequency : 2.00GHz

 

RAM Memory Module 설치 공간

  • 최대 2 x 16GB Memory Modules -> 32GB Memory 사용 가능
    • Memory Type : DDR4-2933 1.2V SO-DIMM
    • 2개의 260 pin DDR4 SO-DIMM Memory Slots
    • SO-DIMM (Small Outline Dual In-line Memory Module) : IC회로를 사용하여 만든 Computer Memory의 일종
    • 일반적인 DIMM크기의 절반에 불과함
    • DIMM : 여러 개의 DRAM 칩을 회로 기판위에 탑재한 Memory Module. Computer의 주기억 Memory로 쓰
    • DDR4 SDRAM (Double Data Rate 4th generation Synchronous Dynamic Random Access Memory) : 2배속 SDRAM의 일종으로
    • SDR(Signle Data Rate)은 Clock의 Rising Edge 에서만 데이터를 전송하는 반면 DDR은 Rising, Falling Edge 2개에서 데이터를 전송하여 SDR에 비해 2배 더 많은 데이터를 보낼 수 있어 Double Data Rate라 불린다. 일반적으로 메모리는 DDR 방식을 사용한다
    • DDR 뒤의 숫자는 규격을 의미한다. 높은 숫자일 수록 나중에 나온 규격이고 더 높은 성능을 가진다

출처 : https://information-factory.tistory.com/61

 

  • 최대 2개의 DIMM 사용 가능
  • RAM 설치 시 Throttling 현상 방지를 위해 동일한 크기의 Memory 2개를 사용하는 것이 좋다

DIMM과(왼쪽) SO-DIMM(오른쪽)

 

  • 하나의 SO-DIMM만 사용하고자 할 경우 위처럼 아랫단에 장착

 

  • SO-DIMM Memory, M.2 SSD, OS는 추가 구매 및 설치 필요

 

 

2) 초기 설정 진행

https://www.intel.com/content/www/us/en/support/articles/000088662/intel-nuc.html

 

Get Started with Intel® NUC Kit NUC11ATK(C2,C4, PE) and Mini-PC...

Information to help you get started using your Intel® NUC Kit NUC11ATK

www.intel.com

 

https://www.intel.com/content/www/us/en/support/products/217675/intel-nuc/intel-nuc-kits/intel-nuc-kit-with-intel-pentium-processors/intel-nuc-11-essential-kit-nuc11atkc2.html?wapkw=NUC11ATKC2 

 

Support for Intel® NUC 11 Essential Kit - NUC11ATKC2

Support product highlights, featured content, downloads and more for Intel® NUC 11 Essential Kit - NUC11ATKC2

www.intel.com

 

 

 

3) OS 설치

-  Linux 설치

  • 아래 링크에서 rufus 설치 
  • https://rufus.ie/ko/
  • 아래 링크에서 Ubuntu 20.04.06 LTS (AMD64) Image File 설치

 

  • 본래 18.04를 사용하려 했으나 NUC 11 Essential Kit 내부의 WiFi를 지원하는 Wireless-AC 9462가 18.04 이후 버전의 kernel driver를 필요로 하여 20.04 설치

Intel Wireless-AC 9462

 

  • 설치 완료 후 rufus를 통해 USB에 image file을 FLASH

이전에 18.04를 설치하여 USB 이름이 18.04로 설정되어있음

 

  • ISO 이미지 모드로 쓰기 선택

 

  • 확인을 눌러 FLASH 시작

 

  • 설치 진행

 

  • 설치 완료

 

 

  • NUC에 USB 삽입 후 전원 인가 
    • SSD에 아무것도 없다면 바로 Install 창으로 넘어가고, 다른 OS가 깔려있다면 전원 인가 후 바로 F2키를 눌러 BIOS로 진입
    • 다른 Distribution의 Ubuntu가 설치되어 있을시 바로 F10키를 눌러 boot device 변경
    • BIOS 진입 시 Boot Priority 창으로 진입 후 Booting 순서를 USB가 첫번째가 되도록 변경 (아래 사진)
    • 그 후 Secure Boot를 'Disabled'로 설정
    • 설정 저장 후 F10을 눌러 BIOS에서 나오기

F10키를 눌러 boot device 변경

 

 

 

  • Ubuntu 선택

 

  • Install Ubuntu 선택

 

  • Keyboard Layout을 English로 설정
    • 본인이 편리한 언어 선택

 

  • 연결할 WiFi 선택

 

  • Normal Installation, Install third-party... 선택
    • 추가적으로 필요한 요소들을 설치하기 위함

 

  • Installation type 선택
    • 위의 경우 기존에 18.04가 설치되어있어 이를 지우고 20.04만을 사용하기 위해 Erase Ubuntu... 선택
    • 두개 이상의 Ubuntu를 사용하고자 하면 두번째, Disk를 초기화하고 사용하고자 하면 세번째 Option 선택

 

  • Continue를 눌러 진행

 

  • 시간대 설정을 위한 지역 선택

 

  • Name, Password 설정

 

  • Ubuntu 설치 진행

 

  • 설치 완료 후 재시작

 

  • Ubuntu 20.04 설치 완료

 

- Partition을 나눠 설치하는 경우

  • Ubuntu 설치를 위한 Partition 생성
    • Installation type 설정 창 전까지 아래 게시글을 참고하여 진행
    • Updates and other software 창에서 Normal Installation만 선택
    • https://jimnong.tistory.com/676
  • Installation type 설정 창에서 SSD disk (/dev/sda) 선택 후 우측 하단의 'New Partition Type' 선택
  • 경고창이 뜰 경우 'Continue' 선택
  • EFI boot loader를 위한 EFI System Partition 생성
    • root / home partition 역할
    • 'free space' 선택 후 Size : 500, Primary, Beginning of this space, EFI System Partition 선택
  • Root Space에 Ubuntu 설치를 위한 공간 생성 (System File들이 저장되는 곳. Program Cache나 설치된 Applications는 Root directory에 몇가지 file들을 저장한다)
    • https://linuxhandbook.com/linux-directory-structure/?ref=itsfoss.com : Linux Directory Structure 설명
    • 'free space' 선택 후 Size에 사용할 용량 입력
    • Type for the new partitions는 Primary로 설정
    • Location for the new partition은 Begining of this space로 설정
    • Use as는 Ext4 journaling file system으로 설정
    • Mount point에는 ' / ' 입력
  • Home Partition 생성 (개인 문서나 사진, 음악이나 다운로드와 다른 파일들이 저장되는 곳)
    • 위와 동일한 방법으로 진행
  • 위 과정 완료 후 'Install Now' 선택 (경고 창이 뜨면 'Continue' 선택)
  • 지역 선택 후 Username, Password 입력
  • 설치 진행

F2키를 통해 BIOS 진입 후 Boot 순서를 USB가 첫번째 순서로 변경

 

 

- OS 설치 이후 Setup

 

$ sudo apt update && sudo apt upgrade
  • Package Update

 

$ sudo apt install terminator
  • Terminator 설치

 

 

Ubuntu 20.04에서 IDE(Visual Studio Code, Qtcreator)를 통한 ROS 개발환경 구축

IDE(Integrated Development Tool)란? : 프로그래밍시 필요한 각종 기능들을 하나의 프로그램 안에서 처리하는 환경을 제공하는 Software - ROS에서 사용 가능한 IDE : https://wiki.ros.org/IDEs 각종 IDE 환경 설정법 Q

youngseong.tistory.com

  • Visual Studio Code 설치법

 

 

우분투 20.04 한글 사용법

Settings 진입 후 'Region & Language' 선택 'Input Sources' 하단의 '+' 기호 선택 후 'Korean' 선택 맨 위의 'Korean' 선택 'Input Sources'에서 기존의 English는 사용하지 않으므로 삭제 Korean 하나로 내부에서 한/영 전

youngseong.tistory.com

  • 위 글을 참고하여 한글 사용 설정 진행

 

 

- 이후 아래 내용들을 따라 ROS Navigation에 필요한 Setup 진행

 

GitHub - YoungSeong98/Project_KUSMO

Contribute to YoungSeong98/Project_KUSMO development by creating an account on GitHub.

github.com

  • 위 Repository를 clone 후 workspace의 src directory에 'Project_KUSMO' 내부의 폴더들을 꺼낼 것
  • 이후 'Project_KUSMO' 폴더 삭제 후 catkin_make 명령어로 package build 진행

 

- ROS Navigation Setup 관련 내용

 

Ubuntu 20.04에 ROS Noetic 설치법

http://wiki.ros.org/noetic/Installation/Ubuntu noetic/Installation/Ubuntu - ROS Wiki If you rely on these packages, please support OSRF. These packages are built and hosted on infrastructure maintained and paid for by the Open Source Robotics Foundation, a

youngseong.tistory.com

 

[KUSMO] 11/4 (Navigation Stack 구성법)

로봇의 ROS Navigaion Stack 구성 Navigation stack은 로봇을 시작점에서부터 목적지까지 안전하게 움직일 수 있게 하는 소프트웨어의 집합 http://wiki.ros.org/navigation/Tutorials/RobotSetup navigation/Tutorials/RobotSetup

youngseong.tistory.com

 

Cartographer/Hector SLAM 사용법

- 전제 조건 ROS Noetic 설치(Ubuntu 20.04에서 진행. 다른 version의 경우 해당 ubuntu version에 맞는 ROS 설치) http://wiki.ros.org/noetic/Installation/Ubuntu noetic/Installation/Ubuntu - ROS Wiki If you rely on these packages, please sup

youngseong.tistory.com

 

About Navigation on ROS

- 위 내용은 아래의 Project에서 진행한 내용을 기반으로 정리됨 https://youngseong.tistory.com/category/KUSMO - 이 글에선 Navigation까지의 System 구성이 아닌, System 구성 완료 후 원활한 Navigaion 수행을 위한 정

youngseong.tistory.com

 

 

* 'md' package build시 아래와 같은 Error 발생

  • 이는 'md' Package에서 COM Port를 사용하는 Serial Device를 사용하는데 해당하는 내용이
    • serial은 RS-232와 함께 C++로 작성된 Port처럼 Interfacing을 하는 Cross-Platform Library
    • Serial Libarary들에 친숙한 open, close, read, write 등과 같은 기본적인 Interface를 제공하는 Class
    • 또한 timeout에 대한 엄격한 제어와 회선에 대한 제공을 제공함

 

 $ sudo apt install ros-noetic-serial
  • 위 명령어를 통해 serial 설치

 

  • navstack 실행 시 위와 같은 Error 발생

 

$ sudo apt-get install ros-noetic-rosserial-python
$ sudo apt-get install ros-noetic-robot-pose-ekf
  • 위 Package들을 설치하여 해결

 

 

 

- 추가 내용

1. BIOS 설정법

 

2. Windows 설치법 (Hard Drive에 설치할 것) 

  • 설치 완료 후 실행

 

  • 계약서 동의

  • 다른 PC용 설치 미디어 선택

 

  • '이 PC에 권장 옵션 사용' 선택 시 현재 부팅 USB를 제작하고있는 PC를 기준으로 설정하므로 해제

 

  • 'USB 플래시 드라이브' 선택 (최소 8GB 이상의 USB 필요)
  • 이동식 드라이브 선택 후 이후 과정 진행

 

 

 


참고 자료 : 

https://ko.wikipedia.org/wiki/SO-DIMM

 

SO-DIMM - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. PC6400 DDR2 SO-DIMM (200핀) PC3-10600 DDR3 SO-DIMM (204핀) SO-DIMM(small outline dual in-line memory module)은 집적 회로를 사용하여 만든 컴퓨터 메모리의 일종이다. SO-DIMM, 또는 SODIMM

ko.wikipedia.org

 

 

https://computing-jhson.tistory.com/114

 

[SSD] M.2 NVMe SSD 용어 정리 (M.2란? NVMe란?)

요즘은 컴퓨터의 메인 저장장치로 하드디스크(HDD)보다는 SSD를 선택하는 게 일반화가 된 것 같다. HDD는 자기 테이프 방식이라 값이 싸지만 데이터를 읽고 쓰는데 느리다. 반면에 SSD(Flash memory)는

computing-jhson.tistory.com

http://wiki.hash.kr/index.php/SATA

 

SATA - 해시넷

SATA(Serial Advanced Technology Attachment, Serial ATA)는 하드디스크(HDD)와의 데이터 전송을 위한 직렬 전송 방식을 사용하는 인터페이스다. 사타 또는 직렬 ATA라고도 부른다. SATA 인터페이스는 호스트 버스

wiki.hash.kr

https://rizzardo-blog.tistory.com/92

 

M.2 SSD란 무엇인가?

M.2 B+M Key M.2 SSD 장착 M.2의 정의 M.2는 PCI-SIG 및 SATA-IO 표준 조직에서 개발했으며 PCI-SIG M.2 및 SATA Rev. 3.2 사양에 정의되었다. 원래 NGFF (Next Generation Form Factor)라고 불린 후 2013년에 공식적으로 M.2로

rizzardo-blog.tistory.com

https://www.hpe.com/kr/ko/what-is/nvme.html

 

NVMe란? | 용어 해설

NVMe는 호스트 컨트롤러에서 기존 데이터 버스를 사용하지 않고도 SSD에 저장된 데이터에 액세스하는 속도를 크게 높이는 장치 사양입니다. | HPE 대한민국

www.hpe.com

https://m.blog.naver.com/lovego42/221901799963

 

NVMe란? NVMe SSD 간단 이해

쉽게 이해하기 위한 정리를 해봅니다. Computer Memory 우선 NVM Express를 알기 위해서는 Computer...

blog.naver.com

https://fpkm.tistory.com/138

 

PCIe 란 무엇인가? 그 구조와 특징을 알아보자.

PCIe 란 무엇인가? 그 구조와 특징을 알아보자. (*이미지가 안보이는 경우 webp로 제작된 이미지이므로 ie11을 제외한 브라우저에서 사용해주시면 감사하겠습니다.) PCIe 란 무엇인가? 그래픽카드를

fpkm.tistory.com

https://itsfoss.com/install-linux-on-intel-nuc/

 

How to Install Linux on Intel NUC

The previous week, I got myself an [lasso link=”B07GX4X4PW” title=”Intel NUC” link_id=”15034″ ref=”intel-nuc-8-mainstream-kit-nuc8i3beh-core-i3-tall-addt-components-needed” id=”101747″]. Though it is a tiny device, it is equivalent to a

itsfoss.com

http://wjwwood.io/serial/

 

Serial by wjwwood

Serial Cross-platform, Serial Port library written in C++ View the Project on GitHub wjwwood/serial This is a cross-platform library for interfacing with rs-232 serial like ports written in C++. It provides a modern C++ interface with a workflow designed t

wjwwood.io

 

'Project > KUSMO' 카테고리의 다른 글

[KUSMO] 9/12 Navigation 문제  (0) 2023.09.13
[KUSMO] 9/7 Navigation 관련 문제점 해결  (1) 2023.09.08
[KUSMO] 8/24 Arduino 수위센서 피에조 추가, 폐기부 제어 코드  (0) 2023.08.24
[KUSMO] 8/22  (0) 2023.08.22
[KUSMO] 8/21  (0) 2023.08.22