Creative-Chan

[ROS] Python 3에서 설치하기 본문

Programming/ROS

[ROS] Python 3에서 설치하기

Creative.Chan 2022. 4. 1. 16:34

목차

    1. ROS란?

    ROS(Robot Operating System)는 2007년 미국 스탠포드 대학에서 진행하던 STAIR(STanford AI Robot)에서 개발을 시작한 로봇 운영체제이다.

    ROS는 로봇 응용 프로그램을 개발하기 위한 운영체제로 생각하면 된다.

    하드웨어 추상화, 하위 디바이스 제어, 메시지, 패키지 관리, 개발 및 디버깅 도구 등 다양한 기능을 제공하고 있다.

    전 세계의 많은 대학, 연구소, 회사 등에서 로봇 개발을 위해 사용하고 있고, 대부분 오픈소스로 제공되어 ROS 생태계가 구축되었다고 할 수 있다.

    다양한 로봇 플랫폼에서 내가 연구하고 개발하는 로봇에 필요한 모듈을 설치하여 사용하는 등의 효율적인 개발과 관리가 가능하다는 장점이 있다.

    예를 들어,

    내가 모바일 로봇을 개발하는데 SLAM 기능이 필요하다면,

    1. ROS로 개발된 오픈소스 SLAM 패키지를 다운로드 하고,
    2. (내 시스템에 맞게 조금 수정하여) 빌드하고,
    3. 실행하면 된다.
    • 2017년 ROS2가 발표되었으나, 지금 작성하는 문서는 ROS 1에 기초하여 작성되었다.

    2. ROS와 Python3

    ROS는 기본적으로 Python 2.7로 빌드된다. 따라서 TensorFlow2와 같이 Python 3에서 빌드 된 오픈소스 코드를 사용하기 위해서는 복잡하고 어려움이 있다.

    따라서 본 글에서는 Python 3로 ROS 패키지를 만들 수 있도록 하는 방법을 설명하고자 한다.

    Ubuntu 18.04 / ROS Melodic / Conda 환경 / Python3.9 기준으로 진행한다.

    3. Setting

    기본적인 ROS Melodic 설치법은 다음 ROS 사이트를 참고한다.

    https://wiki.ros.org/melodic/Installation/Ubuntu

    [melodic/Installation/Ubuntu - ROS Wiki

    We are building Debian packages for several Ubuntu platforms, listed below. These packages are more efficient than source-based builds and are our preferred installation method for Ubuntu. Note that there are also packages available from Ubuntu upstream. P

    wiki.ros.org](https://wiki.ros.org/melodic/Installation/Ubuntu)

    기존 ROS 설치법과 다른 부분은 볼드체로 표시하겠다.

    1. 먼저 ROS를 사용하고자 하는 Conda 환경을 Activate한다.

    conda activate <ENV_NAME>

    2. ROS 설치 이전에 Python 3 관련 패키지를 설치한다.

    sudo apt install python3-pip python3-all-dev python3-rospkg

    3. ROS 패키지를 다운받을 수 있도록 sources.list를 설정한다.

    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

    4. Key를 설정한다.

    sudo apt install curl
    curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
    1. ROS를 설치한다
    sudo apt update # 최신 패키지를 받을 수 있도록
    sudo apt install ros-melodic-desktop-full --fix-missing # Python3 설치에서 손실된 패키지를 다시 설치할 수 있도록

    6. 환경변수를 설정한다.

    echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
    source ~/.bashrc

    7. pip3에서 사용되는 ROS 패키지를 설치한다.

    sudo -H pip3 install rosdep rospkg rosinstall_generator rosinstall wstool vcstools catkin_tools catkin_pkg rospy rospkg

    8. ROS 패키지를 빌드하기 위한 툴과 dependencies를 설치한다.

    sudo apt install python-rosdep python3-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential python3-pip python3-yaml
    1. rosdep을 시작해준다.
    sudo rosdep init
    rosdep update

    10. catkin workspace를 생성하고 빌드한다.

    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/
    catkin_make -DPYTHON_EXECUTABLE=<ANACONDA_PYTHON_PATH> #예) /home/<USERNAME>/anaconda3/envs/<ENV_NAME>/bin/python

    * 초기에 catkin_make를 python3로 설정한 이후에는 그냥 catkin_make 명령어만 사용해도 된다.

    * 이후에 Python3 파일을 ROS에서 사용하기 위해서는 파이선 코드에 #!/usr/bin/env python3 를 설정하면 된다고 한다.

    * 추후에 Python3로 빌드된 패키지를 최종 테스트해보도록 하겠다.

    Comments