목록SLAM (17)
Priceless

환경Ubuntu 18.04, ROS RealSense D435if RealSenseROS에서 Realsense를 사용하기 위해 Realsens SDK를 설치해야 한다https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy?tab=readme-ov-file ROS 버전에 맞는 RealSense ROS 패키지를 설치한다Ubuntu 18.04이므로 ROS melodic에 맞는 버전이 설치될 것이다sudo apt-get install ros-$ROS_DISTRO-realsense2-camera 이후 설치된 라이브러리를 쓸 수 있도록 빌드한다~/.bashrc에 저장하면 더욱 좋을 것이다sudo apt-get install ros-melodic-rtab..

환경HWPC: Lattepanda SigmaLidar: Livox Mid-360 SWOS: Ubuntu 20.04ROS Noetic ~/catkin_ws/src 디렉토리에서 진행한다 FAST-LIO를 실행하기 위한 라이브러리 요구사항은 아래와 같다. Livox ROS Driver 설치참고https://github.com/Livox-SDK/livox_ros_driver2 livox lidar를 ROS에서 사용하기 위해 SDK를 설치한다cd ~/catkin_ws/srcgit clone https://github.com/Livox-SDK/livox_ros_driver2.git ws_livox/src/livox_ros_driver2 ROS Noetic을 사용하므로ROS1에 맞게 빌드한다.cd ~/catkin_..

Bundle Adjustment(BA) N-view geometry There are N frames Triangulation에서 수행했던 2 view geometry가 아닌 n개의 이미지를 사용한 N view image이다 여러 개의 frame이 있고 각 프레임마다 relative motion(rotation and translation)을 가지고 있다 frame마다 correspondence를 가지고 있으며, Landmark의 3D 위치도 알고 있으며, 하나의 landmark에는 두 개 이상의 2D to 3D correspondence를 가지고 있다 로봇이 이동하면서 frame마다의 motion과 observation에서 발생하는 noise가 쌓여 나타난 uncertainty를 해결하기 위해 batc..

Least Squares(최소자승법) SLAM 정의(복습) 동시적 위치 추정 및 지도 생성 Least Squares 정의 SLAM에서 사용하는 최적화 방법론 중 하나이다 최적화는 우리가 정답을 찾지 못하는 상황에서 모든 방정식에 대해 가장 적은 error 값을 찾는 수학적 기법이다 error 값을 제곱한다 비교적 높은 error 값들은 더 크게 다뤄지므로 제곱 값을 줄이는 기법이 최소자승법이다 최소자승법은 over-determined system의 해를 푸는 방법으로 미지수의 개수보다 방정식의 개수가 더 많을 경우를 나타낸다 SLAM은 항상 이러한 시스템에 있다 하나의 상태 x를 추정하기 위해 실제 측정 값 z를 통해 f(x)를 예측하고 이 값을 통해 상태를 예측한다 센서로부터 발생한 노이즈와 측정한 값..

Perspective N Points PnP Problem 정의 n개의 데이터에서 2D 데이터와 3D 데이터 간의 correspondence가 주어졌을 때 world-to-camera transformation을 추론하는 문제이다 카메라가 3D 맵을 바라볼 때 correspondence를 구했다면 이 정보를 가지고 현재 카메라 pose를 추정한다 이 중 몇 개의 correspondence를 사용하냐에 따라 n의 수가 달라진다 이미지로부터 feature를 뽑고 map과 매칭하면서 map에 대해서 나의 위치를 찾을 수 있다 Localization과 관련있다 pnp는 3D point x가 담고 있는 descriptor들과 현재 뷰에서 보이는 descriptor들을 매치해서 2D to 3D corresponde..

General Triangulation Motivation 개요 VSLAM을 통해 map 생성과 localization을 동시에 할 수 있는데 F 행렬과 E 행렬을 통해 두 이미지 간의 상대적인 이동치를 추정할 수 있다 위치 추정을 할 수 있다 3D 구조로 복원하기 위해서는 Triangulation이 필요하다 두 이미지 간의 상대적인 회전 값을 알고 feature 간의 correspondence를 알고 있을 때 실제 point가 있는 위치의 x,y,z 좌표 값을 알 수 있다 이를 통해 2d 에서 3d 로 매핑이 가능하다 서로 매치된 feature에서 나온 ray를 연결하면 하나의 3d 포인트에서 만난다 triangulation을 통해 두 쌍의 correspondence를 구해 두 개의 3d point를 ..

Outlier Removal Data Types of data - Inlier data: 정상 범위 내의 데이터 - outlier data: 정상 범위 밖의 데이터 두 데이터를 구분하기 위해 에러 값만으로는 판단할 수 없다 노이즈가 높을 수 있다 혹은 완전히 잘못된 과정으로 모은 데이터라도 올바르게 나타날 수 있기 때문이다 왼쪽 Point에 F 행렬을 곱하면 epipolar line이 나타난다 초록색 점은 유사도가 높으며, 빨간색 점은 유사도가 낮다 F를 통해 유사도를 검증할 수 있다 F를 통해 추론했을 때는 부정확할 수 있으므로 데이터만을 통해 어떤 매치가 옳은지 확인하기 위해 F 행렬을 통해 검증한다 이미지에서 Outlier가 나타나는 원인으로는 갑작스러운 밝기 변화, 움직임 등으로 깨끗한 이미지를 ..

2개 이상의 이미지가 필요한 이유 2D -> 3D mapping 3D를 2D로 매핑하는 과정은 사영을 통해 구현할 수 있다 하지만 3D로 매핑할 경우를 Depth 값을 고려해야 한다 새로운 차원(깊이)에 대한 정보가 필요하기 때문에 이미지가 한 장이 아닌 두 장이 필요하다 핵심 문제 Visual SLAM을 위해서 이미지 프레임마다 카메라가 얼마나 이동했는지 알아야 한다 이미지부터 이미지 사이에 얼마나 이동했는지 카메라 프레임의 rigid body motion, 즉 pose 이동을 구해야 한다 모션 정보가 있으면 알 수 있지만 VSLAM에서는 정보가 없기 때문에 영상정보로부터 모션 정보를 추론해야 한다 두 개의 이미지로부터 모션 정보를 추론하기 위해 두 이미지 간의 기하학적 상관 관계를 유추해야 한다 Ep..

feature-based SLAM을 공부하기 위해서는 특징점에 대해 잘 알아야 한다 Computer vision 핵심 문제 특징점을 어떻게 잘 찾느냐 당시의 효율성을 가진 컴퓨터를 가지고 Lines Detector Sobel operator Hough transform Canny edge detection Line detection research 라인을 검출할 수록 물체의 의미를 추론할 수 있는 단서가 생겼다 라인을 검출한 사진들의 시차, 각도가 크게 다를 때 어떻게 같은 객체인지 알 수 있을까 Feature Detector Point feature Keypoint detector keypoint는 관심을 가지는 지점이다 Descriptor extractor(특징 기술자) descriptor는 우리가 ..

카메라 빛을 정확하게 받아오는 카메라가 좋은 카메라이다 Steps to capture light 포토 다이오드 센서를 통해 빛을 받아들이고 발생한 전압을 통해 디지털 신호로 변환한다 Light -> Color filter -> Photodiode -> Voltage/Current -> Analog to digital convertor 이후 들어온 Intergrated Signal Processor(ISP)에서 원본 데이터 RAW 파일을 sRGB scale로 변환한다 사진사들의 작업 파이프라인으로 카메라에 들어오는 광량을 조절한 후 이미지 센서에 들어오는 값을 저장한다 이후 후보정을 통해 원하는 이미지를 만들 수 있다 카메라 내부 파이프라인으로 렌즈에 빛이 들어오면 센서를 통해 디지털 신호 값을 받아온다 ..