ROS2 2일차(1) node

2024. 9. 20. 09:21ROS2/기초

https://puzzling-cashew-c4c.notion.site/ROS-2-for-G-Camp-6f86b29e997e445badb69cc0af825a71

 

강의 계획서 - ROS 2 for G Camp | Notion

개요

puzzling-cashew-c4c.notion.site

참조문서

 

 

ROS2 node

cd ~/ch_ws
source install/setup.bash

 

노드 정보들을 파악하기 위해 어제 했던 gcamp를 launch

ros2 launch gcamp_gazebo gcamp_world.launch.py
ros2 node list

node list는 현재 실행중인 노드들만 표시

 

특정 노드의 정보를 알고 싶은 경우에 ros2 node info 사용

$ ros2 node info /skidbot/skid_steer_drive_controller
/skidbot/skid_steer_drive_controller
  Subscribers:
    /clock: rosgraph_msgs/msg/Clock
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /skidbot/cmd_vel: geometry_msgs/msg/Twist
  Publishers:
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /skidbot/odom: nav_msgs/msg/Odometry
    /tf: tf2_msgs/msg/TFMessage
  Service Servers:
    /skidbot/skid_steer_drive_controller/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /skidbot/skid_steer_drive_controller/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /skidbot/skid_steer_drive_controller/get_parameters: rcl_interfaces/srv/GetParameters
    /skidbot/skid_steer_drive_controller/list_parameters: rcl_interfaces/srv/ListParameters
    /skidbot/skid_steer_drive_controller/set_parameters: rcl_interfaces/srv/SetParameters
    /skidbot/skid_steer_drive_controller/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Service Clients:

  Action Servers:

  Action Clients:

 

Subscribers : 이 노드가 구독중인 토픽들(정보 받음)

Publisher : 이 노드를 구독중인 토픽들(정보 보냄)

 

예시 상황

  1. /skidbot/cmd_vel 토픽:
    • 다른 노드가 이 토픽에 geometry_msgs/msg/Twist 메시지를 퍼블리시하면, skid_steer_drive_controller 노드는 이를 구독하여 로봇의 속도를 제어하게 됩니다.
  2. /skidbot/odom 토픽:
    • skid_steer_drive_controller 노드는 이 토픽에 nav_msgs/msg/Odometry 메시지를 퍼블리시하여 로봇의 오도메트리 정보를 다른 노드들이 받을 수 있게 합니다.

ament를 사용하여 패키지 만드는 방법

$ ros2 pkg create --build-type ament_cmake  <패키지이름> --dependencies rclcpp <종속성> 
$ ros2 pkg create --build-type ament_python <패키지이름> --dependencies rclpy <종속성>

'ROS2 > 기초' 카테고리의 다른 글

ROS2 2일차(5) tf2  (0) 2024.09.20
ROS2 2일차(4) topic 프로그래밍  (0) 2024.09.20
ROS2 2일차(3) topic  (0) 2024.09.20
ROS2 2일차(2) launch  (0) 2024.09.20
ROS2 1일차 Gazebo 월드 생성 및 모델  (0) 2024.09.19