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 | | | |
rosmake | | | |
2. 그래픽 도구
출처: 06_ROS_도구.pdf
모든 작업을 그래픽 없이 명령행(CLI; Commandline) 환경에서 할 수는 없다. 가능하더라도 능률이 매우 떨어질 것이다. 다음은 그래픽 환경 상에서 자주 사용되는 대표적인 ROS 툴들이다. 다만, 그래픽 환경에서 사용하는 툴이라고는 해지만 실행(시작) 자체는 명령행 환경에서 하는게 편하다. (Gazebo의 경우 후술한대로 ROS의 일부분이 아니므로 프로그램 목록에 아이콘이 존재하나, 나머지는 그렇지 않은 경우가 많다.)
2.1. RViz
rviz데이터 시각화 도구.
센서, 모터 각도 등을 모두 시각화하여 보여준다. 마치 시뮬레이터처럼, 로봇이 가상 공간에서 움직이는 모습과 센서값을 한 번에 볼 수 있다.
단, 로봇의 움직임을 투영해서 보여주는 역할이지 로봇 시뮬레이터는 아니다. 아래 Gazebo 항목 참조.
2.2. RQt
rqt계기판.
각종 변수 값, 노드 간 통신상태 확인 및 Topic 수동 조회 등이 가능하다.
2.3. Gazebo
gazebo3D 시뮬레이터.
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