학습 로드맵(Road-map)
저작권 : 쿼드(QUAD) 드론연구소 https://cafe.naver.com/maponarooo
Last updated
저작권 : 쿼드(QUAD) 드론연구소 https://cafe.naver.com/maponarooo
Last updated
완전한자율비행드론으로 가기 위한 시작은 EKF와 PID가 잘 튜닝된 수동 비행 드론을 제작하는 것 입니다.
EKF와 PID가 잘 튜닝된 수동 비행 기체를 실내에서 자동 호버링이 가능한 UAV로 전환하는 단계 입니다.
멀티콥터는 자율 비행이 가능할 때 UAV 또는 드론이 됩니다. 일반적으로 이것은 가속도계 및 자이로 정보를 가져와 기압계 및 GPS 데이터와 결합하여 비행 컨트롤러가 방향뿐만 아니라 위치도 이해하도록 하는 것을 의미합니다.
ROS가 아닌 일반적인 환경에서 드론이 자동으로 비행하며 드론의 위치와 속도, 자세를 프로그래밍으로 제어할 수 있도록 합니다.
ROS(1)에서 MAVROS를 이요한 프로그래밍 기법을 학습 합니다.
PX4 MAVROS 프로그래밍 기초 교재
샘플 프로그램 분석 1
샘플 프로그램 분석 2
MAVROS 샘플 코드 github
라인 팔로우 예제
사람 팔로우 예제
MAVROS 컨트롤 라이브러리
PX4는 ROS2에서 MAVROS(2) 보다는 micro-ros-agent를 이용한 microORB 프로그래밍사용을 권장 합니다.
PX4 ROS2 MAVROS 프로그래밍
PX4 ROS2 uORB 프로그래밍 이해
PX4 uORB Python 샘플 프로그램 이해
PX4 uORB Python 사각형 비행 예제
PX4 uORB Python 원주 비행 예제
Rviz2 시각화 가이드
PX4 에서는 자율회피비행을 위한 ROS(1) 패키지(PX4-Avoidance)를 제공하고 있습니다. 이를 이용하여 미션, 오프보드 비행 중에 SLAM, 자율회피 비행을 할 수 있습니다.
PX4-Avoidance는 Global-Planner에서 Octomap 기반의 SLAM을 사용 합니다.
PX4-Avoidance with ROS 설정 방법
경로계획 알고리즘(Path-Planning) 이해하기
Local_Planner & Global_planner ROS Source
(PX4-Avoidance Git 소스는 제대로 실행이 되지 않습니다. 쿼드(QUAD) 드론연구소에서 수정 보완한 개발 소스 입니다.)
참고 자료
1. PX4-Avoidance ROS 소스 수정본다운로드:
2. Avoidance Gazebo World 다운로드:
PX4-Avoidance 외에 다른 공개 소프트웨어의 경로계획 및 SLAM 알고리즘을 PX4와 함께 사용해 봅니다.
SLAM(Simultaneous Localization and Mapping) 알고리즘은 드론이 주변 환경을 매핑하면서 동시에 자신의 위치를 추정할 수 있게 해주는 기술입니다. 이러한 기술은 드론이 GPS 신호가 약하거나 없는 실내 환경에서도 자율 비행을 가능하게 합니다. 여기 몇 가지 주목할 만한 오픈소스 SLAM 알고리즘을 소개합니다:
ORB-SLAM2 (Oriented FAST and Rotated BRIEF SLAM)
ORB-SLAM2는 카메라만을 이용하여 환경을 매핑하고 위치를 추정하는 효율적인 SLAM 시스템입니다. 단일 카메라, 스테레오 카메라, 그리고 RGB-D 카메라를 지원합니다. 이 시스템은 특히 시각적 특징 기반의 SLAM에서 높은 정확도와 효율성을 자랑합니다.
RTAB-Map (Real-Time Appearance-Based Mapping)
RTAB-Map은 RGB-D, 스테레오, 그리고 단일 카메라 센서를 지원하는 또 다른 SLAM 솔루션입니다. 이 알고리즘은 대규모 환경에서도 장기적인 자율 비행을 가능하게 하는 루프 클로징 및 그래프 최적화 기능을 제공합니다.
LSD-SLAM (Large-Scale Direct Monocular SLAM)
LSD-SLAM은 단일 카메라를 이용하여 환경의 반밀도 3D 맵을 생성할 수 있는 SLAM 시스템입니다. 이 알고리즘은 이미지의 세밀한 픽셀 수준 변화를 직접 추적하여 고정밀 매핑을 달성합니다.
Cartographer
Google에서 개발한 Cartographer는 2D 및 3D SLAM을 지원하는 라이브러리로, 레이저 스캐너(LIDAR)와 같은 센서 데이터를 기반으로 실시간으로 환경을 매핑하고 위치를 추정합니다. 다양한 로봇 플랫폼에 적용 가능하며, 드론에도 사용될 수 있습니다.
OpenVSLAM
OpenVSLAM은 다양한 카메라 타입(단일, 스테레오, RGB-D)을 지원하며, 모듈화가 잘 되어 있어 사용자가 쉽게 자신의 프로젝트에 맞게 수정할 수 있는 범용 SLAM 프레임워크입니다. 확장성과 이식성에 중점을 둔 설계가 특징입니다.
VIO(Realsense T265 카메라)를 이용한 non-GPS 호버링 가이드
Q250-V3 옵티의 옵티컬플로우 실내 호버링 가이드
픽스호크 드론 프로그래밍의 가장 핵심인 MAVLINK를 이해 합니다.
MAVLink Python Sample 프로그램을 이해 합니다.
MAVSDK Python 프로그래밍 가이드
OFFBOARD 모드에 대한 이해 (중요!!!)
MAVSDK 샘플 프로그램을 이해 합니다.