1. 헷갈리는 ROS 단어 정리
- roscore: ROS 전체를 작동할 때 작성 코드, ROS와 노드, 서버를 실행시켜주는 도구이다.
- rosrun: ROS 내부 하나의 노드를 실행
- roslaunch: 다수의 ros 노드를 일괄적으로 실행
- launch 파일
- xml 문법 구조
- 노드들의 실행 옵션을 설정: 노드들 간의 관계 정의(패키지 이름, 프로그램 이름, 노드 이름, console 출력, respawn 기능 여부 등)
- roscd: 해당 패키지의 디렉토리로 이동
$roscd [package name]
- rostopic: ROS msg 관리
$rostopic list //topic의 목록
$rostopic echo /[topic name] //topic의 데이터
$rostopic info /[topic name] //topic의 상세 정보
$rostopic hz /[topic name] //topic의 퍼블리시 주기
$rostopic pub /[topic name] [메시지 형태] [메시지 내용] //topic의 데이터 전송
- rosnode: ROS node 관리
$rosnode list //node 목록
$rosnode info /[node name] //node 상세 정보
$rosnode kill /[node name] //특정 node 종료
- rosservice: ROS service 관리
$rosservice info //service 상세 정보
$rosservice find /[service name] //특정 service 타입을 입력으로 받는 서비스를 찾는 명령어
$rosservice call /[service name] //해당 service가 제공하는 기능을 요청하는 명령어
- rosparam: ROS Master의 parameter 서버 관리
- rosbag: ROS 데이터 로딩
- URDF(Unified Robot Description Format): 로봇 모델을 표현하기 위한 XML 파일로 로봇, 센서, 작업 환경을 정의한다. 링크들이 트리와 같은 구조를 가지고 있어 조인트를 통해 연결된다.
- +XACRO: URDF에 추가되어 단순성/코드 재활용성의 기능과 더불어 변수/상수/수학표현/조건문 등이 사용가능하다.
- TF(Transform Library): 실시간으로 변하는 로봇의 여러 좌표계 사이의 위치 & 회전에 대한 정보를 표현하는 ROS 패키지
2. ROS 실행 순서
- roscore
- rosrun [ROS 패키지 이름] [노드 이름]
- roslaunch [ROS 패키지 이름] [launch 파일 이름]
3. CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
project(파일 이름)
add_library(라이브러리 이름)
add_executable(실행 파일 생성)
target_link_libraries(라이브러리 링크)
4. ROS 응용 도구들
- rqt: qt 기반 ROS 종합 GUI 도구
- 제공 도구들Plot: 그래프를 통해 데이터를 시각화 해주는 도구
- Node Graph: 노드와 토픽들의 상관 관계를 시각화
- ROS 개발에 필수적인 대부분의 모니터링 도구를 제공한다. 약 30개 이상의 플러그인들이 기본적으로 제공된다.
- rviz: ROS 데이터 시각화 도구가능한 데이터: 센서 데이터(LiDAR, Radar, IMU, Camera)와 더불어 각종 좌표계 정보Navigation, Manipulation의 시각화
- URDF를 통한 로봇의 외형 시각화
- topic의 데이터를 subscribe해서 시각화해주는 도구이다.
- V-REP
- MoveIt!: 모션 계획 프레임워크 라이브러리
- CoppeliaSim: 로봇 시뮬레이터