목차

ROS 스터디 #3: ROS 도구(tools)

2020년 11월 13일 금요일 13:30
ZOOM 화상회의

1. 명령행(CLI; Commandline) 명령어

출처: 05_ROS_명령어.pdf

1.1. 패키지 파일관리

명령어 중요도(사용빈도) 의미 기능
roscd ★★★ ros+cd(changes directory) 지정한 ROS 패키지의 디렉터리로 이동
rosls ★☆☆ ros+ls(lists files) ROS 패키지의 파일 목록 확인
rosed ★☆☆ ros+ed(editor) ROS 패키지의 파일 편집
roscp ★☆☆ ros+cp(copies files) ROS 패키지의 파일 복사
rospd ☆☆☆ ros+pushd ROS 디렉터리 인덱스에 디렉터리 추가
rosd ☆☆☆ ros+directory ROS 디렉터리 인덱스 확인

1.2. 실행 명령

명령어 중요도(사용빈도) 의미 기능
roscore ★★★ ros+core
rosrun ★★★ ros+run 노드 실행
roslaunch ★★★ ros+launch 노드를 여러 개 실행 및 실행 옵션 설정
rosclean ★★☆ ros+clean ROS 로그 파일을 검사하거나 삭제

1.3. 빌드도구(catkin) 명령

명령어 중요도(사용빈도) 기능
catkin_create_pkg ★★★ 패키지 자동 생성
catkin_make ★★★ 캐킨 빌드 시스템에 기반을 둔 빌드
catkin_eclipse ★★☆ 캐킨 빌드 시스템으로 생성한 패키지를 이클립스에서 사용할 수 있게 변경
catkin_prepare_release ★★☆ 릴리즈할 때 사용되는 로그 정리 및 버전 태깅
catkin_generate_changelog ★★☆ 릴리즈할 때 CHANGELOG.rst 파일 생성 또는 업데이트
catkin_init_workspace ★★☆ 캐킨 빌드 시스템의 작업 폴더 초기화
catkin_find ★☆☆ 캐킨 검색

1.4. 패키지 관리 명령

명령어 중요도(사용빈도) 의미 기능
rospack ★★★ ros+pack(age) ROS 패키지와 관련된 정보 보기
rosinstall ★★☆ ros+install ROS 추가 패키지 설치
rosdep ★★☆ ros+dep(endencies) 해당 패키지의 의존성 파일 설치
roslocate ☆☆☆ ros+locate ROS 패키지 정보 관련 명령어
roscreate-pkg ☆☆☆ ros+create-pkg ROS 패키지 자동 생성(구 rosbuild 시스템에서 사용)
rosmake ☆☆☆ ros+make ROS 패키지를 빌드(구 rosbuild 시스템에서 사용)

2. 그래픽 도구

출처: 06_ROS_도구.pdf

모든 작업을 그래픽 없이 명령행(CLI; Commandline) 환경에서 할 수는 없다. 가능하더라도 능률이 매우 떨어질 것이다. 다음은 그래픽 환경 상에서 자주 사용되는 대표적인 ROS 툴들이다. 다만, 그래픽 환경에서 사용하는 툴이라고는 해지만 실행(시작) 자체는 명령행 환경에서 하는게 편하다. (Gazebo의 경우 후술한대로 ROS의 일부분이 아니므로 프로그램 목록에 아이콘이 존재하나, 나머지는 그렇지 않은 경우가 많다.)

2.1. RViz

rviz
데이터 시각화 도구.
센서, 모터 각도 등을 모두 시각화하여 보여준다. 마치 시뮬레이터처럼, 로봇이 가상 공간에서 움직이는 모습과 센서값을 한 번에 볼 수 있다.
단, 로봇의 움직임을 투영해서 보여주는 역할이지 로봇 시뮬레이터는 아니다. 아래 Gazebo 항목 참조.

2.2. RQt

rqt
계기판.
각종 변수 값, 노드 간 통신상태 확인 및 Topic 수동 조회 등이 가능하다.

2.3. Gazebo

gazebo
3D 시뮬레이터.
ROS 소프트웨어의 일부가 아니다! 다만 워낙 쓸만하다보니, ROS에서 Gazebo의 기능을 잘 활용할 수 있게끔 플러그인이 매우 잘 개발되어서 그렇게 보이는 것이다.
현실에서 ROS로 구동할 실제 로봇이 없어도 마치 있는 것처럼 개발할 수 있는 환경을 만들어 준다. 예를 들어 Gazebo 상에서 가상세계에 로봇을 작동시키면 마치 현실 로봇처럼 거리 센서가 거리값을 반환하고, 벽에 부딪히면 앞으로 나가지 않는 등

부록

a. gmapping 패키지 설치

예제 실행에 필수적인 패키지이나 배포된 ROS 실행환경에서 누락되어 수동 설치가 필요하다.

sudo apt install ros-melodic-gmapping* -y

b. turtlebot3 예제 패키지 설치

turtlebot3 관련 모든 예제 패키지를 일괄 설치한다.

sudo apt install ros-melodic-turtlebot3* -y