ROS2 Action Server에 Cancel 기능 추가하기

앞에서 만든 Action Server는 Goal을 받고 Feedback을 발행한 뒤 성공 상태로 종료됩니다. 하지만 아직 중요한 기능이 하나 빠져 있습니다. 바로 Cancel 처리입니다. 현재 코드는 Client가 작업 취소 요청을 보내도 서버가 이를 확인하지 않습니다.즉, 작업이 시작되면 중간에 멈출 수 없습니다. 실제 로봇 시스템에서는 이것이 꽤 위험한 구조입니다. 예를 들어 다음과 같은 상황을 생각해 볼 수 있습니다.   … Read more

ROS2 Action Server 만들기 #1

1. 간단한 Action Server 만들기 이제 my_first_package 안에 Action Server 파일을 만듭니다. 먼저 cd ~/ros2_study/src/my_first_package/my_first_package/ 로 이동하여 dist_turtle_action_server.py 파일을 생성합니다. 기본 구조는 다음과 같습니다. VS Code에서 dist_turtle_action_server.py 파일을 불러와서 아래의 코드를 작성합니다. 아직 turtlesim을 움직이지는 않고, Action Goal을 받으면 바로 성공 처리 후 빈 Result를 반환하는 구조입니다. 이 소스는 다음과 같은 역할을 합니다. 즉, 이 코드는 … Read more

ROS 2 MultiThreadedExecutor와 Action Server로 Turtlesim 거리 이동 구현하기

이번 단계에서는 ROS 2 Action Server를 실제 turtlesim 제어에 연결합니다. 앞에서는 Action Server가 Goal을 받고 Result와 Feedback을 반환하는 구조를 확인했다면, 이번에는 다음 기능을 함께 구현합니다. 이 구조는 단순한 예제가 아니라 실제 로봇 이동 제어의 기본 패턴입니다.특히 모바일 로봇, 드론, AGV, AMR에서 “목표 지점까지 이동하면서 진행 상태를 계속 확인하는 구조”와 매우 비슷합니다. 1. 전체 구조 이번 … Read more