ROS DWB Local Planner Error
ROS 의 robot_navigation Package 중 dwb_local_planner 사용 시 Goal 지점에서 다음과 같은 오류 메시지를 뿜어내며 Goal Align 을 못하는 경우가 있다.
computeVelocityCommands exception: No valid trajectories out of 248!
Align 을 진행하지 못하기 때문에 골 명령을 반복해서 새롭게 받게 되고, 결국에는 Aborting 되어 골 정렬이 이루어지지 못하고 로봇의 네비게이션 동작이 불완전 종료가 된다. 문제를 해결하기 위해서 local Planner 의 Parameter 을 확인해볼 필요가 있다.
dwb_local_planner_params
dwb_local_planner_params.yaml
...
base_local_planner: nav_core_adapter::LocalPlannerAdapter
LocalPlannerAdapter:
planner_name: dwb_local_planner::DWBLocalPlanner
DWBLocalPlanner:
# Robot configuration
max_vel_x: 0.8
min_vel_x: 0.2
max_vel_y: 0.0
min_vel_y: 0.0
max_speed_xy: 0.8
min_speed_xy: 0.1
...
위 블록은dwb_local_planner_params.yaml 파일의 일부이다. 여기서,min_vel_x가 양의 값으로 지정되어 있는 것을 볼 수 있다. 음의 값이 아닌 양의 값으로 최소 속도가 지정되어 있는 경우 서두에서 언급한 문제가 발생할 수 있다.
dwb_local_planner는 Goal 명령을 받으면 우선적으로 로봇의 Heading을 Goal Topic에 담긴Orientation Pose 로 정렬 후 이동을 하게 되는 데, 이 때 최소 속도가 음의 값이 아닌 양의 값이면 해당 시퀀스를 제대로 수행하지 못하고 이동이 진행되어 도착 지점에서 문제가 생기는 것으로 보인다.
따라서,min_vel_x 를 -0.1 혹은 -0.2 정도로 변경한 후 테스트를 진행하니 서두의 문제가 해결되는 것을 확인할 수 있었다.
Problem Solution
더보기
DWBLocalPlanner:
...
min_vel_x: -0.2 (Change to Negative Value)
...