# 쿼드(QUAD) 자율주행 드론용 컴패니언컴퓨터 소프트웨어 - QUAD isaac-ros-vslam custom (Ver.1.0-Ubuntu 22.04-JetPack6.2)

#### 이제 복잡한 NVIDIA isaac-ros-vslam 개발 환경 구축에 많은 시간을 뺏기지 마세요!!! Jetson Orin Nano에 NVMe 디스크를 꼽고 전원을 넣으면 바로 PX4와 함께 V-SLAM을 구현할 수 있습니다.

<figure><img src="/files/T6t7HHSABil3ywUIRQ7Y" alt=""><figcaption></figcaption></figure>

### quad-compsd-orin-nano-cuvslam-1.0.0 포함 소프트웨어

* NVIDIA Jetpack 6.2.1
* Ubuntu 22.04.5 LTS, Kernel 5.15.148-tegra
* ROS2 Humble
* CUDA (v12.6.68)
* cuDNN (v9.3.0.75)&#x20;
* TensorRT (v10.3.0.30)
* VPI (v3.2.4)
* OpenCV (v4.11.0) - *<mark style="color:red;">**CUDA 빌드!!!**</mark>*
* Jtop
* Terminator Terminal
* NVIDIA isaac-ros-vslam /w RealSense D435i (Docker) - *<mark style="color:red;">**New!!!**</mark>*

> NVMe 제작시 100GB로 할당되어 있으나 GParted 소프트웨어를 이용하여 NVMe 용량에 최대치(256GB)까지 확장하여 사용할 수 있습니다.&#x20;
>
> GParted 설치(`$ sudo apt-get install gparted`)

{% embed url="<https://youtu.be/oTjszlO90tw>" %}

***

### 계정 로그인

* ID:  quad
* Password:  quad1234

<figure><img src="/files/YzGesumDnZALJr0buZYT" alt=""><figcaption></figcaption></figure>

***

### JetPack 버전 확인

```bash
quad@jetson-orin:~$ sudo apt-cache show nvidia-jetpack
[sudo] password for quad: 
Package: nvidia-jetpack
Source: nvidia-jetpack (6.2.1)
Version: 6.2.1+b38
Architecture: arm64
Maintainer: NVIDIA Corporation
Installed-Size: 194
Depends: nvidia-jetpack-runtime (= 6.2.1+b38), nvidia-jetpack-dev (= 6.2.1+b38)
Homepage: http://developer.nvidia.com/jetson
Priority: standard
Section: metapackages
Filename: pool/main/n/nvidia-jetpack/nvidia-jetpack_6.2.1+b38_arm64.deb
Size: 29300
SHA256: dd9cb893fbe7f80d2c2348b268f17c8140b18b9dbb674fa8d79facfaa2050c53
SHA1: dc630f213f9afcb6f67c65234df7ad5c019edb9c
MD5sum: 9c8dc61bdab2b816dcc7cd253bcf6482
Description: NVIDIA Jetpack Meta Package
Description-md5: ad1462289bdbc54909ae109d1d32c0a8
```

***

### CUDA

CUDA 12.6.85 사용을 위한 환경 변수는 .bashrc 파일에 설정되어 있습니다.&#x20;

```bash
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
```

***

### ROS 2

ROS2 Humble 버전이 설치되어 있습니다.

변경은 \~/.bashrc 파일에 ROS 환경변수의 주석(#) 처리를 변경하여 설정할 수 있습니다.

```bash
###ROS2 Env.
source /opt/ros/humble/setup.bash
source /usr/share/colcon_cd/function/colcon_cd.sh
export _colcon_cd_root=/opt/ros/humble/
source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
source ~/ros2_ws/install/setup.bash

alias cb='colcon build --symlink-install'
alias cbp="colcon build --symlink-install --packages-select"
alias cbe="colcon build --symlink-install --event-handlers console_direct+"
alias cbv="colcon build --symlink-install --verbose"
#ROS_DOMAIN_ID=111 #Set your unique ID
```

***

### ROS2 PX4 uORB v1.15

\~/ros2\_ws/src ROS2 작업공간에 설치되어 있습니다.&#x20;

<mark style="color:red;">uORB는 반드시 FC의 PX4 펌웨어 버전과 일치 하여야 합니다. 그렇지 않으면 동작하지 않습니다.</mark>

```
quad@orin-nano:~/ros2_ws/src$ ls -l
total 16
drwxrwxr-x  9 jetson jetson 4096 aug 10 08:30 mavros
drwxrwxr-x  6 jetson jetson 4096 aug 10 11:08 offb_mavros_py
drwxrwxr-x  6 jetson jetson 4096 aug 10 15:26 px4_msgs
drwxrwxr-x 11 jetson jetson 4096 aug 10 15:27 px4_ros_com
```

> 자세한 내용은 쿼드(QUAD) 온라인 교육 교재를 참고 하시기 바랍니다.

***

### jetson-stats

Jetson Nano 실행 모니터링 및 오버 클컥, 냉각 제어 등 다양한 기능을 사용하여 Jetson Nano를 보다 편리하게 사용할 수 있습니다.

<figure><img src="/files/BKr4sXnrrR6M1p9BPY6z" alt=""><figcaption></figcaption></figure>

***

### OpenCV 4.11.0 (CUDA build version)

CUDA로 빌드된 OpenCV 4.12.0-dev 버전을 탑재하여 GPU를 사용하여 보다 고속의 영상처리를 수행할 수 있습니다.

<figure><img src="/files/zwiK10coYbvI1LdNZZXT" alt=""><figcaption></figcaption></figure>

```python
quad@orin-nano:~/ros2_ws$ python3
Python 3.10.12 (main, Nov  6 2024, 20:22:13) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.11.0-dev'
>>>
```

***

### NVIDIA isaac-ros-vslam /w RealSense D435i

**1. 통합 런치 파일 실행**

**\[Terminal 1]**

Docker 실행:

```bash
 cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh
```

<mark style="color:$warning;">isaac\_ros\_visual\_slam\_realsense + MicroXRCEDDSAgent + px4\_bridgy + px4\_visualizer 일괄 실행:</mark>

```bash
source install/setup.bash
ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_realsense.launch.py
```

**3. foxglove\_bridge 실행**

**\[Terminal 2]**

Docker 실행:

```bash
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
   ./scripts/run_dev.sh
```

foxglove\_bridge 실행:

```bash
/workspaces/isaac_ros-dev/src/install_tools.sh 
. install/setup.bash
ros2 launch foxglove_bridge foxglove_bridge_launch.xml
```

<figure><img src="https://quad-drone-lab.gitbook.io/diamond-membership/~gitbook/image?url=https%3A%2F%2F2888294885-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FfPvaAdz8WcwzsvCNXdzp%252Fuploads%252FTvv5OWRToenTLDeO0vt1%252Fimage.png%3Falt%3Dmedia%26token%3Dd1570dd6-17fa-45b2-9f24-c55451070056&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=6951b047&#x26;sv=2" alt=""><figcaption></figcaption></figure>

***

### \[참고.1] I/O 디바이스에 대한 읽기/쓰기 권한 부여 방법

Jetson Orin의 USB나 GPIO를 통해 FC와 연결등 I/O 디바이스를 사용하고자 할때는 디바이스에 대한 읽기/쓰기 권한을 부여해야 어플리케이션에서 정상적으로 장치에 데이터를 R/W 할수 있습니다.

예: USB TTL 보드 to FC 연결시 /dev/ttyUSB0 파일 권한 체크 및 권한 부여. (dialout Group에 quad 유저 추가)

```
sudo usermod -aG dialout "$(id -un)"
```

***

### \[참고.2] Jetson Orin Nano 개발자 키트 펌웨어 업그레이드 가이드

*<mark style="color:orange;">Jetson Orin Nano 개발자 키트의 펌웨어 버전이 36.x 이하라면 펌웨어를 업그레이드 해야 합니다.</mark>*

업그레이드 방법은 아래 링크를 참고 하시기 바랍니다.

<figure><img src="/files/Njw9rC4HJ2eCfFRMUzyY" alt=""><figcaption></figcaption></figure>

{% embed url="<https://developer.ridgerun.com/wiki/index.php/JetPack_6_Migration_and_Developer_Guide/Migrating_from_JetPack_5_to_JetPack_6/Upgrade_Orin_Nano_without_a_Linux_host>" %}

> 사용 문의
>
> 사용 문의 및 개선사항은 소프트웨어 정품 구입자를 위한 "쿼드(QUAD) 드론연구소 공식 카페"를 통해 문의 해 주시면 감사하겠습니다.

{% embed url="<https://cafe.naver.com/maponarooo>" %}

***

### ﻿라이센스(License)

* 개인용
* 회사나 학교 등 멀티유저용
* 문의처 : (031)-680-1311
* 한국저작권위원회 컴퓨터프로그램 저작물 저작권 등록번호 : C2024-029034

![](https://www.alio.go.kr/upload/report/2016/02/20/2017022008399475/%5B%ED%95%9C%EA%B5%AD%EC%A0%80%EC%9E%91%EA%B6%8C%EC%9C%84%EC%9B%90%ED%9A%8C%5D%20%EB%A9%94%EC%9D%B8%EB%A1%9C%EA%B3%A0.jpg)

> 소프트웨어 라이센스문의 및 구매
>
> 소프트웨어 이미지 라이센스 구매 관련 문의는 아래 링크를 통해 가능합니다.
>
> 쿼드(QUAD) Tel. (031)-680-1311

<figure><img src="https://shop-phinf.pstatic.net/20240820_169/1724130000336WzjFG_PNG/SE-6ba1e6e3-98e5-4c31-98a7-90870d3f7d97.jpg?type=w860" alt=""><figcaption></figcaption></figure>

### 쿼드(QUAD) 공식 쇼핑몰구매처

<https://smartstore.naver.com/maponarooo/products/13137989463>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://quad-drone-lab.gitbook.io/sdcard_image/quad-quad-isaac-ros-vslam-custom-ver.1.0-ubuntu-22.04-jetpack6.2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
