1 자유도 로봇의 토픽 데이터

1 자유도 로봇 토픽 데이터 모음(csv 형식, timestamp 포함)

노드

  • /robot_state_publisher: /joint_states 토픽에서 조인트 각도를 읽고 로봇 모델의 링크 위치를 업데이트하여 /robot_description 토픽으로 URDF로 퍼블리쉬

  • /joint_state_broadcaster: ros2_control 패키지. 하드웨어나 시뮬레이터로부터 조인트 상태를 읽고 /joint_states 토픽으로 퍼블리쉬

  • /joint_state_publisher: /robot_description 토픽에서 URDF를 읽어서 조인트 를 찾고, 조인트 상태를 읽어서 /joint_states 토픽으로 퍼블리쉬

  • /joint_trajetory_controller: 조인트 위치 제어기

  • /controller_manager: 제어기 인터페이스

  • /gazebo_ros2_control: ros2_control과 gazebo 연결 인터페이스

토픽

  • /robot_description: URDF 로봇 모델

  • /joint_states: 현재 조인트 상태.

노드 그래프


Gazebo에 로봇 로드

  1. /gazebo/spawn_entity에 로봇 URDF 전달하여 gazebo 월드에 로봇 로드 . 참고: robot_description.csv

조인트 제어 명령

  1. /joint_trajectory_controller 노드에 follow_joint_trajectory 액션 요청

  2. Controller Manager에서 제어기 동작: 현재 조인트 각도(/joint_states)와 목표 조인트 각도(액션으로 받은)를 비교하여 제어. joint_trajectory_controller/state.csv 참고

    1. ros2_control의 제어기로 부터 나온 결과조인트 값은 URDF의 ros2_control 태그에 정의된 조인트값과 연결 된다.

  3. ros2_control 의 하드웨어 인터페이스 통해서 gazebo에 전달. 참고: https://github.com/ros-controls/gazebo_ros2_control/blob/master/gazebo_ros2_control/src/gazebo_system.cpp

  4. 휴먼 모델의 링크 위치 변화는 tf_static.csv 참고

조인트 상태 읽기

  1. gazebo에서 로봇의 조인트 상태를 ros2_control의 하드웨어 인터페이스 통해서 읽음

  2. /joint_state_broadcaster 노드가 로봇의 조인트 상태를 /joint_states 토픽으로 업데이트

Last updated