mingsDB

[ROS2] 사용 명령어 정리

kmings 2025. 5. 6. 10:56
728x90

노드 실행

ros2 run <패키지이름> <노드이름>

 

Service call 명령어

ros2 service call <호출할 서비스의 이름> <호출할 서비스의 타입> "{서비스 호출에 전달할 요청 메시지}"

 

Action 명령어 (Goal 부여)

ros2 action send_goal <액션이름> <액션타입> "{목표}"

 

Python 노드생성

import rclpy as rp

test_node = rp.create_node("sub_test")

 

Python 노드 생성 후 해당 노드 topic 구독하게 만들기 (예제: 베터리 퍼센트 구독)

import rclpy as rp
from sensor_msg.msg import BatteryState # topic type

rp.init()
test_node = rp.create_node("sub_test")

# 콜백함수 생성
def callback(data):
	print("Battery percentage: ", data.percentage)

# topic 구독하게 하기 (메세지타입, 토픽이름, 콜백함수, 버퍼 갯수)
test_node.create_subscription(BatteryState, "/battery_state", callback, 10)

# 1번 실행
rp.spin_once(test_node)

 

ROS2 패키지 만들기 (python 이용)

ros2 pkg create --build-type ament_python --node-name <노드이름> <패키지이름>

 

패키지 빌드하기 (반드시 워크스페이스에서 해야함)

colcon build

 

ROS 토픽 목록 확인

ros2 topic list

 

PC에서 docker로 파일 전송

sudo docker cp <파일 위치> <CONTAINER ID>:<복사할 docker 위치>

ex) docker cp ~/my_package/ f6abc1e12345:/root/ros2_ws/src/

 

패키지 경로 출력

ros2 pkg prefix <패키지 이름>

 

Topic에 publish 되고 있는 메세지 출력

ros2 topic echo /<topic 이름>