ROS(4) - ROS1 핵심 개념 및 팁 정리

장성원·2025년 1월 19일

ROS1/2

목록 보기
4/4
post-thumbnail

01. ROS 핵심 개념

개념설명
NodeROS에서 작업 단위, 하나의 실행 파일을 의미한다. 각각의 노드는 독립적으로 실행된다
Package여러 작업을 수행하는 노드의 묶음
Node file실행 가능한 노드 스크립트
Launch file여러 노드를 설정과 함께 실행하기 위한 XML 형식의 파일
Message노드가 생성하는 정보의 단위, 정수 값, 실수 값, 문자열, 시간, 이미지, 점군..등등이 포함된다
Topic발행과 구독의 방식으로 이루어지는 노드 간 메세지 전달 방식
지속적으로 센서 데이터를 생성해내고 이를 받아 처리할 때 사용된다
Service요청과 응답을 통한 동기식 통신 방식
특정 목적의 작업에 해당하는 서비스를 일회성으로 요청할 때 사용한다
Action장기간 작업의 수행을 위한 비동기 방식의 통신, 중간 결과 값이 피드백 된다
Parameter노드에서 사용하는 파라미터를 의미, 서버에서 관리하며, 프로그램 동작 중 실시간 변경이 가능하다
EX) 카메라의 내부 파라미터, 모터의 최대, 최소 속도 값, 특정 알고리즘에서 사용하는 설정 값
Bag토픽 메세지를 타임스탬프와 함께 기록한 파일, .bag 확장자를 가진다
실험 환경의 재현을 위해 사용된다

구성 요소설명
catkin_init_workspacecatkin 워크스페이스 초기화 & CMakeLists.txt 생성
catkin_makeROS 워크스페이스를 빌드하는 명령어
src 폴더소스 코드, 패키지.. 등등이 위치하는 폴더
빌드작성한 코드와 패키지를 컴파일하고 필요한 의존성을 해결하여 실행 가능한 바이너리, 라이브러리를 생성하는 과정
설정 파일실행 및 경로 설정을 위한 파일, setup.bash나 setup.zsh.. 등등

02. ROS 핵심 명령어

명령어설명예시
roscoreROS 마스터 노드의 실행, 시스템의 필수 프로세스
일반 노드를 실행하기 전에 먼저 실행해 주어야하며, 모든 노드가 종료될 때까지 유지해야 한다
roscore
rosrunROS 패키지 내의 하나의 노드를 실행하는 명령어
rosrun <패키지 이름> <노드 이름>
rosrun turtlesim turtlesim_node
roslaunch여러 노드와 설정 파일을 한 번에 실행roslaunch package_name launch_file.launch
rosnode현재 실행중인 노드 상태 및 관리rosnode list
rosnode info node_name
rostopicROS 토픽 관련 정보 조회, 데이터 발행/구독rostopic list
rostopic echo /topic_name
rosserviceROS 서비스 정보 조회, 서비스 호출rosservice list
rosservice call /service
rosparamROS 파라미터 조회 및 설정rosparam get /param_name
rosparam set /param_name value
rosbagBag 파일을 기록, 재생하고 정보 확인 하는데 활용하는 명령어rosbag info "bag_file"
rosbag play "bag_file"

03. 새로운 노드 작성법

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

# [의존성 1], [의존성 2]...를 가진 [패키지 이름] 라는 이름의 패키지 생성
catkin_create_pkg [패키지 이름] [의존성 1] [의존성 2] ...
cd ~/catkin_ws/src/[패키지 이름]

# 필요한 의존성 패키지 설치
rosdep install --from-paths src --ignore-src -r -y

cd ~/catkin_ws
catkin_make

chmod +x src/[파일이름.py]

source devel/setup.bash
roscore (erp 실행시킨 상태에서는 X)
rosrun [패키지 이름] [파일이름.py]

04. 깃허브 패키지 런치 방법

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone [깃허브 링크]

cd ..
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

cd ~/catkin_ws
roslaunch [패키지 이름] [런치파일]

참고 자료

profile
Automated Vehicle & AGV / AMR (Robotics)에 관심을 두고 공부하는 학생입니다.

0개의 댓글