ROS 1 설치
본 문서는 Ubuntu 18.04에 ROS 1 Melodic을 설치하는 전체 단계와 자주 발생하는 오류 처리 방법을 설명합니다.
1. 소프트웨어 소스 구성
Ubuntu 기본 소프트웨어 소스의 속도가 느리므로, 국내 미러(Aliyun을 예시로)로 교체하는 것을 권장합니다.
원본 sources.list 백업
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backupAliyun 미러 소스로 교체
sudo gedit /etc/apt/sources.list파일 맨 앞에 추가합니다:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse소프트웨어 목록 새로 고침
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential2. ROS 소프트웨어 소스 추가
공식 소스
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'칭화(Tsinghua) 미러 (국내 사용 권장)
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'3. 키 추가
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C6544. ROS 설치
sudo apt update
sudo apt install ros-melodic-desktop-full5. rosdep 설치 및 초기화
sudo apt update
sudo apt install python-rosdep
sudo rosdep init
rosdep update순조롭게 진행되면, rosdep 초기화 및 업데이트 결과는 다음과 같습니다:


rosdep 초기화 실패 해결
초기화가 실패하면 (GitHub 서버 접근 제한 때문), 먼저 모바일 핫스팟에 연결하여 rosdep init을 시도해 봅니다. 그래도 안 되면 아래 단계에 따라 수정합니다.
sources_list.py 수정
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.pydownload_rosdep_data 함수에서 url = "https://raw.githubusercontent.com/..."을 url = "https://ghproxy.com/" + url로 변경합니다.
rosdistro/init.py 수정
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.pyDEFAULT_INDEX_URL(72번째 줄)을 찾아 다음으로 변경합니다:
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'gbpdistro_support.py 수정
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.pydownload_rosdep_data 함수 시작 부분 (36번째 줄 근처)에 다음을 추가합니다:
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_urlrep3.py 수정
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py약 39번째 줄에 프록시 접두사를 추가합니다.
manifest_provider/github.py 수정
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py약 68번째 줄과 119번째 줄에 프록시 접두사를 추가합니다.
DNS 문제 처리
여전히 오류가 해결되지 않으면 DNS 수정을 시도해 봅니다:
sudo gedit /etc/resolv.conf기존의 nameserver 줄을 주석 처리하고 다음을 추가합니다:
nameserver 8.8.8.8
nameserver 8.8.4.4저장하고 종료한 후 다음을 실행합니다:
sudo apt-get update다음을 실행합니다:
sudo rosdep init만약 default sources list file already exists 오류가 표시되면, 먼저 기존 파일을 삭제합니다:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list그런 다음 sudo rosdep init을 다시 실행합니다.
6. 환경 변수 설정
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc7. ROS 기능 패키지 설치
sudo apt-get install ros-melodic-moveit
sudo apt-get install ros-melodic-joint-state-publisher
sudo apt-get install ros-melodic-robot-state-publisher
sudo apt install ros-melodic-gazebo-ros-pkgs
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-joint-trajectory-controller
sudo apt-get install ros-melodic-industrial-core8. 테스트
ROS에는 몇 가지 작은 프로그램이 내장되어 있으며, 이 프로그램을 실행하여 ROS 환경이 정상적으로 작동하는지 확인할 수 있습니다.
roscore 실행
roscore작은 거북이 시뮬레이터 실행
다른 터미널을 엽니다:
rosrun turtlesim turtlesim_node키보드 제어 실행
또 다른 터미널을 엽니다:
rosrun turtlesim turtle_teleop_key커서를 이 터미널에 두고, ↑, ↓, ←, → 키를 사용하여 작은 거북이를 제어합니다:
