본문 바로가기

Project/KUSMO

[KUSMO] 9/7 Navigation 관련 문제점 해결

728x90
 

[KUSMO] 7/31 ~8/1

Navigation 진행 중 여러 Error 발생 1. Sensor Port Open Error Lidar, IMU의 Port가 가끔씩 열리지 않는 문제 센서를 뽑았다 꼽으면 해결 됨 (항상 해결되진 않음) 2. Control Loop Error Control / Map update Loop가 의도한

youngseong.tistory.com

  • 한달동안 위의 Navigation과 관련된 몇가지 문제들의 원인을 찾고 해결함

 

1. Sensor Port Open Error

  • OS는 해당 USB Port를 인식하나 ROS File을 Launch할 경우 해당 Port가 열리지 않음
  • 로봇 구동 중 IMU가 공급 전원 부족 오류 표시가 뜸
  • 현재 20000mAh 용량의 5V, 3A를 출력하는 보조배터리를 통해 Jetson Nano와 Lidar, IMU, WiFi 동글에 전원을 공급하고 있음
  • 해당 보조배터리의 공급 Watt수가 15W로 필요 용량에 비해 부족해 생긴 문제
  • 따라서 아래와 같이 24V 배터리를 적절히 분배하여 사용할 계획

 

  • 단 현재 사용중인 Motor의 Rated Power가 200W인데, 현재 사용중인 24V 배터리는 150W 정도의 전력을 공급하여 추후 200W 이상의 배터리로 교체가 필요해보임

 

 

2. Control Loop Error

  • 미해결

 

 

3. Timestamp Synchronize Error

  • 미해결
  • 앞서 했던 odometry data의 주파수 조작이 오히려 로봇의 정상동작을 방해하여 이전으로 돌림
  • 관련 내용 : https://youngseong.tistory.com/193
 

[KUSMO] 8/21

https://youngseong.tistory.com/189 [KUSMO] 7/31 ~8/1 Navigation 진행 중 여러 Error 발생 1. Sensor Port Open Error Lidar, IMU의 Port가 가끔씩 열리지 않는 문제 센서를 뽑았다 꼽으면 해결 됨 (항상 해결되진 않음) 2. Contro

youngseong.tistory.com

 

 

4. Could not get robot pose / local plan

5. Frame 관련 문제

6. Invalid Trajectory, Rotation cmd in collision

  • 7번에서 진행한 장애물 회피 구현 성공 후 위 Error들은 다시 발생하지 않음

 

 

7. 주행 간 문제 (Navigation 관련)

1) 회전 후 Map 깨짐 현상

  • Local Costmap 확인 결과 아래 영상처럼 Z축 방향으로 기울어져 있었음을 확인함

 

  • Rviz 상에서 다른 topic들을 다 끄고 TF만 확인한 결과 odom TF가 Z축 방향으로 들려있음

 

  • 따라서 부착되어있었던 IMU를 때어내서 전보다 더 단단하게 부착함
  • 그리고 바퀴의 Hardware spec에 맞게 Motor Driver의 관련 parameter를 수정함
  • 이후 Local Costmap 기울어짐 현상은 나타나지 않음

 

2) 직선 이동 시 실제 로봇의 이동 거리와 Rviz상의 이동 거리가 다른 현상

  • 위의 방법으로 같이 해결

 

3) 장애물에 붙어 주행하는 현상 + Local Planner가 Global Plan을 따르지 않고 장애물에 부딪힘

  • 그동안 아래처럼 로봇이 DWA Local Planner가 생성하는 Path를 따라가지 않고 직진만 하는 경향이 있었음

 

로봇이 Path를 따라가지 못하고 직진만 하는 모습

 

  • 이후 원인으로 생각되는 요소들을 몇가지 추리고 살펴봄

 

-1 속도 명령 (cmd_vel) 정상 전달 여부

  • 속도 명령의 전달 과정에서 문제가 있는지 확인하기 위해 move_base node가 발행하는 속도 명령 cmd_vel이 Motor에 제대로 전달되는지 확인함
  • rostopic echo 명령어를 통해 cmd_vel과 Motor Driver Node에서 발행하는 robot_pose를 비교한 결과 속도 명령은 정상적으로 전달됨을 확인

 

- 2 모터 제어 관련 문제

  • 모터 제어단에서 문제가 있는지 확인하기 위해 cmd_vel topic값을 확인하며 로봇의 움직임을 살핌
  • 그 결과 cmd_vel이 나오는데로 로봇이 움직여 제어의 문제도 아님을 확인

 

- 3 IMU 관련 문제

  • IMU값에 문제가 있어 로봇이 자신의 자세를 잘못 알고있어 직진만 하는가 의심되어 IMU Data를 살펴봄
  • rqt의 plot plugin을 통해 cmd_vel의 angular_z와 IMU Data의 angular_velocity/z topic을 비교해봄
  • 확인 결과 약간의 offset이 있긴 하나 큰 의미를 갖는 값은 아닌 것으로 보임

 

- 4 Path 관련

  • Navigation 진행 중 cmd_vel의 linear 값을 살펴보니 아래처럼 Y방향의 속도 명령이 나옴
  • 따라서 Path도 현재 로봇의 자세에서 옆으로 움직여야 하는 Path가 나옴

 

  • 현재 로봇은 Differential Type의 로봇으로, Linear Y 방향으로는 주행할 수 없는 로봇임
    • 때문에 이전에 DWA의 Parameter 중 holonomic_robot을 false로 지정했었으나 위같은 현상이 발생함
    • Holonomic Robot은 모든 방향으로 이동할 수 있는 Robot이라는 뜻
  • 위 현상 확인 후 DWA의 Parameter 중 Linear Y 방향에 관련된 Parameter 값들을 모두 0으로 설정함

 

  • 해당 parameter의 값들을 따로 지정해주지 않아서 아래와 같은 default 값들이 설정되어있는 상태였음

DWA Parameter들의 default 값

 

  • 그리고 다시 Navigation을 실행시키자 아래와 같이 제대로 장애물을 회피함
  • 결국 Differential Type의 Robot에 맞게 DWA가 Linear Y 방향으로 Path를 생성하지 않게 설정하지 않았음이 원인이었음
  • 위와 같은 과정을 거쳐 장애물 회피 기능 구현에 성공함
  • 다른 parameter들은 아래와 같이 값을 하나씩 조정해보며 tuning을 진행할 계획

inflation_raduis와 cost_scaling_factor parameter의 값을 바꿔가며 찍은 사진

 

 

 

 

 


관련 자료 : 

https://youngseong.tistory.com/182

 

About Navigation on ROS

- 위 내용은 아래의 Project에서 진행한 내용을 기반으로 정리됨 https://youngseong.tistory.com/category/KUSMO - 이 글에선 Navigation까지의 System 구성이 아닌, System 구성 완료 후 원활한 Navigaion 수행을 위한 정

youngseong.tistory.com

https://youngseong.tistory.com/189

 

[KUSMO] 7/31 ~8/1

Navigation 진행 중 여러 Error 발생 1. Sensor Port Open Error Lidar, IMU의 Port가 가끔씩 열리지 않는 문제 센서를 뽑았다 꼽으면 해결 됨 (항상 해결되진 않음) 2. Control Loop Error Control / Map update Loop가 의도한

youngseong.tistory.com

https://youngseong.tistory.com/193

 

[KUSMO] 8/21

https://youngseong.tistory.com/189 [KUSMO] 7/31 ~8/1 Navigation 진행 중 여러 Error 발생 1. Sensor Port Open Error Lidar, IMU의 Port가 가끔씩 열리지 않는 문제 센서를 뽑았다 꼽으면 해결 됨 (항상 해결되진 않음) 2. Contro

youngseong.tistory.com