[기초] ROS 기본 개념 정리
Robotics & Perception/Basic

[기초] ROS 기본 개념 정리

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 실행 순서

  1. roscore
  2. rosrun [ROS 패키지 이름] [노드 이름]
  3. 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: 로봇 시뮬레이터

'Robotics & Perception > Basic' 카테고리의 다른 글

[Modern Robotics] Contents  (0) 2022.04.02
[Graphics] Obj  (0) 2022.02.02
[기초] 1. Introduction  (0) 2022.01.05
[기초] TAMP: Task and Motion Planning 소개  (0) 2022.01.02
[백준] 1100번: 하얀 칸  (0) 2019.10.06