
스테레오 비전 소개두 장의 영상으로 3차원 영상정보를 얻을 수 있음 하나의 영상만으로는 실제 월드좌표 X가 image plan의 점 x를 지나는 선 위에 존재한다는 것만 알 수 있다. 별도 추가 카메라를 이용한다면 두 직선의 접점을 구할 수 있기때문에 X를 특정할 수 있다. = Triangulation 월드좌표 X에 대응되는 x(카메라C)와 x'(카메라C') 정의 사전에 두 카메라에 대한 카메라 매트릭스 P 구해야함.C와 x를 잇는 직선(ray)과 C' 와 x'를 잇는 직선의 교차점을 구하면 되는데 실제로는 노이즈가 있음.기존 식인 x = PX에 scale을 추가해 x = aPX 처럼 표현하고 같은 방향 벡터 외적은 0이므로? X에 대한 계산식을 유도할 수 있다?$ \begin{bmatrix}x \\y ..
raspbian buster(10) os 라즈베리파이 3B+ROS1 실행을 위함와이파이를 겨우 연결했다.. 우분투나 최신 라즈비안 os 같은 경우 와이파이 세세한 설정이 가능한데 옛날 os를 라즈베리파이에 설치하다보니 첫 단추부터 진이 빠진다.우선 기존 우분투에서 eduroam 와이파이에 연결하려면 TLS 터널링 클릭 -> 인증기관 인증서 불필요 체크 -> 학교 웹메일 아이디 입력 -> 비밀번호 입력 하면 연결된다.하지만 라즈베리파이 (라즈비안 10 버전?) 의 경우 해당 와이파이를 클릭하기도 전에 eduroam 와이파이가 비활성화 되어있었다. 때문에 터미널창에서 수동으로 연결하는 방법밖에 없었다. 다만 검색해도 일반적으로 만 입력하는 경우가 대다수였고 학교 와이파이같은 특수한 경우는 별로 없었다.우..

ROS는 2007년 스탠포드 대학 AI LAB의 프로젝트에 사용된 인공지능 로봇의 개발을 위해 만든 Switchyard 에서 시작했다. 그리고 2008년 로봇 전문 기업 윌로우게러지가 이어받아 ROS라는 이름으로 개발하기 시작했다. 2010년 ROS Box Turtle이라는 이름으로 첫 ROS가 릴리즈되었고 새로운 버전이 이어지고 있다. 현재는 OSRF(Open Source Robotics Foundation)이 관리를 맡고 있으며 오픈 소스로 공개되어 있다. ROS1은 개발 당시 단일 로봇, 리눅스 환경, 실시간 제어 불가능, 안정된 네트워크 환경, 연구용 등과 같은 제한 사항이 있었다. 때문에 새로운 개발 환경이 요구되면서 ROS2가 개발되었다. ROS1과 비교하여 ROS2에는 다음과 같은 특징이 있..

Euclidean coordinate vs Homogeneous coordinate (평행이동 변환 예시)유클리드 좌표 상 2차원의 한 point는 실수 쌍 (x, y)로 표현된다. Homogeneous 좌표는 쉽게 말해 하나의 좌표를 추가해 (x,y,1) 와 같이 표현하는 것이다.homogeneous 좌표에서 scale은 무시되기에(x,y,1)과 (2x,2y,2)는 같은 point를 의미하며 더 나아가 (kx,ky,k) 또한 같은 point를 표현한다. 때문에 역으로 유클리드 좌표를 구하기 위해서는 (x,y,w) 형태의 좌표를 끝 자리 수인 1로 나누어 (x/w,y/w,1) 형태로 만들고 유클리드 좌표인 (x/w,y/w)를 도출할 수 있다.이처럼 2차원 공간에 대한 좌표를 투영(사영) 공간(projec..
`rotate_right` 함수rotate_right 함수AVLNode *rotate_right(AVLNode *parent){ AVLNode* child = parent->left; parent->left = child->right; child->right = parent; // 새로운 루트를 반환 return child;}parent의 left를 child라 명한다. child의 right를 parent의 left로 이동시킨다.child의 right로 parent를 이동시킨다.회전된 child 노드를 반환한다.마지막 부분을 보면 child->right = parent;기존의 child가 parent 자리로 가고 parent가 child의 오른쪽으로 가야하기에 이해가 쉬움하지만 왜 parent->lef..
">정렬 알고리즘에는 다양한 방법들이 있는데 이에 대해 알아보려고 한다.기초적인 알고리즘으로 삽입정렬, 선택정렬, 버블정렬, 퀵정렬, 힙정렬, 합병정렬 등이 있으며단순한 방법부터 알아보겠다.단순한 방법선택정렬 selection sort구현방법concept: n개의 원소를 가진 배열 list[]가 있다고 가정하자. 가장 작은 값부터 순차적으로 앞쪽으로 보낼 것이다.반복문으로 배열을 순환하며 가장 작은 값을 꺼내 list[0] 값과 교환한다.다시 정렬되지 않은 나머지 배열을 순환하며 그 중 최소값을 꺼내 list[1] 과 교환한다.이를 반복하며 n-1번 반복하면 정렬이 완료된다.#define SWAP(a, b, t) ((t)=(a), (a)=(b), (b)=(t))void selection_sort(int ..
인터럽트를 사용하지 않으면 반복문을 통해 항상 체크를 해야할 것이다. 이를 Pollng 방식이라하며 I/O의 요청을 주기적으로 탐색하는 SW 적인 방법이다. 인터럽트를 알기 전까지는 그렇게 해왔지만 이는 메모리 낭비이며 다른 일을 수행하지 못하도록 하는 원인이다.이번에는 인터럽트를 사용하기 위해서 어떤 레지스터를 다뤄야할지 정리해보려고 한다. NXP사의 S32K144 보드를 사용하며 Keil로 코딩한다.흐름알아볼 예제로는 스위치 입력이 들어왔을 때 인터럽트를 사용하여 7-segment를 제어할 것이다. PORT_init 함수에서 segment 출력을 설정할 것이고, 스위치를 입력으로 설정하면서 어떤 트리거로 인터럽트를 실행할 것인지 설정한다.NVIC init 함수에서 특정 인터럽트를 활성화하고 pendi..
목표이번 시간에 진행한 실습은 UART 통신이다.키보드로 입력한 값을 터미널에 띄우고 값에 해당하는 색을 LED로 표시하려고 한다.main 함수가 있는 파일에서 아래와 같은 파일을 include 할 것이다.#include "device_registers.h" #include "clocks_and_modes.h"#include "LPUART.h"LPUART.c 파일LPUART.h 헤더파일에는 함수가 선언되어있고 함수들은 LPUART.c에 정의되어있고UART를 초기화하고 터미널로 문자를 출력하는 함수가 있다.LPUART1_initclock 설정, BAUD rate 설정, CTRL 설정 등 UART를 사용하기 위한 초기 설정을 위한 함수LPUART1_transmit_charchar 자료형을 ..
- Total
- Today
- Yesterday
- 네이버페이
- 리브모바일
- 북문
- 오블완
- 배송기간
- a모바일
- 알뜰폰요금제
- 계산방법
- 알뜰 요금제
- 타란튤라
- 카카오페이
- 파스타
- 문서 스캔
- 알리익스프레스
- 교체
- 카시오
- 메쉬 밴드
- 리브엠
- 티스토리챌린지
- 방어동작
- 시계 줄
- 할인
- 맛집
- 10만포인트
- Liiv M
- f-94w
- 경북대
- mealy
- 방향장
- f-91w
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |