왕다방

인공지능 & 로봇 사용자들의 자유게시판입니다. 인공지능, 가정용로봇, 서비스로봇, 인공지능스피커 등 자유롭게 올려주세요. 질문과답변도 이곳에 올려주세요.

제목ROS2: 작업공간(workspace) 생성2021-12-09 04:28
작성자user icon Level 4

88x31.png


ROS1에서는 하나의 작업공간(workspace)에서 모든 작업이 이루어졌지만 ROS2에서는 복수의 작업공간을 통해 패키지 관리가 가능합니다. 이번 글에서는 사용자 작업공간을 만들어보겠습니다.


우선 작업공간으로 사용할 폴더를 만듭니다. 홈 디렉토리에 dev_ws라는 폴더를 작업공간으로 사용하겠습니다.

  $ mkdir -p ~/dev_ws/src


dev_ws 폴더 아래에 src 폴더는 사용자 패키지가 저장될 폴더입니다. src 폴더로 이동합시다.

  $ cd ~/dev_ws/src


github를 통해 튜토리얼 패키지를 복제합시다.

  $ git clone https://github.com/ros/ros_tutorials.git -b foxy-devel


작업공간 루트 폴더(dev_ws)로 돌아오세요.

  $ cd ..


튜토리얼 패키지의 의존성 패키지를 설치해야합니다. rosdep라는 툴을 통해 의존성 패키지 관리가 가능합니다.

다음 명령어를 통해 rosdep를 설치합시다.

  $ sudo apt install python3-rosdep


다음 명령어를 통해 초기화를 해주세요.

 $ sudo rosdep init


다음 명령어를 통해 업데이트를 합시다.

  $ rosdep update


OS를 확인할 수 없다는 에러가 떴습니다. 하모니카OS를 사용하고 있기 때문입니다.

mb-file.php?path=2021%2F12%2F09%2FF4357_1.png
 

하모니카 4.0은 우분투 20.04를 기반으로 합니다. 

다음 명령어를 통해 OS를 오버라이드하고 다시 업데이트 해주세요.

  $ export ROS_OS_OVERRIDE=ubuntu:20.04:focal

  $ rosdep update

mb-file.php?path=2021%2F12%2F09%2FF4358_2.png
 

rosdep를 통해 사용자 패키지의 의존성 패키지를 설치합시다.

  $ rosdep install -i --from-path src --rosdistro foxy -y

mb-file.php?path=2021%2F12%2F09%2FF4359_3.png
 

이제 작업공간을 빌드하겠습니다.

  $ colcon build

mb-file.php?path=2021%2F12%2F09%2FF4360_4.png 


dev_ws 폴더에 들어가보면 install 폴더가 생겼습니다. 이 폴더에는 사용자 작업공간에 대한 환경설정 파일이 들어있습니다.

mb-file.php?path=2021%2F12%2F09%2FF4361_5.png
 

ROS2를 설치하고서 source 명령어를 통해 환경설정을 해주었고, 터미널을 실행시킬때마다 자동으로 환경설정하도록 .bashrc 파일에 source를 추가했었습니다.

  source /opt/ros/foxy/setup.bash

mb-file.php?path=2021%2F11%2F11%2FF4224_6.png


이때 설정한 작업공간이 언더레이(underlay), 새로 추가한 작업공간 dev_ws가 오버레이(overlay)가 됩니다.

언더레이는 이미 설정되었으므로 오버레이를 환경 설정해주세요.

  $ . install/local_setup.bash


. 명령어는 source 명령어와 동일합니다.

오버레이를 환경설정하여 언더레이에는 영향을 주지 않으면서 오버레이의 패키지를 실행할 수 있습니다.

패키지 이름이 동일하다면 오버레이 패키지가 우선합니다.


turtlesim 패키지를 실행해봅시다.

  $ ros2 run turtlesim turtlesim_node

mb-file.php?path=2021%2F12%2F09%2FF4362_6.png
 

실행된 turtlesim_node 노드는 오버레이 turtlesim 패키지의 노드입니다.

오버레이 turtlesim 패키지임을 확인하기 위해 타이틀을 수정해보겠습니다.


~/dev_ws/src/ros_tutorials/turtlesim/src/turtle_frame.cpp 파일의 52행에서 타이틀을 다음과 같이 수정해주세요.

mb-file.php?path=2021%2F12%2F09%2FF4363_7.png
 

저장하고 다시 빌드합시다.

  $ colcon build


turtlesim_node 노드를 실행해보세요. 

타이틀이 MyTurtleSim으로 변경된 것을 확인함으로써 오버레이의 turtlesim 패키지라는 것을 알 수 있습니다.

  $ ros2 run turtlesim turtlesim_node

mb-file.php?path=2021%2F12%2F09%2FF4364_8.png
 

터미널을 새로 열고 turtlesim_node를 실행하면 언더레이의 turtlesim 패키지가 실행됩니다.

mb-file.php?path=2021%2F12%2F09%2FF4362_6.png 

#ROS2# workspace# 작업공간
댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)