본문 바로가기

분류 전체보기

(10)
3차원 회전 및 자세표현_오일러각 1. 고정된 두 축에 대하여 강체를 동시에 회전하는 것은 불가능하다. 2. 종속관계에 있는 두 축에 대하여 강체를 동시에 회전하는 것이 가능하다. 3. 순간적인 강체의 회전을 고정된 두 축에 대한 회전으로 표현하는 것은 가능하다. -----> 고정점에 대하여 회전하는 물체는 순간적으로 한 축에 대한 회전으로 나타낼 수 있다. 4. 자세 표현이란? - 회전을 나타내는 대표적인 방법으로 방향코사인 행렬, 오일러각, 쿼터니언이 있음 5. 임의의 한 축에 대한 회전 -물체의 자세는 임의의 한 축과 그 축에 대한 회전각으로 모두 표현 가능 6. 오일러 각 (그 중 롤-피치-요 표현) yaw축은 기준 좌표계의 yaw축과 평행 pitch축은 yaw축에 대하여 종속 roll은 pitch에 대하여 종속 -고정된 3축에 ..
k-d tree _ Euclidean clustering - Euclidean clustering이란 데이터간 거리가 일정거리 이하이면 하나의 군집으로 묶는 알고리즘이다. 하지만 이를 아무런 전처리 없이 구현하면 모든 데이터간 거리를 계산해야 한다. 하지만 데이터를 필요에 맞게 구조화 시키면 모든 데이터간 거리를 계산하지 않아도 Euclidean clustering이 가능해진다. 데이터 구조화 방법 중 하나로 k-d tree가 있다. - k-d tree란 이진 탐색 트리를 k차원으로 확장한 데이터 구조로, 삽입시 데이터는 각 차원을 번갈아 비교하여 트리구조에 저장된다. - k-d tree 구성 : 트리를 구성하는 방법에는 여러가지가 있는데, 균형 잡힌 k-d 트리를 만들기 위해 중앙값을 사용하는 방법이 있다. 2D의 경우 구성 단계는 다음과 같다. 1) 데이터..
Visual studio 2019 _ DLL 만들기 1. 새 프로젝트 만들기에서 DLL(동적 연결 라이브러리)를 선택한다. 2. DLL 프로젝트 폴더를 만들 경로를 설정한다. 3. 다음과 같이 소스 파일과 헤더 파일이 기본적으로 생성되어 있다. 4. 소스 파일과 헤더 파일을 새 항목으로 만든다. (이름은 아무렇게나 해도 됨) 5. 헤더 파일에 다음과 같은 코드를 넣는다. ----- dll 프로젝트를 빌드할 때 MAKEDll_EXPORTS가 정의된다. (속성->전처리기에서 확인 및 변경 가능) ----- 따라서 dll 파일을 만들때는 __declspec(dllexport)가 사용되고 ----- dll의 함수를 다른 프로젝트에서 사용할 때는 __declspec(dllimport)가 사용된다. 6. 헤더 파일에 사용할 함수들을 선언한다. ----- extern..
LIDAR_지면제거 이 글은 지면제거 알고리즘 목록을 단순히 정리한 것으로, 구체적인 구현방법은 추가로 찾아봐야함 1. Kraus filter (interpolation-based filter) (Kraus et al., 1998) 1) 포인트 클라우드를 격자로 분할한 후 각 격자 내에 포함된 데이터에 동일한 가중으로 최소제곱 근사를 수행하여 초기표면을 추정 2) 초기표면 윗부분에 존재하는 점 들에는 낮은 가중, 아랫부분의 점 들에는 높은 가중 부여하며 최소제곱 근사 반복 수행 발전 -> Hui(et al.,2016)는 기존 형태학적 필터 알고리즘과 다중레벨 보간 알고리즘을 결합 2. ATIN : Adaptive TIN (Axelsson, 2000) 1) 포인트 클라우드에서 지면점을 분류할 영역을 선택한다. 2) 선택된 영..
PCL 설치 및 사용법 pcl은 point cloud library로 point cloud 처리에 대한 기능들을 제공한다. https://github.com/PointCloudLibrary/pcl/releases 위 주소에 접속해서 최신버전을 다운받는데, 가장 위의 AllInOne만 다운받는다. (필요한 부분만 선택적으로 다운받을 수 있지만 직접 빌드해야 하는 등 좀 더 복잡하다.) 설치 시 다음과 같은 화면이 나오면 Add PCL to the system PATH for all users를 선택한다. (전체 사용자에 대하여 환경변수 설정이 이루어짐) 다운로드가 끝나면 다음과 같이 환경변수 설정을 해준다. 1. 내pc 속성->고급 시스템 설정->고급->환경변수 2. 아래 그림의 과정 진행 빌드를 위하여 Cmake를 다운받는다...
베이즈 필터 분할 : 전확률 공식 : 베이즈 정리 : -추가설명 : 베이즈 정리에서 분모 항은 Ak와 무관하다. 이 때문에 분모 항을 정규화 항이라고 하며, 보통 η로 표시한다. 베이즈 필터 알고리즘 : $x_{t}$=시간 t에서의 스테이트의 실제 상태 $u_{t}$=시간 t에서의 제어값 $z_{t}$=시간 t에서의 측정값 $bel(x_{t})$=$x_{t}$의 빌리프 3행 - 현재의 제엇값과 바로 이전의 빌리프를 이용해 현재 스테이트의 예측값을 계산 (예측 단계) 4행 - 3행에서 계산한 빌리프와 측정값이 나타날 확률을 이용해 현재 스테이트의 빌리프를 계산 (측정 업데이트 단계) 이 때, 빌리프는 가능한 모든 스테이트에 대한 빌리프를 모두 구한다(여기서 빌리프들은 η에 대한 함수로 나타남). 그 후, 모든 빌리프들..
횡방향 모델_선형회귀분석 최소제곱법 : 어떤 데이터들의 해방정식을 근사적으로 구하는 방법으로 아래 오차항을 최소로 만드는 β를 찾는 것 선형 회귀분석 : 아래와 같이 β항에 대한 선형식으로 회귀식을 모델링한 후 β항을 추정하는 것 최소제곱법을 이용한 선형회귀모델 추정 : R-squared score : 회귀 모델식이 데이터를 얼마나 잘 설명하고 있는지에 대한 계수 횡방향 모델_선형회귀분석 : 1. 아래 미분방정식으로부터 수치해석을 통해 데이터를 얻음 2. 얻은 데이터들을 최소제곱법을 이용하여 12차 다항식으로 피팅하고 다항식의 미분을 통해 미분 데이터를 얻음 3. 최소제곱법을 이용하여 미분방정식으로 부터 Kf, Kr, I 의 값을 추정 -----> 제일 아래의 오차항을 따로 만들어 풀지 않고, 미분방정식을 Kf, Kr, I 에 ..
OS_1 몇 가지 개념들 1. 레지스터 / CPU 캐시 ● 레지스터 - CPU 내부에서 연산에 사용하는 데이터를 저장하는 메모리 ● CPU 캐시 - 메인 메모리 접근을 빠르게 하기 위해 CPU 내부나 바로 옆에 탑재하는 작은 메모리 (메인 메모리의 입출력 병목현상 해소) 2. 프로그램 / 프로세스 / 스레드 ● 프로그램 - 컴퓨터에서 특정 작업을 수행하는 일련의 명령어들의 모음 ● 프로세스 - 연속적으로 실행되고 있는 프로그램 (실행을 위해 시스템(커널)에 등록된 작업) ● 스레드 - 프로세스 내에서 실행되는 흐름의 단위 3. 동시성 / 병렬성 ● 동시성 - 여러 개의 작업을 빠르게 바꿔가며 하나씩 수행하는 것 (논리적 개념) ● 병렬성 - 여러 개의 작업을 동시에 수행하는 것 (물리적 개념) 4. (선점형 OS..
ODE 수치해석 (1) 1. Euler's Method 2. 수정된 Euler's Method 3. 4계 Runge–Kutta method 4. Runge-Kutta Fehlberg method 예제1) 10y''+0.5y+2y=1 / h=0.01 --------------------> 오차 값에 따라서 h 간격을 키우거나 줄일 수 있다. 예제2) 2자유도 선형 자전거 모델 (Runge-Kutta Fehlberg method 사용) / h=0.001 kf=30000N/rad kr=35000N/rad izz=1600kg/m^2 lf=1m lr=1.5m m=1590kg --------------------> 그래프의 모양은 V에 따라 달라지고 스케일은 스티어에 따라 달라지는 모습을 보임 위에 몇가지 예제를 풀어봤는데, 이 방법들은..
차량의 횡방향 동적 특성 차량은 타이어의 접속상태가 확실한 구속상태라고 가정하면 차량의 조향각과 회전반경과의 관계를 기하학적으로 정의할 수 있다. 그러나 실제 주행환경에서는 위의 공식이 맞지 않는데, 그 이유는 타이어에 슬립현상이 일어나기 때문이다. 위 그림은 주행 시 타이어의 슬립앵글을 나타내는 그림이다. 차량의 조향제어시 노면과 타이어의 접지부가 변형되고 그에 따라 타이어의 순간속도는 타이어가 바라보는 방향에서 조금 어긋난 방향을 향한다. 이때 생기는 각도 오차를 슬립앵글이라고 한다. 저속주행시에는 슬립앵글이 크지 않아서 타이어의 접속상태가 확실한 구속상태라고 가정해도 되지만, 고속주행시에는 슬립앵글이 무시할 수 없을 만큼 커지기 때문에 슬립앵글에 따른 보상을 해주어야한다. 위 그림은 슬립앵글과 타이어에 작용하는 횡력 사이의..