전체 글 218

[C++] 02.28 review

try{throw()} catch(){}catch() 소괄호안에는 조건식이 들어갈 수 없다.catch(...)는 모든 예외를 다 받겠다는 의미assert는 개발 과정에서 조건을 검사하여 프로그램이 예상대로 동작하는지 확인하는데 사용한다.assert()의 조건식안에 들어간 식이 false일 경우만 프로그램이 즉시 종료된다.assert는 디버그 모드에서만 컴파일 된다.noexcept를 함수에 붙여주면 예외를 던지지 않겠다는 의미이다.throw으로 예외를 던졌는데도 예외를 받을 catch가 없으면 프로그램을 강제 종료하는데 이때 종료 처리 함수를 설정하는 것이 set_terminate() 함수이다.객체지향 프로그래밍의 핵심 개념클래스( Class ) : 객체를 정의하는 설계도객체( Object ) : 클래스로..

자율주행과 인공지능 02

RNN, Recurrent Neural Network 대표적인 딥러닝 모델 중 하나시계열 데이터 같은 순차 데이터( Sequential Data ) 처리를 위한 모델로 잘 알려짐순차 데이터의 대표적인 예시 :01 시계열 데이터 : 일정한 시간 간격을 가지고 얻어낸 데이터 Ex. 차량의 주행 속도와 가속도, 주변 장애물과의 거리 데이터를 시간에 따라 기록한 것02 자연어 데이터 : 사람이 말하는 언어 Ex. 차량이 음성 인식을 통해 운전자가 "왼쪽으로 가"라고 말했을 때, 이를 이해하고 적절히 반응하는 과정보행자의 의도를 예측 및 장애물 탐지자동차가 시간에 따라 움직인 데이터를 학습하여 미래의 경로를 예측--YOLO 단점을 보완한 것이 SSDObject Detection은 객체 분류( Clasificat..

[C++] 02.27 review

switch(var){} case 1: {} / for(i=0;i예외처리 try / catch / throw#include using namespace std;int divide(int a, int b) {    if (b == 0) {        // b가 0이면 예외를 발생시킴        throw "Error: Division by zero!";    }    return a / b;}int main() {    int num1, num2;    cout     cin >> num1 >> num2;    try {        // 예외 처리 구문        int result = divide(num1, num2);        cout     }    catch (const char* msg..

자율주행과 인공지능 01

인공지능 : 인간이 가진 지적 능력을 컴퓨터로 구현하는 기술머신러닝 : 컴퓨터가 스스로 학습하여 성능을 향상시키는 기술딥러닝 : 인공신경망 방식으로 정보를 처리하는 기술인공지능 ) 머신러닝 ) 딥러닝 순서위치추정 : 나는 지금 어디에 있는가?, 내 주변에는 무엇이 있는가?판단 : A에서 B까지 어떻게 가야 하는가? 머신러닝의 구분지도학습 : 알고리즘을 학습시킬 때 입력( 문제 ) 과 출력( 정답 )의 데이터들로부터 새로운 입력에 대한 출력을 결정할 수 있는 패턴을 추출분류 : 주어진 데이터를 정해진 카테고리( 라벨 )에 따라 분류하는 문제. 이진 분류 문제, 다중 분류 문제가 있다.회귀 : 어떤 데이터들의 feature을 기준으로 연속된 값 또는 그래프를 예측하는 문제비지도학습 : 정답이 없고 무엇을 할..

[C++] Review 02.26

구조체, struct를 사용하면 관련 값을 하나의 객체로 그룹화하므로 코드를 더 읽기 쉽고 유지, 관리하기 좋게 만들 수 있다. 함수에 전달할 argument가 많을 때 특히 유용하다.배열의 [ ] 안의 숫자는 배열의 크기를 의미한다. Ex. [3] 크기가 3개인 배열을 만들겠다는 의미문자열 작성은 라이브러리를 불러오고 큰따옴표 " " 로 문자열을 묶어야 한다.작은따옴표 ' '는 문자를 나타내는 데 사용한다. Ex. 'A'지역변수localVariable은 블록( 함수 ) 내에서만 효력 있음전역변수globalVariable은 해당 파일 전체에 효력 있음정적 변수 static 키워드를 변수 앞에 붙이게 되면 블록을 벗어나도 값이 유지됨상수 변수 const 키워드를 자료형 앞에 붙이면 해당 변수의 값은 변경..

[C++] Review 02.25

Keyword 란 특별한 의미로 미리 정의해 둔 식별자Literal이란 코드에 직접 표현된 변하지 않는 값으로, 예를 들어 int value = 5;에서 5와 같이 변수에 대입된 5, 'A', 3.14, true 등의 값들을 의미한다. 이는 char, int, double, bool 등의 기본 타입을 포함한 총체적인 개념이다.  비트 연산 AND > &, OR > |, XOR > ^bitset(a)>> 3 시프트 연산자, 오른쪽으로 3bit 만큼 시프트 ( 음수는 안됨 )포인터는 메모리 주소를 저장하는 변수// 포인터는 메모리 주소를 저장하는 변수, 타입과 변수 사이에 *을 넣음 // &는 변수의 주소를 얻는데 사용하는 연산자역참조 연산자 *은 포인터가 가리키는 메모리 주소에 저장된 값을 가져올 때 사용..

[Paper review] Hazardous Source Estimation and Autonomous Exploration Strategy with Guaranteed Communication Connectivity of Multiple UAVs

I. 서론01. 유해 물질 누출 근원지 추정기법 3가지 제안다수의 고정형 센서를 근원 예상지에 매설 >> 비용이 많이 듦, 매설지역 외 임의의 지점 사고 발생시 대처 어려움.누출 근원지에 사람을 파견 >>  추가적인 2차 사고 발생 가능.모바일-로봇 원거리 원격 조종 >> 통신 거리의 제약, 조종사 당 운용가능 로봇 개수의 한계 존재.무인이동체를 이용하여 위험 지역( Hazardous Source ) 에서 사람 대신 목표 탐색, 추적 기술은 세계적으로 관심을 받고 있음.02. 무인 이동체를 활용한 근원지 추정 방법미리 지정된 경로를 따라 센서 데이터 취득을 통한 근원지 정보 추정. >> 실시간 경로 계획이 아니므로 효율적인 탐색 불가.실시간 탐색 경로 생성 알고리즘, 반응형 알고리즘 ( 나방 등 생물의 ..

[SLAM] Monte Carlo, Markov Chain

베이즈 정리사건 B가 발생하여 사건 A에 대한 확률이 어떻게 변화하는지를 표현하는 정리> 현재 상황만 고려하여 계산하는 것이 아닌 사전확률을 이용하여 사후 확률을 예측하는 것 Markov Chain Monte Carlo, MCMC 마르코프 연쇄 몬테카를로 방법  Monte Carlo :  난수 시뮬레이션을 통해 특정 함수의 결과를 계산하는 통계학적 방법 > 랜덤하게 여러 번 시도해서 평균적인 답을 찾는 방법 Ex. 동전 여러 번 던져서 앞면 나올 확률을 아는 것  Markov Chain시간의 흐름에 따른 상태의 변화 과정을 확률로 표현> 현재 상태에 따라 미래 상황이 결정 되는 규칙

[SLAM] Feature, Keypoint, Descriptor, Robust feature

Feature : 영상에 존재하는 어떤 물체나 영역을 표현하거나 그것들을 식별이 가능하게 해주는 것 Keypoint, 특징점 : 관심 물체나 영역을 나타낼 수 있는 중요한 특징이 있는 위치 : 주변과 두드러진 포인트 되는 부분이 되어야 함 Descriptor, 기술자 :주변의 정보( 특징 )을 기반으로 특징점/영역을 설명하는 것 > 분별력이 좋은 특징을 사용하면 시각 기반 SLAM의 성능이 향상될 수 있다.--Robust feature이란 : 환경 변화에도 추출 가능하고 분별력이 유지되는 것- 카메라 시점이나 조명 등의 변화에도 지속해서 추출이 가능해야 함- 물체의 형태나 크기, 위치 변화가 발생하더라도 분별력이 유지되어야 함 매칭 :keypoint 또는 descriptor를 통하여 비교하고자 하는 위치..