Webots 프로젝트

이 페이지에는 Google Season of Docs에 선정된 기술 문서 프로젝트의 세부정보가 포함되어 있습니다.

프로젝트 요약

오픈소스 조직:
Webots
기술 문서 작성자:
부드러운 착시 채널
프로젝트 이름:
Webots용 동영상 튜토리얼 시리즈 (ROS2와 통합)
프로젝트 길이:
표준 기간 (3개월)

Project description

배운 점:

이 동영상 튜토리얼 시리즈를 통해 신규 사용자는 Webots를 최대한 효과적으로 시작할 수 있으며 시청자에게 특정 시뮬레이션을 실행하는 데 필요한 명확한 단계별 솔루션을 제공합니다.

목표:

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

동영상 시리즈 세부정보:

  1. ROS 2 설치 및 Visual Studio Code에서 저장소 설정 여기에는 ROS2의 명령어 기반 설치와 작동의 기본사항이 포함됩니다. 둘째, VS Code에서 ROS 워크스페이스를 설정하는 방법과 VS Code의 기본 탭 기능도 포함됩니다.

  2. 기본 ROS2 및 Webots 예시 Webots ROS2의 몇 가지 예시를 사용하여 시청자가 시뮬레이션을 위해 Webots와 함께 ROS2를 사용하면 어떤 놀라운 일이 일어날 수 있는지 이해하도록 유도합니다. 여기에는 ROS2와 웨봇 간 통신에 관한 기본적인 이론도 포함됩니다.

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

  4. ROS2 게시자를 통해 맞춤 로봇을 제어합니다. ROS2 게시자를 사용하여 Webots에 메시지를 게시하는 방법을 알아봅니다. 키보드 출력을 주제에 게시하여 로봇 모션을 제어하는 예시를 구현할 수 있으며, 그러면 ROS 서비스에서 Webots의 모션에 사용할 수 있습니다.

  5. ROS2 구독자를 사용하여 로봇의 의견을 가져옵니다. 이 동영상에서는 거리 센서의 센서 측정값을 구독하고 충돌하려는 로봇을 정지합니다. 따라서 기본적으로 이 노드는 양방향 메시지가 게시되는 장애물 회피 노드입니다.

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

  7. Rviz 설정 (다양한 센서 출력 표시). 이 동영상에서는 다른 센서를 몇 개 추가하고 Rviz에 데이터를 게시합니다. 이 동영상이 끝나면 시청자는 Rviz를 설정하고 (예: 시각화를 위해 Lidar, 카메라와 같은 센서 추가), 구성을 저장하고 다음에 저장된 구성을 스폰할 수 있습니다.

  8. 디버깅 동영상 (Rostopic echo, Rostopic 정보, RQT_graph) 이 동영상에서는 디버깅 기법을 이해하는 데 도움이 되도록 일부 주제의 의도적으로 잘못된 기능을 포함합니다. Google은 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번째 동영상의 연장선으로, 이 동영상에서는 모든 노드를 함께 실행하는 실행 파일을 만들고 rqt_graph를 검사하여 ROS 프레임워크의 개념을 올바르게 이해하는 방법을 설명합니다. 마지막으로 지도 서버를 사용하여 패키지에서 생성된 지도를 저장합니다.

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

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

결론:

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