# ROS2 설치 및 환경 설정

ROS2 Humble을 사용하여 자율주행 로봇 프로젝트를 시작하기 위해 우선적으로 ROS2 환경을 구성하는 과정이 필요하다. Humble 버전은 우분투 22.04 LTS와 호환되며, ROS2 패키지와 의존성을 설치하여 기본 개발 환경을 준비해야 한다.

#### ROS2 Humble/Jazzy 설치

1. ROS2 저장소 설정:

   ```bash
   locale  # check for UTF-8

   sudo apt update && sudo apt install locales
   sudo locale-gen en_US en_US.UTF-8
   sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
   export LANG=en_US.UTF-8

   locale  # verify settings
   ```
2. ROS2 소스 추가:

   ```bash
   sudo apt install software-properties-common
   sudo add-apt-repository universe
   sudo apt update && sudo apt install curl -y
   sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
   echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu$(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
   ```
3. ROS2 Humble/Jazzy 설치:

   ```bash
   sudo apt update
   sudo apt install ros-dev-tools
   sudo apt install ros-humble-desktop # for 22.04
   sudo apt install ros-jazzy-desktop # for 24.04
   ```
4. 환경 변수 설정:

   ```bash
   source /opt/ros/humble/setup.bash # for 22.04
   source /opt/ros/jazzy/setup.bash # for 24.04
   ```

#### 예제

제공되는 예제를 실행하여 테스트 한다.

talker 실행:

```sh
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker
```

listener 실행:

```sh
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_py listener
```

#### 설치 제거

ROS 2를 제거하거나 이미 바이너리로 설치된 상태에서 소스 기반 설치로 전환하려면, 다음 명령어를 실행한다:

```sh
sudo apt remove ~nros-jazzy-* && sudo apt autoremove
```

다음은 저장소를 제거한다:

```sh
sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
# Consider upgrading for packages previously shadowed.
sudo apt upgrade
```
