# ROS 2 - JetsonNano(Single Board Computer) 설정

* [ ] Single Board Computer 모델 확인하기

* STELLA N1 – Jetson Nano 버전에는 기본적으로  <mark style="color:red;">**Ubuntu 18.04 LTS(ROS1)가 탑재된 SD 카드가 제공됩니다.**</mark>&#x20;

* ROS 2가 필요하신 경우 하기의 링크에서 <mark style="color:red;">**.img 형식 이미지 파일을 설치합니다.**</mark>&#x20;

* 기본 탑재된 Ubuntu 20.04 LTS의 초기 비밀번호는 1 입니다.  &#x20;

* &#x20;<mark style="color:blue;">**하기의 링크 .img 형식 이미지 파일을 사용하시는 경우 SSH를 이용하여 원격 접속 확인만 진행하시면 됩니다.**</mark>&#x20;

* 하기 주소에서 stella\_ubuntu\_20.04\_ros2.img 파일 다운 받으시면 됩니다.

{% tabs %}
{% tab title="사이트" %}
<http://naver.me/5oibQBnf>
{% endtab %}
{% endtabs %}

* 저희가 제공하는 .img 형식 이미지 파일이 아닌 사용자께서 직접 설치를 하실 경우 하기의 과정을 참고하여 설치합니다.

- [ ] Ubuntu 18.04 LTS 설치

* STELLA 내 Jetson Nano에 Ubuntu 18.04를 설치합니다. 설치 방법은 하기의 링크를 참고하여 설치합니다.

{% tabs %}
{% tab title="사이트" %}
[https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#intro	](https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#intro)
{% endtab %}
{% endtabs %}

* [ ] &#x20;OS 업그레이드 때, chromium-browser가 오류를 발생 시킬 수 있으므로 제거해줍니다.

```
sudo apt-get remove --purge chromium-browser chromium-browser-l10n
```

* [ ] Ubuntu 18.04 설치 후 하기의 명령어를 통해 최신 버전으로 업데이트합니다.

```
sudo apt update && sudo apt upgrade
```

* [ ] 파일 편집을 위해 nano 설치   &#x20;

```
sudo apt install nano
```

* [ ] 불필요한 패키지 제거  &#x20;

```
sudo apt autoremove
```

* [ ] Ubuntu 20.04 LTS로 업그레이드

- Ubuntu 업그레이드를 위하여, OS update를 허용하여 줍니다.

```
sudo nano /etc/update-manager/release-upgrades
    > 맨 밑의 never를 normal로 수정
```

![](https://3471887119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzIX3JpyMfAzOkeMdsBuU%2Fuploads%2FLD1Ox6vwx4QcLGawkAEV%2F6.PNG?alt=media\&token=ea2540e0-79b0-426c-9cad-4702b5420ddf)

* 현재 시스템 패키지를 모두 업데이트하고 재시작해줍니다.

```
sudo apt update
sudo apt dist-upgrade
sudo reboot
```

* &#x20;OS 업그레이드를 진행하여 줍니다.&#x20;
* <mark style="color:red;">**업그레이드 진행 시 입력이 필요한 경우가 있습니다. 제안 된 기본 값을 사용하여 입력해주시면됩니다. 마지막 바로 재시작을 묻는 대답에만 N를 하시면 됩니다.**</mark>     &#x20;

```
sudo do-release-upgrade
```

![](https://3471887119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzIX3JpyMfAzOkeMdsBuU%2Fuploads%2FGcigAQO5jaLzGGGkBZhy%2F10.PNG?alt=media\&token=bf629499-9310-4e32-9c97-18863c086290)

![](https://3471887119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzIX3JpyMfAzOkeMdsBuU%2Fuploads%2F8hcTXRJ01SMqdy9nMWjy%2F11.PNG?alt=media\&token=ec6971c6-4214-4859-a034-eb78da7b18e0)

![](https://3471887119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzIX3JpyMfAzOkeMdsBuU%2Fuploads%2FB9VOefpp8XwAj9nMyMXc%2F12.PNG?alt=media\&token=7d59ed79-7d5d-4ea2-8ea8-d98122584382)

* [ ] 업그레이드  진행 후 파일 설정    &#x20;

- 각각 명령어 입력 후 하기의 사진과 동일하게 작성 해주시면됩니다.        &#x20;

```
sudo nano /etc/gdm3/custom.conf
```

![](https://3471887119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzIX3JpyMfAzOkeMdsBuU%2Fuploads%2F5EUIodtQt4rm3kt5e70e%2F13.PNG?alt=media\&token=80db382d-5315-4c65-915c-8367c2043c4b)

```
sudo nano /etc/X11/xorg.conf
```

![](https://3471887119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzIX3JpyMfAzOkeMdsBuU%2Fuploads%2Fi2rLzJSL1DcZGRvfTEYn%2F14.PNG?alt=media\&token=b597c280-9006-4cdb-91dc-61e7c64024bb)

```
sudo nano /etc/update-manager/release-upgrades
```

![](https://3471887119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzIX3JpyMfAzOkeMdsBuU%2Fuploads%2FjQVhrPicqktzl2M3TCpn%2F15.PNG?alt=media\&token=65e9ba71-6884-4c7e-9794-5e0f5bf9ea05)

```
sudo reboot 
```

![](https://3471887119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzIX3JpyMfAzOkeMdsBuU%2Fuploads%2FsDNrpgsjlU6bccOODKPu%2F069.png?alt=media\&token=a5270437-ecff-49bf-b69d-112ab2474472)

* [ ] Ubuntu 20.04 LTS 내 ROS2 설치

- 다음 명령어를 이용하여 Ubuntu 20.04 내 ROS2를 설치합니다.

```
wget https://raw.githubusercontent.com/ntrexlab/ROS_INSTALL_SCRIPT/main/install_ros2_foxy.sh&& chmod 755 ./install_ros2_foxy.sh && bash ./install_ros2_foxy.sh
```

* [ ] STELLA N1 패키지 설치

- STELLA N1 관련 패키지 설치합니다.

```
sudo apt-get install ros-foxy-tf2 ros-foxy-joint-state-publisher
```

* [ ] STELLA N1 라이브러리 설치

- STELLA N1 라이브러리 다운로드 및 컴파일을 진행합니다.

```
cd ~/colcon_ws/src/
git clone https://github.com/ntrexlab/STELLA_JETSON_NANO_ROS2.git
cd ~/colcon_ws/src/STELLA_JETSON_NANO_ROS2/stella_teleop_bluetooth/stella_teleop_bluetooth/
chmod +x stella_teleop_bluetooth.py
```

* [ ] 패키지 컴파일

- <mark style="color:purple;">**새로 터미널  실행  후**</mark>  패키지 컴파일을 진행합니다.

```
cd ~/colcon_ws
colcon build --symlink-install
```

* [ ] Serial 통신 설치

- 센서 데이터 수집 및 모터드라이버 Command 입출력을 위한 Serial 통신 설정합니다.
- 하기의 명령어를 입력하여 USB 포트 설정합니다.

```
cd ~/colcon_ws/src/STELLA_JETSON_NANO_ROS2/stella_bringup
sh create_udev_rules.sh
ls -la /dev/ 
```

* Device 목록에 YDLIDAR, AHRS, MW, BT 항목이 생성됨을 확인합니다.

- [ ] NTP(Network Time Protocol) 서버를 이용한 시간 설정

```
sudo apt-get install ntpdate
sudo ntpdate ntp.ubuntu.com
```

* [ ] SSH를 이용하여 원격 접속 확인

```
(원격 PC에서)$ ssh ntrex@[Jetson Nano의 ip주소]
```
