메인메뉴 바로가기 본문으로 바로가기

마산중앙고등학교

검색열기

AI 로봇선도학교

Remote PC Setup(원격컴퓨터)

메인페이지 AI 로봇선도학교Remote PC Setup(원격컴퓨터)

Remote PC Setup(원격컴퓨터)

 

Remote PC 구성

  김성두         

 

개념: 우리가 하려는 일은 TutleBot을 서버, 데스크탑(notebook)을 Remote로구성합니다. 리모토 컴에서 컴파일한 Ros파일을 TurtleBot에 업로드하여 TurtleBot가 목적에 맞게 작동하도록 하는 것입니다. 로봇 스스로 지도를 작성하고 회피경로를 설정하여 A지점에서B지점으로 네비게이션을 할수 있도록 하며, Manipulation이 가능토록 합니다.

(주의: sudo 또는 # 과 $의 구분이 필요합니다. 주체에 따라 install 때 디렉토리 위치가 다를 수 있습니다.)


manipulation.png

1. UBUNTU 20.04 LTS 데스크탑 버젼 설치

ubuntuhome.png


https://ubuntu.com/download/desktop/thank-you?version=20.04.1&architecture=amd64

 

위 링크를 따라가면 Ubuntu 데스크탑 버젼을 설치 할 수 있는 ubuntu-20.04.1-desktop-amd64.iso

 파일이 다운로드 됩니다.

Ubunt 종류의 운영체제에서는 다운 받은 파일을 클릭하면 iso파일이 자동으로 풀리게 설정되어

 있으며, Window 운영체제에서는 Ultraiso, rufus 등의 프로그램으로 준비한 usb에 압축을 풀어 주면 됩니다.

설치는 윈도우 셋업과 같은 방식으로 쉽게 진행됩니다.

 

(주의: 다른 패키지들의 셋업에 locale, 디렉토리가 사용되므로 영문으로 설치를 진행하고 한글명

           디렉토리가 생기지 않게 언어 변경시 확인합니다.)

 

1-1) network 셋팅

TurtleBot 과 와이파이로 연결되어야 통신과 로봇의 이동이 편리하므로, 공유기 아래 함께 두고 아래와

 같이 처리합니다.

 

#nano /etc/netplan/50~        (컴따라 파일명이 다름)

#netplan generate

#reboot


20201201_112320.jpg


1-2) 우분투 업데이트, 업그레이드 다 해줍니다.

 

 

2. ROS2 설치

개념: ROS2는 노드간 통신방법으로 DDS(data distribution service) 을 사용함으로 해서 보안을

강화하고  realtime을 구현하고 있습니다. DDS 통신방법은 자율주행 자동차에서도 활용되고

 있는 기술로 여러 기업들이 자사의 DDS통신 방식을 미들웨어로 배포하고 있습니다. DDS의

 표준 프로토콜은 RTPS (Real Time Publish Subscribe)이며, RTI의 Connect, PrismTech의

OpenSlice 등이 많이 쓰이고 있습니다.

dds_image.png

                                                                                                ( image from ros.org)

위 그림처럼 DDS는 UDP TCP에서 통신하므로 Realtime 구현이 필요한 경우 (예, 로봇,자율

주행자동차 )에는 빠른 통신망 5G 구축이 필요한 이유가 됩니다.

 

2-1) DDS 

ROS2 패키지에 기본값으로  eProsima의 Fast RTFS 가 포함되어 있으며 다른 DDS를 사용할

 경우 아래와 같이 설치합니다.

 

DDS binary 설치(RTI 사의 Connect ) 

https://index.ros.org/doc/ros2/Installation/DDS-Implementations/#linux-binary-install

 

간단히 요약하면

RTI사에서 무료사용 키 제공하므로 OSRF( Open Source Robotics Foundation) APT 의 repository

라이브러리로만 사용가능한 package설치입니다.

 

#apt install -q -y \ rti-connext-dds-5.3.1 # from packages.ros.org/ros2/ubuntu

 

.bashrc 파일에 아래를 추가합니다.

 

$ export RTI_LICENSE_FILE=path/to/rti_license.dat

$ cd /opt/rti.com/rti_connext_dds-5.3.1/resource/scripts && source ./rtisetenv_x64Linux3gcc5.4.0

.bash; cd -

 

2-2) ROS2 설치 (Ubuntu 20.04 인 경우)

 

2-2-1) RTI 사의 Foxy Fitzroy

https://index.ros.org/doc/ros2/Installation/Foxy/Linux-Install-Debians/


2-2-2) ROS 2 Rolling Ridley

https://index.ros.org/doc/ros2/Installation/Rolling/Linux-Install-Debians/

 

위 택1 하여 링크를 따라가서

set locale , setup sources, install ROS2 packages, environment setup 

를 순서대로 처리합니다.

 

2-3) ROS2 설치 ( Ubunt 18.04 인 경우)  

 방법은 위와 같으며 우분투 버젼에 따라 지원되는 패키지가 다릅니다.

ROS2 DashingDiade

https://index.ros.org/doc/ros2/Installation/Dashing/Linux-Install-Debians/

 

3-1) ROS2에서의 테스트 

터미널 두곳에서 아래처럼 테스트 할 수 있습니다.

 

$ source /opt/ros/foxy/setup.bash ( source : 현재 프로세스에 바로 실행)

$ ros2 run demo_nodes_cpp talker (리모토)

Hellow World.....

 

$ ros2 run demo_nodes_cpp listener

Hellow World.... (리모토 에서)

 

또는 파이 설치되고 나면 파이(서버)와 리모토와 서로 통신 테스트

$ source /opt/ros/foxy/setup.bash

$ ros2 run demo_nodes_py listener ( 라즈베리파이, 서버)

 

"Hello World" 수신되어야 설치 완료된것입니다.

 

4-1) 삭제방법

 

$sudo apt remove ros-foxy-* && sudo apt autoremove

 

 

3. IDE (통합개발환경) 설치

   Eclipse 설치시에는 3-1) 건너갑니다.

  Eclipse 2020-09 부터는 jre 가 포함되어 있습니다.

 

3-1) java 설치   

서버에서도 설치해야 하므로 cli 설치 방법입니다.

# apt remove openjdk-* && apt autoremove openjdk-*

# apt purge openjdk-*    : 삭제할것이 있으면 사용함

 

# apt install openjdk-11-jre-headless 

설치 완료 후

$ cd /usr/lib/jvm/java-11-openjdk-amd64/ 

$ ls             ---  bin 확인

#cd ~

# nano .bashrc

  export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-adm64"

  export PATH=$PATH:$JAVA_HOME/bin:

두 줄을 맨위에 추가함.

 

#source .bashrc

#echo $JAVA_HOME

  /usr/lib/jvm/java-11-openjdk-amd64  출력됨.

 

# java -version      : 버젼이 출력됩니다.

 

 

3-2)  개발툴  IED설치

 

3-2-1) Eclipse IDE for C/C++ Developers

eclipse.png

https://www.eclipse.org/downloads/

다운받아 패키지 설치합니다.

  

3-2-2)  Visual studio code 

4. 시뮬레이터 Gazebo 11 설치

gazebo_horz_neg_small-78655f82d6486fc939ff1da1ba6f48af952fa7194f8c04d459dae5544348e413.png

5. 빌드 툴 colcon 설치

 

커맨드라인에서 아래와 같이 설치

 

$ sudo sh -c 'echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main `lsb_release -cs` main"

> /etc/apt/sources.list.d/ros2-latest.list'

$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

$ sudo apt update

$ sudo apt install python3-colcon-common-extensions

 

( github에 관심이 있으면 https://github.com/ 한번 가보세요.)

 

 

6. 지도제작 Cartographer 설치


커맨드라인 작업입니다.

sudo apt install ros-dashing-cartographer

sudo apt install ros-dashing-cartographer-ros

 

7. Install Navigation2


네비게이션 툴을 설치합니다.

sudo apt install ros-dashing-navigation2 sudo apt install ros-dashing-nav2-bringup

 

8. Install vcstool


버젼 콘트롤 시스템을 설치합니다.

sudo apt install python3-vcstool

 

9. ROS1   ROS2  비교표

Selection_001.png

                                                                                                    ( image from ros.org)

 

 


10. TurtleBot3 패키지 설치

$ source /opt/ros/foxy/setup.bash

$ sudo apt install ros-foxy-turtlebot3-msgs $ sudo apt install ros-foxy-turtlebot3

 

11. 환경설정

$ echo 'source ~/turtlebot3_ws/install/setup.bash' >> ~/.bashrc

$ echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc

$ source ~/.bashrc