ROS2 SD Crad 만들기

  • 설치 가능한 ROS 2 버전: Foxy
  • Foxy는 LTS이지만 공식 지원이 종료됨
  • Galactic은 지원이 종료되었으며, 안정성을 고려하면 Foxy 추천

1. 이미지 다운로드

다음 링크를 참조하여 이미지를 다운로드 한다. 이미지 정보

  • JetPack 4.6.0
  • OpenCV 4.5.3
  • TensorFLow 2.4.1
  • TensorFlow Addons 0.13.0-dev
  • Pytorch 1.8.1
  • TorchVision 0.9.1
  • LibTorch 1.8.1
  • ncnn 20210720
  • MNN 1.2.1
  • JTOP 3.1.1

다운로드

JetsonNano.img.xz

  • Username: jetson
  • Password: jetson

2. 이미지 굽기

2.1 SD CARD 굽기

Imager or balenaEtcher 프로그램을 이용하여 이미지를 굽는다. 64G SD CARD를 이용하여 굽는다.

2.2 사용자 비밀번호 변경

만약 특정 사용자의 비밀번호를 모른다면, 관리자 계정에서 강제로 변경할 수 있습니다.

sudo passwd jetson

비밀번호를 1111 또는 1로 변경하여 사용한다.

2.2 부팅후 파티션 조정

gparted 또는 disks 를 이용하여 부팅 후, 사용자 영역을 64G 까지 확장하여 사용한다.

필요시 프로그램을 다운로드 하여 설치후 gparted 를 실행한다.

#> sudo apt-get install gparted

#> sudo gparted



3. Ubuntu 20.04에서 ROS 2 Foxy 설치 방법

ROS2 Foxy 지원 사이트를 참조하여 설치를 진행한다.

https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html

3.1 APT 패키지를 이용한 설치

3.1.1 패키지 목록 업데이트 및 필수 패키지 설치

  • universe 저장소 활성화
    sudo apt install software-properties-common
    sudo add-apt-repository universe
    

3.1.2 ROS 2 GPG 키 추가

  • ROS 2 패키지 다운로드를 위해 GPG 키 추가
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add -

3.1.3 패키지 저장소 추가

  • ROS 2 패키지 저장소를 시스템에 등록
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    

3.1.4 ROS 2 Foxy 설치

  • 저장소 추가 후 패키지 목록을 업데이트한 뒤 ROS 2 Foxy 설치
  • 기본 설치(권장)

    sudo apt update
    sudo apt install ros-foxy-desktop -y
    

  • 개발 도구 및 빌드 도구 추가 설치

    sudo apt install ros-dev-tools -y
    

3.1.5 환경 변수 설정

  • ROS 2 실행 시 환경 변수를 자동으로 적용하도록 설정
    echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    

3.1.6 설치 확인

  • ROS 2가 정상적으로 설치되었는지 확인
    ros2 doctor
    

3.1.7 기본 테스트

  • talker 노드 실행
    ros2 run demo_nodes_cpp talker
    
  • listener 노드 실행(다른 터미널에서)
    ros2 run demo_nodes_py listener
    
  • 정상 동작 시 메시지가 송수신됨
    [INFO] [talker]: Publishing: 'Hello World: 1'
    [INFO] [listener]: I heard: 'Hello World: 1'