분류 전체보기
-
사실 Point Cloud 의 포인트들은 다 연결되어 있습니다. 모든 물체가 바닥에 붙어 있기 때문입니다. 따라서 DBSCAN 을 적용하면 모두 연결되어 있기 때문에 다음과 같이 하나의 클러스터가 나옵니다. 따라서 바닥을 찾아서 없앨 필요가 있습니다. 바닥을 찾는 것을 Plane Segmentation 이라고 합니다. 이때 많이 사용하는 방식이 RANSAC 입니다. RANSAC 은 우선 샘플을 뽑고, 해당 조건을 가장 많이 만족하는 파라미터를 찾는 것입니다. 하지만 Plane Segmentation 에서 RANSAC 을 쓰는 경우에는 "1) 바닥은 하나 뿐이고 , 2) 바닥면이 가장 크다" 라는 가정을 전제로 하고 있습니다. 예를 들어, RANSAC 을 사용할 때는 벽면이 더 클 경우 벽면을 바닥이라고 ..
바닥을 찾아보자 - Plane Segmentation사실 Point Cloud 의 포인트들은 다 연결되어 있습니다. 모든 물체가 바닥에 붙어 있기 때문입니다. 따라서 DBSCAN 을 적용하면 모두 연결되어 있기 때문에 다음과 같이 하나의 클러스터가 나옵니다. 따라서 바닥을 찾아서 없앨 필요가 있습니다. 바닥을 찾는 것을 Plane Segmentation 이라고 합니다. 이때 많이 사용하는 방식이 RANSAC 입니다. RANSAC 은 우선 샘플을 뽑고, 해당 조건을 가장 많이 만족하는 파라미터를 찾는 것입니다. 하지만 Plane Segmentation 에서 RANSAC 을 쓰는 경우에는 "1) 바닥은 하나 뿐이고 , 2) 바닥면이 가장 크다" 라는 가정을 전제로 하고 있습니다. 예를 들어, RANSAC 을 사용할 때는 벽면이 더 클 경우 벽면을 바닥이라고 ..
2023.07.07 -
Point Cloud 에서 Object 혹은 Ground 를 찾아내는 과제에서는 다음과 같은 Clustering 알고리즘이 다양하게 사용되고 있습니다. Object 는 보통 바닥과 이어져 있기 때문에 바닥면을 찾고, 해당 바닥면을 제거하면 object 가 따로 따로 떨어지게 되어서 object clustering 을 하게 될 때 장점도 있습니다. Segmentation 과 Clustering 의 차이점 Segmentation 큰 그룹을 같은 특성을 가지는 작은 그룹으로 분할하는 것. - 모든 포인트들에 대해서 Classification 을 진행하는 것. Clustering 비슷한 애들끼리 뭉치는 것. (Identify hidden patterns or structures in the data and g..
Point Cloud 를 군집화해보자 - Clustering : K-means, DBSCANPoint Cloud 에서 Object 혹은 Ground 를 찾아내는 과제에서는 다음과 같은 Clustering 알고리즘이 다양하게 사용되고 있습니다. Object 는 보통 바닥과 이어져 있기 때문에 바닥면을 찾고, 해당 바닥면을 제거하면 object 가 따로 따로 떨어지게 되어서 object clustering 을 하게 될 때 장점도 있습니다. Segmentation 과 Clustering 의 차이점 Segmentation 큰 그룹을 같은 특성을 가지는 작은 그룹으로 분할하는 것. - 모든 포인트들에 대해서 Classification 을 진행하는 것. Clustering 비슷한 애들끼리 뭉치는 것. (Identify hidden patterns or structures in the data and g..
2023.07.06 -
Patchwork: Concentric Zone-based Region-wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor Hyungtae Lim, Minho Oh https://arxiv.org/abs/2108.05560 논문 선정 배경 : RELLIS-3D 데이터셋을 사용하여 3D point cloud segmentation 프로젝트를 진행하던 도중, 센서를 기준으로 2~3m 정도 벗어나면 포인트 클라우드가 너무 Sparse 해져서 segmentation 이 안 되는 문제가 있었습니다. 따라서 새롭게 구역을 분할하는 방법을 찾던 중, 이 논문이 1) 센서를 기준으로 동심원 모양으로 구역을 분할하는 적절한 ..
동심원 기반 Ground Segmentation 방법 제안 - PatchworkPatchwork: Concentric Zone-based Region-wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor Hyungtae Lim, Minho Oh https://arxiv.org/abs/2108.05560 논문 선정 배경 : RELLIS-3D 데이터셋을 사용하여 3D point cloud segmentation 프로젝트를 진행하던 도중, 센서를 기준으로 2~3m 정도 벗어나면 포인트 클라우드가 너무 Sparse 해져서 segmentation 이 안 되는 문제가 있었습니다. 따라서 새롭게 구역을 분할하는 방법을 찾던 중, 이 논문이 1) 센서를 기준으로 동심원 모양으로 구역을 분할하는 적절한 ..
2023.07.05 -
프로젝트에서 사용하고 있는 RELLIS-3D 데이터셋은 Warthog 로봇으로 획득한 것입니다. 따라서 실험 시뮬레이션도 Warthog 로봇을 사용했는데, 기본 세팅으로 센서가 정의되어 있기는 하지만 rostopic list 를 했을 때 아무 데이터도 볼 수 없었습니다. 따라서 Gazebo 에서 이 센서를 사용할 수 있도록 따로 설정해주어야 합니다. (사담 : 처음에는 Turtlebot3 를 사용했는데, 종잇장처럼 얕은 경사도 오르지 못 했기 때문에 사용할 수 없었습니다.) Gazebo 시뮬레이션 설정 ㄴ src ㄴ warthog_simulator ㄴ warthog_description ㄴ urdf ㄴ warthog.urdf.xacro 이 위치에 들어 있는 warthog.urdf.xacro 파일에 다음 ..
[RELLIS-3D] Gazebo Warthog 로봇에 IMU 탑재하기프로젝트에서 사용하고 있는 RELLIS-3D 데이터셋은 Warthog 로봇으로 획득한 것입니다. 따라서 실험 시뮬레이션도 Warthog 로봇을 사용했는데, 기본 세팅으로 센서가 정의되어 있기는 하지만 rostopic list 를 했을 때 아무 데이터도 볼 수 없었습니다. 따라서 Gazebo 에서 이 센서를 사용할 수 있도록 따로 설정해주어야 합니다. (사담 : 처음에는 Turtlebot3 를 사용했는데, 종잇장처럼 얕은 경사도 오르지 못 했기 때문에 사용할 수 없었습니다.) Gazebo 시뮬레이션 설정 ㄴ src ㄴ warthog_simulator ㄴ warthog_description ㄴ urdf ㄴ warthog.urdf.xacro 이 위치에 들어 있는 warthog.urdf.xacro 파일에 다음 ..
2023.07.05 -
초창기의 SLAM 은 주로 Filter 기반 (Kalman filter, Particle filter 등) 으로 수행되었지만 몇 년 전부터 Graph 기반 SLAM 으로 완전히 트렌드가 바뀌었습니다. Graph 기반 SLAM 에서 에러를 보정하기 위한 마지막 단계로 자주 수행되는 것이 Bundle Adjustment 입니다. Structure From Motion Structure from motion 은 2 장 이상의 이미지에서 대응점이 주어졌을 때, 3D 좌표와 카메라 파라미터 (여기서는 카메라 간의 Rotation / Translation) 을 구하는 것을 의미합니다. 이는 다음과 같은 과정으로 수행됩니다. 1. 같은 장면을 촬영한 이미지 여러 장을 모은다. 2. 특징점을 추출한다. (SIFT 등으..
Bundle Adjustment초창기의 SLAM 은 주로 Filter 기반 (Kalman filter, Particle filter 등) 으로 수행되었지만 몇 년 전부터 Graph 기반 SLAM 으로 완전히 트렌드가 바뀌었습니다. Graph 기반 SLAM 에서 에러를 보정하기 위한 마지막 단계로 자주 수행되는 것이 Bundle Adjustment 입니다. Structure From Motion Structure from motion 은 2 장 이상의 이미지에서 대응점이 주어졌을 때, 3D 좌표와 카메라 파라미터 (여기서는 카메라 간의 Rotation / Translation) 을 구하는 것을 의미합니다. 이는 다음과 같은 과정으로 수행됩니다. 1. 같은 장면을 촬영한 이미지 여러 장을 모은다. 2. 특징점을 추출한다. (SIFT 등으..
2023.07.03 -
Heightmap 은 지형의 높이 정보를 저장하는 이미지입니다. 이 이미지는 픽셀의 흑백 값으로 표현됩니다. 밝을 수록 지형이 높아지고, 어두울 수록 낮은 지형을 뜻합니다. Gazebo 시뮬레이터에서 정현파 (sine) 형태의 지면 생성하기 Gazebo world 의 sdf 파일에서는 Heightmap 을 이용해서 지형을 모델링할 수 있습니다. 1) Heightmap 사용을 위한 이미지 생성 import os import numpy as np from PIL import Image # 이미지 크기와 sin 함수의 주기, 진폭, 위상 등을 설정 width = 129 height = 129 period = 10 amplitude = 0.1 phase = 0 y, x = np.indices((height, w..
Height map 을 이용하여 Gazebo world 구성하기Heightmap 은 지형의 높이 정보를 저장하는 이미지입니다. 이 이미지는 픽셀의 흑백 값으로 표현됩니다. 밝을 수록 지형이 높아지고, 어두울 수록 낮은 지형을 뜻합니다. Gazebo 시뮬레이터에서 정현파 (sine) 형태의 지면 생성하기 Gazebo world 의 sdf 파일에서는 Heightmap 을 이용해서 지형을 모델링할 수 있습니다. 1) Heightmap 사용을 위한 이미지 생성 import os import numpy as np from PIL import Image # 이미지 크기와 sin 함수의 주기, 진폭, 위상 등을 설정 width = 129 height = 129 period = 10 amplitude = 0.1 phase = 0 y, x = np.indices((height, w..
2023.07.03 -
두 장의 이미지로 3D 를 복원하기 위해 알아야 하는 카메라 매트릭스 이미지를 통해서 3차원 포인트를 복원하기 위해서는 1) 2d 이미지 위 특징점 사이의 매칭 정보 2) 해당 카메라 pose 사이의 자세 정보 (Rotation / Translation) 정보 를 알아야 합니다. 이때 Epipolar Geometry 에 의해서 , P 점에 대응되는 매칭점의 후보군은 Epipolar Line 위에서 찾을 수 있습니다. Intrinsic , Extrinsic Matrix 카메라 파라미터는 Extrinsic Matrix, Intrinsic Matrix 로 구성됩니다. Extrinsic Matrix 는 World 좌표계의 3차원 포인트를 나의 카메라 좌표계로 옮기는 매트릭스입니다. 따라서 해당 Rotation ..
Essential Matrix 와 Fundamental Matrix두 장의 이미지로 3D 를 복원하기 위해 알아야 하는 카메라 매트릭스 이미지를 통해서 3차원 포인트를 복원하기 위해서는 1) 2d 이미지 위 특징점 사이의 매칭 정보 2) 해당 카메라 pose 사이의 자세 정보 (Rotation / Translation) 정보 를 알아야 합니다. 이때 Epipolar Geometry 에 의해서 , P 점에 대응되는 매칭점의 후보군은 Epipolar Line 위에서 찾을 수 있습니다. Intrinsic , Extrinsic Matrix 카메라 파라미터는 Extrinsic Matrix, Intrinsic Matrix 로 구성됩니다. Extrinsic Matrix 는 World 좌표계의 3차원 포인트를 나의 카메라 좌표계로 옮기는 매트릭스입니다. 따라서 해당 Rotation ..
2023.07.02