Webots 프로젝트

이 페이지에는 Google Season of Docs에서 승인된 테크니컬 라이팅 프로젝트의 세부정보가 포함되어 있습니다.

프로젝트 요약

오픈소스 조직:
Webot
테크니컬 라이터:
Soft illusion 채널
프로젝트 이름:
Webots용 동영상 튜토리얼 시리즈 (ROS2와 통합)
프로젝트 기간:
표준 기간 (3개월)

Project description

학습 결과:

이 동영상 튜토리얼 시리즈는 신규 사용자가 Webots를 효과적으로 시작할 수 있도록 돕고 시청자에게 특정 시뮬레이션을 달성하는 데 도움이 되는 명확한 단계별 솔루션을 제공합니다.

목표:

이 시리즈를 마치고 나면 기본 ROS2 노드를 만들고 Webot과 상호작용할 수 있을 뿐만 아니라 모바일 로봇의 고급 프로젝트를 진행하는 자신감을 얻을 수 있습니다. 이 동영상 시리즈는 또한 로봇 공학 분야의 몇 가지 중요한 개념에 대한 좋은 이론적 설명을 제공합니다.

동영상 시리즈 세부정보:

  1. Visual Studio Code에서 ROS 2 설치 및 저장소 설정 여기에는 명령적인 ROS2 설치와 기본적인 작동이 포함됩니다. 둘째, VS 코드에서 ROS 작업공간을 설정하고 VS 코드에서 기본 탭의 기능도 포함합니다.

  2. 기본적인 ROS2 및 Webots 예시 Webots ROS2의 몇 가지 예를 사용해 시청자가 시뮬레이션에 Webots와 함께 ROS2를 함께 사용할 경우 놀라운 일들이 벌어질 수 있음을 이해하도록 유도할 수 있습니다. ROS2와 Webots 간의 통신에 관한 기본 이론도 다룹니다.

  3. ROS2 서비스를 사용하여 Webot과 상호작용합니다. ROS와 ROS2 서비스의 차이점을 설명하는 ROS 서비스의 기본사항을 설명합니다. 둘째, 서비스를 호출하고 판독값에 센서 주제 및 모션을 위한 액추에이터를 사용 설정하는 단계별 튜토리얼을 표시합니다.

  4. ROS2 퍼블리셔와 함께 맞춤 로봇을 조종합니다. ROS2 게시자를 통해 Webots에 메시지를 게시하는 방법을 배웁니다. 주제에 키보드 출력을 게시한 다음 ROS 서비스에서 Webot의 모션에 사용할 수 있는 방식으로 로봇 모션을 제어하는 예를 구현할 수 있습니다.

  5. ROS2 구독자를 사용하는 로봇의 피드백을 받습니다. 이 동영상에서는 거리 센서의 센서 측정값을 구독하고 로봇이 충돌하려고 할 때 멈춥니다. 따라서 기본적으로 이것은 대화형 메시지가 게시되는 장애물 회피 노드가 될 것입니다.

  6. ROS2를 사용하는 마스터(게시자) 슬레이브(구독자) 로봇 이 동영상에서는 키보드로 한 로봇을 제어하고 다른 로봇이 수동 로봇에서 도망가도록 만듭니다. 도둑과 경찰의 시나리오와 비슷합니다. [3,4,5개의 동영상 연속입니다]. 이를 통해 시청자는 커뮤니케이션을 테스트할 수 있으며 ROS에 문제가 있는 경우 시뮬레이션에서 결함이 발생할 수 있습니다.

  7. Rviz 설정 (다른 센서 출력 표시). 이 동영상에서는 몇 가지 다른 센서를 추가하여 Rviz에 데이터를 게시합니다. 이 동영상이 끝나면 시청자가 Rviz를 설정 (예: 시각화를 위해 Lidar, Camera 등의 센서 추가)하여 구성을 저장하고 다음 번에 저장된 구성을 생성할 수 있습니다.

  8. 디버깅 동영상 (Rostopic 에코, Rostopic 정보, RQT_graph) 이 동영상에는 디버깅 기법을 이해하는 데 도움이 되도록 몇 가지 주제의 고의로 잘못된 기능이 포함되어 있습니다. RQT 그래프를 보고 문제를 일으키는 주제를 파악하는 프로세스를 따릅니다. rostopic 에코를 사용해 주제가 게시 중인지 확인하고 마지막에는 문제를 확인하기 위해 rostopic 정보를 확인합니다. 문제를 해결하고 정상적으로 작동합니다.

  9. 디버깅 동영상(rqt_console, rqt_gui) 이 동영상에서는 Ros 메시지(정보, 디버그, 오류 등)를 노드에서 사용하고 rqt_console 사용 방법을 살펴봅니다. 또한 이 동영상은 rqt_gui를 사용해 더미 메시지를 게시하여 필요한 기능을 구현하도록 확장될 예정입니다. 이는 일부 버그를 수정하기 위한 대안이 될 수 있습니다.

  10. 고급 주제 동영상: 알 수 없는 환경 (SLAM 도구 상자 또는 LaMa)에서의 SLAM 라이브러리 통합에 관한 동영상[1부] 이 동영상에서는 SLAM 문제의 기본 이론으로 시작합니다. 그런 다음 위에서 학습한 개념 인프라를 사용하여 프로젝트의 핵심을 이해합니다. 마지막으로 터미널을 통해 필요한 노드를 생성하고 Rviz에서 매핑 출력을 확인합니다.

  11. 고급 주제 동영상: 알 수 없는 환경 (SLAM 도구 상자 또는 LaMa)에서의 SLAM 라이브러리 통합에 관한 내용[2부] 이 동영상에서는 10번째 동영상의 연장선에서 모든 노드를 함께 실행하는 실행 파일을 만들고 ROS 프레임워크의 개념을 제대로 이해하기 위해 rqt_graph를 검사하는 방법을 설명합니다. 마지막으로 지도 서버를 사용하여 패키지에서 생성한 지도를 저장합니다.

  12. 고급 주제 동영상: OpenCV (AR 태그 감지, Ar_track_alvar 패키지) 통합에 관한 동영상[1부] AR 태그의 정의와 컴퓨터 비전을 사용한 현지화에서 AR 태그의 중요성으로 시작합니다. 그런 다음 AR 트랙 Alvar 패키지가 작동하는 방식을 기반으로 합니다. 이렇게 하면 프로젝트에 대한 전반적인 관점을 제공하는 데 도움이 됩니다. 마지막으로 Webots에서 ROS 주제로 이어지는 동영상 프레임 스트림을 지원하는 서비스가 제공됩니다.

  13. 고급 주제 동영상: OpenCV (AR 태그 감지, Ar_track_alvar 패키지) 통합[2부] 이 동영상은 패키지에서 위의 이미지 스트림을 사용하는 12번째 동영상의 연장선이며 로봇과 AR 태그 간의 변환 주제가 게시되어 Rviz에서 볼 수 있습니다. 마지막으로 로봇을 움직이면 Rviz 및 rostopic 메시지에서 여러 태그가 배치되고 위치가 변경되는 것을 확인할 수 있습니다.

결론:

이 GSOD 프로젝트는 ROS2와 Webots의 통합에 관한 기본적인 이해를 돕는 독립적인 패키지입니다. 이 패키지에는 주제, 서비스, 노드, 시작 파일, 게시자, 구독자, 다양한 디버깅 도구, VS 코드 사용과 같은 ROS2 개념의 실용적 구현도 포함되어 있습니다. 여기에는 SLAM 및 OpenCV와 같은 고급 주제 프로젝트도 포함됩니다. 이를 통해 시청자는 ROS2와 Webots를 사용한 엔드 투 엔드 작업의 패러다임을 경험할 수 있게 됩니다.