• 터틀봇3 연결하기 (Ubuntu 18.04, ROS Melodic)
    ROS 2020. 12. 18. 19:02

     

    Remote PC에 Ubuntu 18.04, ROS1(Melodic)을 설치한 후 로보티즈 e매뉴얼을 따라 세팅했다. 

    emanual.robotis.com/docs/en/platform/turtlebot3/quick-start/

     

    ROBOTIS e-Manual

     

    emanual.robotis.com

     

     

    1. Remote PC 설정하기

    먼저 의존 패키지를 설치한다.

    sudo apt-get install ros-melodic-joy ros-melodic-teleop-twist-joy \
      ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc \
      ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan \
      ros-melodic-rosserial-arduino ros-melodic-rosserial-python \
      ros-melodic-rosserial-server ros-melodic-rosserial-client \
      ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server \
      ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro \
      ros-melodic-compressed-image-transport ros-melodic-rqt-image-view \
      ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers

     

    터틀봇3 패키지도 설치한다.

    source /opt/ros/melodic/setup.bash
    sudo apt-get install ros-melodic-turtlebot3-msgs
    sudo apt-get install ros-melodic-turtlebot3

     

    터틀봇 모델을 설정한다. 갖고 있는 터틀봇 모델이 와플파이일 경우 burger 대신 waffle_pi를 입력한다.

    echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc

     

    네트워크 구성을 위해 ip를 확인한다.

    ifconfig

     

    ifconfig 명령을 찾을 수 없다(Command 'ifconfig' not found)고 나올 경우 net-tools 패키지를 설치해준다.

    sudo apt install net-tools

     

    텍스트 편집기로 bashrc 파일을 연다. gedit 대신 nano 등 본인이 사용하기 편한 걸로 열면 된다.

    gedit ~/.bashrc

     

    문서 하단으로 가서 아래 두 줄을 추가하고 저장한다.

    {IP_ADDRESS_OF_REMOTE_PC} 자리에 위에서 ifconfig로 확인한 IP를 입력한다.

    (https로 잘못 입력할 경우 연결이 제대로 안 될 수 있다. 내가 그랬다 ㅠ)

    export ROS_MASTER_URI=http://{IP_ADDRESS_OF_REMOTE_PC}:11311
    export ROS_HOSTNAME={IP_ADDRESS_OF_REMOTE_PC}

    수정한 내용을 적용한다.

    source ~/.bashrc

     

    2. SBC 설정하기

    2.1. SD카드에 라즈베리파이 OS를 설치한 상태에서 HDMI 케이블을 이용해 라즈베리파이와 모니터를 연결한다.

    2.2. 라즈베리파이의 USB 포트에 키보드, 마우스 등 입력 장치를 연결한다.

    2.3. 전원을 연결해서 라즈베리파이를 켜준다.

    2.4. 터미널을 실행한 후 다음 명령어를 입력한다.

     

    Remote PC와 동일한 네트워크에 연결한 후 IP를 확인한다.

    ifconfig

     

    Remote PC에서 터미널을 열고 다음 명령어를 입력해서 라즈베리파이와 연결한다.

    {IP_ADDRESS_OF_RASPBERRY_PI} 대신 위에서 확인한 IP 주소를 입력한다.

    ssh pi@{IP_ADDRESS_OF_RASPBERRY_PI}

    이 과정에서 비밀번호를 입력해야 하는데 비밀번호가 기억나지 않을 경우 아래 명령어를 이용해 환경설정을 실행한다.

    sudo raspi-config

    '2. Change User Password'를 선택하고 새로운 비밀번호를 입력하면 비밀번호가 변경된다.

     

     

    NTP 시간 동기화를 위해 아래 명령어를 입력한다.

    sudo apt-get install ntpdate
    sudo ntpdate ntp.ubuntu.com

     

    다음 명령어를 통해 환경설정을 실행한다.

    sudo raspi-config

    'Advanced Options' -> 'Expand Filesystem'을 선택한 후 환경설정을 종료한다.

     

     

    Remote PC에서 했던 것과 마찬가지로 텍스트 편집기로 bashrc 파일을 연다. 

    gedit ~/.bashrc

     

    마찬가지로 문서 하단으로 가서 아래 두 줄을 추가한 후 저장한다.

    {IP_ADDRESS_OF_REMOTE_PC}에는 Remote PC IP를, {IP_ADDRESS_OF_RASPBERRY_PI_3}에는 라즈베리파이 IP를 입력한다.

    export ROS_MASTER_URI=http://{IP_ADDRESS_OF_REMOTE_PC}:11311
    export ROS_HOSTNAME={IP_ADDRESS_OF_RASPBERRY_PI_3}

    수정한 내용을 적용한다.

    source ~/.bashrc

     

    3. OpenCR 설정하기

    USB 케이블로 라즈베리파이와 OpenCR이 연결된 상태에서 다음 명령어를 입력한다.

     

    라즈베리파이에 OpenCR 펌웨어를 올리기 위해 필요한 패키지를 설치한다.

    sudo dpkg --add-architecture armhf
    sudo apt-get update
    sudo apt-get install libc6:armhf

     

    갖고 있는 모델이 와플일 경우 burger 대신 waffle을 입력한다.

    export OPENCR_PORT=/dev/ttyACM0
    export OPENCR_MODEL=burger
    rm -rf ./opencr_update.tar.bz2

     

    펌웨어를 다운받는다.

    wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2
    tar -xvf opencr_update.tar.bz2 

     

    OpenCR에 펌웨어를 올린다.

    cd ./opencr_update
    ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr

     

    4. 가져오기 (Bring up)

    PC에서 다음 명령어를 실행한다.

    roscore

     

    새 터미널을 열고 라즈베리파이에 연결한다.

    {IP_ADDRESS_OF_RASPBERRY_PI} 자리에 라즈베리파이 IP 주소를 입력한다.

    ssh pi@{IP_ADDRESS_OF_RASPBERRY_PI}

     

    터틀봇3 애플리케이션을 시작하기 위한 기본 패키지를 가져온다.

    roslaunch turtlebot3_bringup turtlebot3_robot.launch

     

    'ROS' 카테고리의 다른 글

    osm_cartography - RViz에 오픈스트리트맵(OSM) 데이터 시각화하기  (0) 2022.12.25
    터틀봇3 Navigation  (0) 2020.12.30
    터틀봇3 SLAM  (0) 2020.12.27
    ROS Melodic 설치 (Ubuntu 18.04)  (0) 2020.12.18

    댓글

ABOUT ME

공부한 것을 기록하기 위해 블로그를 개설했습니다. 관심 분야는 ROS와 머신러닝입니다.

VISIT

/