자율주행 40

Optimal frenet planning algorithm

Frenet Frame Figure (A) 은 Cartesian frame을 Figure (B)는 Frenet frame 을 표현 도로 형상의 방향으로 s-axis 가 도로와 수직방향으로 d-axis가 펼쳐져서 작관적이고 편리하다. 종방향, 횡방향, 속도를 각가 다른 polynomial 을 적용해서 풀어야 한다. 각각 다른 경로를 생성한다. 각기 다른 경로들을 합쳐야한다. Long 의 갯수와 lateral 의 갯수의 곱 만큼 경로를 뽑아내고 그중에 가장 조건에 알맞은 trajectory를 선택한다. 위에 언급한 조건들이다. 이것들을 만족하는 것들중 최적화된 path를 골라 내야한다. 횡방향 cost , 종방향 cost , 경로의 cosistency cost를 최소로 하는 최적화 문제를 풀어줘야 한다. 사..

Path Planning Algorithms

1. 다익스트라 알고리즘 2. A star algortihm 다익스트라 알고리즘에서 휴리스틱한 cost를 추가한것이다. 3. Weighted A star 알고리즘은 휴리스틱한 cost가 더 큰 알고리즘 , 휴리스틱 cost를 추가하는 이유는 좀더 빠르게 목적지 까지 path를 search 하기 위함임 빠른만큼 optimal path를 보장 할 수 없다. trade off 가 있다. 4. RRT Algorithm 아래의 과정을 목적지를 찾을떄까지 반복을 한다. 하지만 랜덤노드가 목적지에 떨어질 확률은 현저히 적기 떄문에 그 근처에 랜덤노드가 정해져서 패스를 찾게 되어도 종료하게 된다. 일종의 threshold 를 결정해줘야한다. 5. RRT star Algorithm 기존의 RRT와는 다르게 트리내의 노드..

MPC(model predictive control)

기본적으로 여러 정보를 바탕으로 미래에는 어떤 input sequence 를 가져야 reference path 에 도달 할 수 있는지 알려준다. 한번 만 하는게 아니라 반복적으로 조금씩 해내 나가는 것이다. 기존의 것들은 frequency domain 이었지만 MPC의 경우는 매 시간 term 마다 optimization problem 을 푸는 방식임으로 time domain이다. 기존의 PID Controller로 multiple input output system을 구축 하려면 서로의 input 과 output이 영향을 받는 경우가 있기때문에 구현 하기 힘들다. MPC controller는 그것들을 간소화 시켜서 해결해준다. acado toolkit 을 이용한 실습 1. git clone https:..

차량 모델링 (좌표계 ,Kinematic, Dynamic Mode

오른손 법칙을 따라서 하는것이 국룰이다. Plant == physical system that we want to behave in a certain manner. Position, Orientation , velocities form the states of the car (input). other things like car's mass , wheel diameter are parameter. Observer == Observers are used to convert meausrement into state estimates. how to best estimate the speed of car given the measurements of the rotational speed of the wheel...

슬라이딩 윈도우 기반 차선인식

1. Image Read == 카메라 영상신호를 이미지로 읽기 2. Warping == 원rms 변환으로 이미지 변형. 4점을 지정해서 저번에 했던 perspective 를 진행함 3. Gaussian Blur == 노이즈 제거 4. Threshold == 이진 이미지로 변환 , cvtColor 를 통해 BGR 을 HLS으로 포맷 변환후 이진화 처리 5. Historgram == 히스토그램에서 차선의 x 좌표 위치 추출 6. Sliding Window == 슬라이딩 윈도우 좌우 x 좌표에 9개 씩 쌓기 7. Polyfit == 2차 함수 그래프로 차선 그리기 8. 차선 영역 표시 == 원본 이미지에 차선 영역 겹치게 오버레이 #!/usr/bin/env python # -*- coding: utf-8 -*..

Rosbag file을 통해 비디오생성

1. rosbag 파일을 준비한다. 2. $rosbag play "준비된 rosbag파일" 을 실행한다. 3-1. $rosbag record -o cam_topic /usb_cam/image_raw 를 실행함으로서 특정 토픽(usb_cam/image_raw) 를 추출해와서 새로운 rosbag 파일을 생성한다. 3-2. $rosrun image_view video_recorder image:='/usb_cam/image_raw' _filename:='track2_tony.avi' _fps:=30 을 통해 비디오로 생성해줄수도 있다. callback 함수에서 bridge.imgmsg_to_cv2 함수를 통해서 주어진 msg 데이터를 opencv가 처리할수있게 변환해서 넣어줍니다. if cv_image.siz..