URDF 공부 정리
2월이 지나가기 전, 우리 팀의 목표는 기초를 전부 다지는 것이다.
심화적인 부분을 시작하기 전, 결과물을 도출하기 위한 실력을 제대로 길러보고자 노력했다.
1월 말부터 2월 중순인 현재, 아래 활동들을 진행했다.
- ROS 책 읽기 [1회독]
- 2차 회의 : 주제 / 대회 FIX 및 분석
- CAN통신 기초 개념 이해
- UDP/TCP 통신 개념 기초 이해
- Callback 함수 이해
그리고, 가장 중요한 부분에 대해서 배우기 시작했다.
Simulation을 위해서라면 Simulation을 위한 Manipulator, Robot 본체 등이 필요하다.
이 때문에 우리는 URDF를 공부를 해야 하는 것이다.
URDF(Unified Robot Description Format)는 실제 물리적인 로봇이 아닌 가상환경에서 로봇의 규격을 정의할 수 있는 규칙이라 할 수 있습니다. URDF는 XML 형식으로 구성되며 ROS 및 Gazebo와 연동하여 가상환경에서 다양한 동작을 실험할 수 있습니다. 출처 : Tistory
로봇을 간단하게 제작하고, 내가 원하는 방식으로 움직일 수 있으며, Gazebo와 연동해 물리학적 실험 역시 가능한 최고의 기술이다!
그 중에서도 역시, 간단하게 제작이라는 부분이 가장 큰 요소이지 않을까 싶다.
URDF Basic
처음으로는 URDF에 대한 내용 이해, Gazebo와 Rviz 각각에 대해 자세히 이야기 해주시는 Youtuber를 찾아갔다.
Articulated Robotics라는 분이 상당히 잘 설명해 주시는데, 나는 이 강의가 진짜 너무 효율적이었다고 본다.
(물론, 영어를 잘 못해 여러번 들었다.)
이 분의 강의는 짧은건 7분, 긴건 27분 정도로 잘 형성되어 있는데, 이 강의만 사실 전부 이해를 해도 URDF에 대한 이해가 어느 정도 된다고 본다.
이 후속에 대한 내용은 이 Articulated Robotics에 대해서 이해를 하고 넘어가는 것이 가장 효율적일 것이라 본다. Ros 기초에 대해서도 다뤄주니 말이다.
(URDF에 대한 이해를 위해 RQT_Graph를 통해 Robot_state_publish Check)
URDF Design
URDF 기초 설계 라는 게시글을 참고하면 Design에 도움이 된다.
본 필자는 처음으로 이 글을 보며 이해를 시작했고, 도움이 어느 정도 됐다.
사실, 실제로 해 보기 전까지 이런 내용들은 이론적 내용에 불과해 실제로 해보는 것이 중요하다는 생각이 들었다.
(Manipulator를 위한 축 Joint 설계 및 Test in Rviz)
URDF Make, Simulation
URDF 완벽 정복이라는 게시글을 참고했다. 처음부터 끝까지 전부 따라갔으며, Unity 부분부터는 다시 시작하는 느낌이라 제외했다.
그러나, 이걸 바탕으로 Simulation Tool에 대한 이해도, Gazebo와 Rviz Setup, Package.xml, URDF, Launch file, Executable 등 전부 이해를 완료했다.
너무나도 감사하고, 한 줄기 빛과 같은 한글 강의였다.
2월 15일부터는 Manipulator URDF를 가져와 Gazebo와 Rviz Simulation을 위한 Launch File 프로그래밍을 시작할 것 같다.
시작은 단순 주행이다. 마지막으로 이번 URDF 공부를 하며 찍었던 사진들에 대해 올려두겠다.

시작으로는 자동차를 설계해 움직여 보는 걸 확인했다.
Rviz에서만 움직여 이상적 상황에 움직임을 유도하는데, Collision(충돌) 을 켜 두었어도 충돌이 크게 없었기에, 의미가 없었다.

Lidar 센서를 부착하고, Gazebo에서 Simulation을 시작했다.
Lidar에서 뿌리는 선의 개수를 4개에서 360개로 증가시켰고, Corn을 바닥에 설치해 장애물을 확인하고, Rviz에서도 Use_sim_time을 true로 변경, Simulation을 동기화 해 확인해 보았다.

마지막으로, DepthCamera와 Lidar을 전부 작동시키고 동작하는 장면이다.
처음과 거의 유사하지만, 왼쪽의 Terminal에서 결과값을 출력하고 있는 걸 확인할 수 있다.