ROS 2 설치하기

권호떡의 데싸정복·2024년 9월 28일

ROS?

ROS - Robot Operating System

한줄 요약으로 로봇 개발을 위한 Tool이다.

ROS는 로봇 애플리케이션을 구축하는데 도움이 되는 소프트웨어 라이브러리 및 도구이다.
드라이버부터 SOTA(state-of-the-art algorithm)까지 로봇 프로젝트에 필요한 모든 것이 포함되어 있다. 심지어 이 모든것이 오픈소스이다.

왜 ROS2 인가?

  • 글로벌 커뮤니티
    - ROS 2는 커뮤니티를 위해, 커뮤니티에 의해 개발됨
  • 검증된 사용 사례
    - ROS는 로봇 산업 전반에 걸쳐 사용되고 있으며, 로봇 공학 교육을 위한 표준임
  • 시장 출시 시간 단축
    - ROS는 로봇 응용 프로그램을 개발하는데 필요한 도구, 라이브러리 및 기능을 제공하므로 본연의 중요한 로봇 개발 작업에 더 많은 시간을 할애할 수 있음
  • 다중 도메인
    - 다양한 로봇 공학 애플리케이션에 적용 가능(자동차, 수중, 우주, 산업등)
  • 멀티 플랫폼
    - ROS 2는 Linux, Windows, macOS 모두 지원함
  • 100% 오픈소스
    - ROS 2 코드는 Apache 2.0 라이센스를 기본 라이센스로 사용하여 지적 재산권에 영향을 주지 않음
  • 상업 친화성
    - ROS를 수정하고, 자신 또는 다른 사람의 비공개 소프트웨어와 혼합하고 그 결과물을 나의 독점 제품으로 베포할 수 있으며, 그 사실을 알릴 필요도 없음 (미친 ㄷ)
  • 업계 지원
    - 전 세계의 크고 작은 회사는 ROS 2에 오픈소스 기여를 하기 위해 자원을 투입하고 있음

ROS 2 Jazzy Jalisco 설치

해당 ROS가 현재 나의 OS인 Ubuntu 24.04 LTS와 호환됨 (꼭 본인에 맞는 ROS Version을 다운받아야함)

터미널에서 진행

지역 설정

$ locale
$ sudo apt update && sudo apt install locals
$ 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
	# 위 3개는 실행해도 아무 변화 없었음
$ locale

소스 설정

$ 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
# 위 2개는 아무 변화 없었음

개발도구 설치 (선택사항)

$ sudo apt update && sudo apt install ros-dev-tools

ROS 2 패키지 설치

$ sudo apt update && sudo apt upgrade
$ sudo apt install ros-jazzy-desktop
$ sudo apt install ros-jazzy-ros-base

몇가지 데모 실행

$ source /opt/ros/jazzy/setup.bash
$ ros2 run demo_nodes_cpp talker
$ ros2 run demo_nodes_py listener

ros2 run demo_nodes_py listener 의 경우 실행문이 안뜨고 그냥 가만히 있는다. 뭐지..?

환경설정

$ echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
# 터미널을 열때마다 ROS 2 환경이 자동으로 설정됨
$ source ~/.bashrc 
# bashrc 파일 업데이트

개발툴(colocn) 설치 및 설정

$ sudo apt install python3-colcon-common-extensions

$ echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
$ echo "export _colcon_cd_root=/opt/ros/jazzy/" >> ~/.bashrc

colcon_cd 기능을 활성화
colcon_cd 기능이란 ROS2 패키지 디렉토리로 쉽게 이동할 수 있게 해주는 명령어

$ mkdir -p ~/robot_ws/src
$ cd ~/robot_ws/
$ colcon build --symlink-install
$ echo "source ~/robot_ws/install/setup.bash" >> ~/.bashrc

ros 2 워크스페이스를 만들고 새로운 워크스페이스에 설정을 로드하도록 bashrc를 추가

rosdep 설치

rosdep은 ROS 패키지의 시스템 의존성을 관리하는 도구

$ sudo apt install python3-rosdep
$ sudo rosdep init
$ rosdep update

vcstool 설치

vcstool은 여러 저장소를 관리하는 데 사용되는 버전 컨트롤 시스템 도구

$ sudo apt install python3-vcstool

모든 환경설정 끝

참고 사이트

숨겨진 고수의 사이트 https://ahnbk.dev/?p=498
ros 2 공식 특강 https://docs.google.com/presentation/d/1QvUHj8iZCWIGiWRCgHFG-DLAmoUK6khO9xBXCzjPTTs/edit#slide=id.g2f68ae33455_7_28
ros jazzy 공식 튜토리얼 https://docs.ros.org/en/jazzy/Tutorials.html

profile
데이터사이언스정복

0개의 댓글