산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

시뮬레이션된 도시 환경에서 여러 상황에서 자율 주행 자동차를 위한 실시간 모션 계획

첨단 자율주행차는 자동차 산업에 있어 혁명적인 의미를 갖고 있습니다. 점점 더 많은 회사가 이미 자체 자율주행차를 만들기 시작했지만 아무도 실용적인 자율주행차를 시장에 내놓지 않았습니다. 그들의 자동차의 주요 문제 중 하나는 도시 환경을 위한 안정적인 능동 실시간 모션 계획 시스템이 부족하다는 것입니다. 실시간 모션 플래닝 시스템은 도시 환경에서 자동차가 안전하고 안정적으로 주행할 수 있도록 합니다. 이 프로젝트의 최종 목표는 사람이 아닌 자율주행 자동차의 사고율을 줄이기 위해 신뢰할 수 있는 실시간 모션 계획 시스템을 설계하고 구현하는 것입니다. 실시간 모션 플래닝 시스템에는 차선 유지, 장애물 회피, 움직이는 자동차 회피, 적응형 크루즈 컨트롤, 사고 방지 기능이 포함됩니다. 이 연구에서 EGO 차량은 이미지 처리 장치, LIDAR 및 환경을 감지하는 2개의 초음파 센서가 장착되고 제작될 것입니다. 이러한 환경 데이터를 통해 실시간 모션 계획 시스템에서 전체 제어 프로그램을 구현할 수 있습니다. 제어 프로그램은 축소된 도시 환경과 함께 축소된 EGO 차량에서 구현 및 테스트됩니다. 이 프로젝트는 EGO 차량 제작, 실시간 모션 계획 시스템의 제어 프로그램 구현, 축소된 도시 환경에서 테스트하여 제어 프로그램 개선의 3단계로 구분됩니다. 첫 번째 단계에서 각 EGO 차량은 EGO 차량 섀시 키트, Raspberry Pi, LIDAR, 2개의 초음파 센서, 배터리 및 전원 보드로 제작됩니다. 두 번째 단계에서는 실시간 모션 계획 시스템의 제어 프로그램이 Raspberry Pi의 차선 유지 프로그램으로 구현됩니다. Python은 프로그램을 구현하는 데 사용되는 프로그램 언어입니다. 차선 유지, 장애물 회피, 차량 이동 회피, 적응형 크루즈 컨트롤 기능이 이 제어 프로그램에 구축됩니다. 마지막 단계에서는 테스트 및 개선 작업이 완료됩니다. 신뢰성 테스트가 설계되고 이행될 것입니다. 테스트에서 더 많은 데이터를 수집할수록 실시간 모션 계획 시스템의 안정성이 더 많이 구현될 수 있습니다. 마지막으로 신뢰할 수 있는 모션 계획 시스템이 구축될 것이며, 이는 다음에서 사용될 것입니다.

도시 환경에서 사고율을 크게 줄이기 위해 일반 규모의 EGO 차량.

소개

컴퓨터가 운전 작업을 인계함으로써 운전자가 완전히 손을 놓고 눈을 떼지 못하게 하는 레벨 3 자율주행 자동차가 이미 시장에서 많이 생산되고 있습니다. 그러나 레벨 3 자동차는 인간의 운전 직업을 완전히 인수 할 수 없기 때문에 레벨 3 자율 주행 자동차를 운전하는 동안 소비자는 안전 문제로 인해 이러한 기능을 사용하는 데 제한이 있습니다. 따라서 대부분의 국가에서는 레벨 3 자동차가 완전히 안전하고 신뢰할 수 없다고 생각합니다. 레벨 3 자동차는 기술적으로 자율적일 수 있지만 컴퓨터는 아직 비상 사태를 처리하는 데 성숙하지 않습니다. 운전자를 신체적으로나 심리적으로 자유롭게 하려면 더 높은 수준(레벨 4)의 자율주행차가 필요합니다. 따라서 레벨 4 자율주행차를 제작하여 시장에 제공하는 것이 연구 우선순위입니다. 이를 실생활에 실용화하기 위해서는 많은 시스템이 갖춰야 하는데 그 중 하나가 실시간 모션 플래닝 시스템이다. 이미지 처리 장치, LIDAR 및 초음파 센서에서 처리된 신호를 수신하여 레벨 4 자동차에 많은 유용한 기능을 구현합니다. 예를 들면 안정적인 장애물 회피 기능 등이 있다. 그러나 문제는 이러한 자동차에 탑재되는 대부분의 기능이 여전히 수동적인 기능이며 고속도로 전용 설계에 불과하다는 점이다. 요컨대, 본 연구에서는 도시 환경에 대한 보다 스마트하고 안정적인 실시간 모션 계획 시스템을 설계하는 것이 필요하다. 이 연구는 실시간 모션 계획 시스템에서 알고리즘을 설계하고 테스트하기 위해 축소된 EGO 차량이 있는 축소된 도시 환경을 기반으로 합니다. 자동차 제어 로직과 신뢰할 수 있는 알고리즘은 도시 환경을 위한 스마트하고 안정적인 실시간 모션 계획 시스템을 설계하기 위한 핵심 포인트입니다. 프로젝트의 첫 번째 단계에서 하드웨어 팀은 구매한 하드웨어로 EGO 차량을 제작합니다. 각 EGO 차량은 차량 섀시 키트, Raspberry Pi, LIDAR, 2개의 초음파 센서, 배터리 및 전원 보드로 제작됩니다. 실시간 모션 플래닝 시스템 프로젝트의 두 번째 단계는 하드웨어 준비가 완료되면 시작됩니다. 제어 팀은 이미지 처리 팀에서 구축한 코드를 사용하여 차선 유지 알고리즘을 먼저 구축합니다. 차량의 실시간 모션 플래닝 시스템은 차선 유지 알고리즘이 구축된 후 구축됩니다. 실시간 모션 플래닝 시스템에서 LIDAR는 차량의 메인 센서로 사용될 것입니다. LIDAR가 장애물을 감지하고 후속 프로그래밍을 위해 사용 가능한 신호를 다시 보내는 데 사용할 수 있도록 하는 적절한 방법이 발견될 것입니다. 실시간 모션 계획 시스템 프로젝트에는 세 가지 주요 기능이 구축됩니다. 첫 번째 기능은 장애물 회피로 EGO 차량의 힘이 장애물 앞에서 멈출 수 있습니다. 두 번째 기능은 차량 회피 이동으로 EGO 차량이 차량 충돌 사고를 피하기 위해 차선을 변경하고 원래 차선으로 돌아갈 수 있습니다. 마지막 기능은 적응형 크루즈 컨트롤로 EGO 차량이 앞차와의 안전 거리를 유지하기 위해 자체 속도를 조정할 수 있습니다. 이 3가지 기능을 기반으로 실시간 모션플래닝 시스템에서 기본적인 사고회피 기능이 형성된다. 프로젝트의 마지막 단계에서 구축된 실시간 모션 계획 시스템은

축소된 도시 환경에서 EGO 차량을 구현하고 테스트합니다. 실시간 모션 계획 시스템의 신뢰성을 테스트하고 실시간 모션 계획 시스템의 향후 개선 사항을 요약하기 위해 여러 테스트가 설계될 것입니다.

하드웨어

그림 1의 축소된 EGO 차량은 이 프로젝트의 테스트 개체로 사용됩니다. 이 로봇은 DC 모터가 있는 로봇 섀시 키트를 기반으로 제작되었습니다. DC 모터가 있는 로봇 섀시 키트는 EGO 차량을 위한 사용 가능한 프레임과 구동 시스템을 제공합니다. 확장성을 기반으로 Raspberry Pi, 모터 회로, LIDAR, 2개의 초음파 센서 및 배터리 뱅크를 포함하는 다른 구성 요소를 섀시에 추가할 수 있습니다. Raspberry Pi는 성숙한 플랫폼이고 Python 코드를 구현할 수 있기 때문에 이 프로젝트의 컴퓨팅 플랫폼으로 선택되었습니다. 모터 회로는 DC 모터에 적절한 양의 전력을 분배하고 제어 로직의 명령에 따라 로봇을 움직이는 데 사용됩니다. LIDAR는 이러한 축소된 EGO 차량에 장애물 감지 능력(15cm 이상)을 가져올 수 있기 때문에 실시간 모션 계획 시스템의 주요 센서로 사용되며 장애물 감지 능력은 이 실시간 모션 플래닝 시스템의 가장 중요한 기본 기능입니다. 이 프로젝트의 모션 계획 시스템. 초음파 센서를 사용하면 EGO 차량이 LIDAR가 감지할 수 없는 15cm 범위 미만의 더 가까운 물체를 감지할 수 있습니다. 배터리 뱅크는 이러한 EGO 차량의 전원으로 사용되며 Raspberry Pi, LIDAR 및 모터에 전원을 공급할 수 있습니다. 자세한 하드웨어 연결 블록 다이어그램은 아래 그림 2에 나와 있습니다.

축소된 EGO 차량 섀시:

Adafruit(PID 3244) 미니 3층 원형 로봇 섀시 키트 – 그림 3의 DC 모터가 있는 2WD가 이 프로젝트의 섀시로 사용됩니다. 섀시의 확장성을 통해 구성 요소를 추가할 수 있습니다. 또한 섀시 키트에는 2개의 모터와 바퀴가 포함되어 있습니다. 즉, 이 키트에는 하나의 전원 시스템도 포함됩니다. 이 전원 시스템을 통해 하드웨어 팀은 로봇 섀시에 맞는 전원 시스템을 찾는 데 추가 시간 없이 쉽게 EGO 차량을 만들 수 있습니다.

라즈베리 파이:

이 프로젝트에는 여러 가지 Raspberry Pi 모델을 사용할 수 있으며 그림 4의 Raspberry Pi 3B+가 이 프로젝트에서 사용하도록 선택되었습니다. Raspberry Pi 3B+를 선택하는 주된 이유는 이 프로젝트에 충분한 컴퓨팅 성능이 있기 때문입니다. 또한 Wi-Fi가 내장되어 있어 Wi-Fi 전송 효율이 이전 모델보다 빨라졌습니다. 또한 Raspberry Pi 3B+는 5V/1.5A 전원 입력만 필요하며 시장에는 이 전원 요구 사항을 충족하기 위해 선택할 수 있는 배터리 뱅크가 많이 있습니다. 이것이 라즈베리파이 4가 선택되지 않은 이유이기도 하다. Raspberry Pi 4는 9V/2A 전원 입력이 필요하며 시장에서 배터리 출력 9V/2A는 비싸고 희귀합니다. 뿐만 아니라 라즈베리파이 4도 라즈베리파이 3B+보다 가격이 비싸고, 이 두 모델도 컴퓨팅 파워가 비슷하다. Raspberry Pi의 GPIO 핀은 두 개의 초음파 센서인 LIDAR에서 신호를 수신하기 위한 입력 핀으로 사용됩니다. 또한 GPIO 핀은 모터 드라이버에 신호를 보내기 위한 출력 핀입니다.

모터 드라이버 회로(전원 보드):

그림 3의 DRV8833 모터 드라이버가 이 프로젝트에 선택되었습니다. 모터 드라이버는 모터에 전력을 분배하고 라즈베리파이로부터 제어 명령을 받을 수 있습니다. 4개의 입력 핀(AIN1,2; BIN1,2), 4개의 출력 핀(AOUT1,2; BOUT1,2), 1개의 접지 핀(GND), 1개의 SLP 핀 및 1개의 VM 핀이 이 프로젝트에서 사용됩니다(그림 5). 출력 핀은 이 두 모터에 전력을 분배하고 EGO 차량이 움직일 수 있도록 이 두 모터를 제어하는 ​​데 사용됩니다. 입력 핀은 Raspberry Pi의 GPIO 핀에서 제어 신호를 수신하고 이 두 모터가 작업자의 필요에 따라 회전하도록 하는 데 사용됩니다. VM 핀은 VCC로 알려진 배터리 뱅크 '+' 핀에서 전원을 공급받습니다. SLP 핀은 VM 핀과 연결되며 모터 드라이버의 활성화 핀입니다. 활성화하려면 VCC에 연결하거나 제어를 위해 GPIO 하이 핀에 연결합니다. GND 핀은 배터리 뱅크 '-' 핀과 Raspberry Pi의 접지 핀을 모두 연결합니다. Figure 6은 Block Diagram 형태로 Power Board의 상세 결선을 보여준다.

PCB 보드는 모터 드라이버가 전원 보드를 만드는 플랫폼이 될 것입니다. 모터 드라이버는 이러한 PCB 보드 회로에서 쉽게 연결 및 제거할 수 있습니다. 이것은 PCB 보드에 모터 드라이버를 직접 납땜하는 것을 방지합니다. PCB 기판에 납땜된 모터 드라이버를 고정하는 과정은 이러한 회로로 PCB 기판을 고정하는 것보다 어렵기 때문에 이 절차를 통해 프로젝트 팀 구성원은 모터 드라이버를 PCB 기판에 직접 납땜하는 것을 피할 수 있습니다. (그림 7 및 그림 8)

라이다:

그림 9의 LIDAR가 이 프로젝트에 선택되었습니다. LIDAR는 주변 환경을 감지하여 거리 및 각도 데이터를 생성할 수 있으며, 이를 기반으로 EGO 차량은 감지 기능을 갖게 되며 실시간 모션 계획 시스템에 장애물 회피, 이동 차량 회피, 적응 제어 기능을 구축할 수 있습니다. LIDAR에는 Raspberry Pi에 직접 연결할 수 있는 1개의 마이크로 USB 포트가 있어 Raspberry Pi가 LIDAR에서 데이터를 읽도록 합니다. 또한 LIDAR는 동일한 USB 포트를 통해 Raspberry Pi에서 전원을 공급받습니다.

배터리:

배터리 뱅크의 크기는 이 프로젝트의 핵심 문제입니다. EGO 차량은 배터리를 넣을 수 있는 공간이 제한되어 있기 때문에 슬림형 배터리를 선택하는 것을 선호합니다. 배터리 뱅크는 모터 2개, Raspberry Pi 2개, LIDAR 1개가 각 EGO 차량에서 적절하게 작동할 수 있도록 최소 10000mAh 전력 용량이 있어야 합니다. 배터리의 크기도 가능한 한 EGO 차량의 크기에 맞아야 합니다. 따라서 그림 10에 표시된 Anker Power Core 13000 휴대용 충전기는 EGO 차량의 크기에 맞을 뿐만 아니라 13000mAh 전력 용량을 갖기 때문에 이 프로젝트에 선택되었습니다.

초음파 센서:

그림 11의 초음파 센서는 LIDAR의 최소 감지 거리가 15cm이고 15cm보다 가까운 다른 장애물은 LIDAR가 감지할 수 없기 때문에 가까운 거리를 감지하는 데 사용됩니다. 초음파 센서는 5cm 미만의 가까운 거리도 감지할 수 있습니다. 따라서 EGO 차량의 좌측과 우측에 2개의 초음파 센서가 조립되어 후진 차선에서 차량을 감지합니다. VCC 핀은 Raspberry Pi VCC 핀인 핀 2 또는 핀 4에 연결되고 GND는 Raspberry Pi 접지 핀에 연결됩니다.

소프트웨어

이 프로젝트에서 EGO 차량은 무선으로 제어되어야 합니다. 이를 가능하게 하려면 Raspberry Pi의 모니터와 셸이 로컬 PC/Mac에 무선으로 연결되어야 합니다. 이를 위해서는 무선 쉘 명령과 VNC 연결 소프트웨어[7]를 사용해야 합니다. 또한 이 프로젝트에서는 Python 3이 성숙하고 사용하기 쉽기 때문에 프로그래밍 언어로 선택되었습니다. 이 프로젝트에서 사용할 수 있는 python 패키지는 상당히 많습니다. 예를 들어 python에는 LIDAR를 제어하는 ​​데 사용할 수 있는 LIDAR 패키지[6]가 있습니다. 이 패키지는 이 프로젝트에서 사용됩니다. LIDAR 패키지는 Python 3 환경에서만 구현할 수 있습니다. 모든 소프트웨어는 Raspberry Pi의 Raspbian 운영 체제에서 실행됩니다.

Raspberry Pi의 Shell을 로컬 PC/MAC와 연결:


EGO 차량은 무선으로 제어되어야 하며 Raspberry Pi의 셸은 로컬 PC/MAC 셸에 연결되어야 합니다. 셸을 연결하려면 다음 명령을 입력해야 합니다.
먼저 Pi 셸에 'sudo raspi-config' 명령을 입력하여 Pi에서 ssh 서버를 활성화합니다. 그런 다음 Pi 셸에 'ifconfig' 명령을 입력하면 이 명령 다음에 IP 주소 '192.168.xxx.xxx'가 표시됩니다. 로컬 PC/MAC 셸에서 'ssh [email protected]' 명령을 입력하여 Pi 셸을 연결합니다. Raspberry Pi의 기본 사용자 이름은 'pi'이고 Raspberry Pi의 기본 암호는 'raspberry'를 입력해야 합니다. 마지막으로 Raspberry Pi 셸은 로컬 PC/MAC 셸에서 제어할 수 있습니다.

파이썬 버전:


라즈베리 파이 3B+ 버전 보드에서는 Python 2가 기본 프로그램 환경이지만 LIDAR 패키지는 Python3 환경에서만 사용할 수 있습니다. 다음 명령은 Python 3을 쉘의 기본 프로그램 환경으로 설정하는 데 사용됩니다.

먼저 'sudo rm /usr/bin/python'을 입력하여 시스템 기본값에서 기본 Python 링크를 제거합니다.

링크. 다음으로 'sudo

를 입력합니다.

-s /usr/bin/python3.X

새로운 재할당 명령

Python 버전에 대한 기본 Python 링크를 사용해야 합니다. 이 명령에서 'X'는 Python3을 의미합니다.

이미 설치된 버전입니다. 그런 다음 'Python'을 입력하여 기본 Python 버전을 다시 확인하십시오.

LIDAR 패키지:

LIDAR의 신호를 프로그래밍할 수 있도록 하려면 LIDAR 패키지를 설치해야 합니다. Python3 환경의 쉘 창에서 다음 명령을 입력하여 LIDAR 패키지를 설치합니다. 'sudo pip3 install LIDAR'를 입력하여 LIDAR 패키지를 설치합니다.

VNC 연결:

이 프로젝트에서는 로컬 PC/MAC에서 Raspberry Pi를 무선으로 모니터링할 수 있도록 VNC 서버 및 VNC 연결 프로그램을 사용하도록 선택했습니다. VNC 서버를 활성화하고 VNC 연결을 설치하려면 다음 명령어를 입력해야 합니다.
먼저 'sudo raspi-config' 명령어를 입력하여 라즈베리파이의 설정 메뉴로 들어갑니다. 그런 다음 'vncserver' 명령을 입력하여 Raspberry Pi에서 VNC 서버를 활성화합니다(Pi를 재부팅한 후 이 설정을 다시 활성화해야 함). 그런 다음 로컬 PC/MAC에 VNC 연결을 다운로드하여 설치합니다. 그런 다음 VNC 연결의 주소 표시줄에 이전에 찾은 Raspberry Pi IP 주소를 입력합니다. 쉘 부분에서 이미 언급한 Raspberry Pi의 사용자 이름과 암호를 입력합니다. 마지막으로 로컬 PC/MAC에서 Raspberry Pi를 무선으로 모니터링할 수 있습니다.

방법론

1단계:

EGO 차량은 Raspberry Pi, 전원 보드, LIDAR, 2개의 초음파 센서 및 배터리 뱅크로 조립됩니다. 조립 후 소프트웨어에는 python, LIDAR 패키지, VNC 연결이 포함되며 쉘 연결이 적절하게 설치 및 설정됩니다. 다음 단계 프로그래밍을 위해 읽을 수 있는 원시 데이터에서 사용 가능한 감지 데이터로 LIDAR를 전송하는 방법을 찾을 수 있습니다. EGO 차량은 이전 세 단계를 거쳐 준비되고 프로그래밍 및 테스트를 위해 준비됩니다.

2단계:

장애물 회피 기능, 이동 차량 회피 기능, 적응형 크루즈 컨트롤 기능을 테스트하기 위한 세 가지 시나리오가 설계됩니다. 세 가지 시나리오에 따라 세 가지 기능의 제어 논리가 설계되고 세 가지 제어 논리의 세 가지 순서도가 스케치됩니다. 순서도가 생성된 후에는 제어 논리가 논리적으로 세심해질 때까지 순서도를 여러 번 수정해야 합니다. 그런 다음 순서도를 통해 별도의 세 가지 기능의 프로그램과 알고리즘을 프로그래밍합니다. EGO 차량은 마지막 단계에서 세 가지 기능을 테스트할 준비가 됩니다.

3단계:

신뢰할 수 있는 테스트의 첫 번째 그룹은 세 가지 개별 기능을 사용하여 설계된 세 가지 시나리오에서 수행됩니다. 이러한 테스트를 통해 문제점과 향후 개선 사항을 찾을 수 있습니다. 다음으로 이러한 발견된 문제점과 향후 개선 사항에 따라 제어 논리, 3가지 기능의 프로그램, 알고리즘 및 하드웨어가 개선됩니다. 문제가 해결됩니다. 이 프로젝트를 위한 하나의 완전한 기능을 갖춘 실시간 모션 계획 시스템으로서 3개의 개별 기능이 차선 유지 프로그램과 결합될 것입니다. 두 번째 그룹의 신뢰할 수 있는 테스트는 이 이미 결합된 기능을 사용하여 설계된 세 가지 시나리오에서 수행됩니다. 두 그룹의 안정적인 테스트가 끝나면 이 프로젝트의 실시간 모션 계획 시스템의 최종 버전이 완성됩니다.

라이다

LIDAR에서 읽을 수 있는 데이터에는 4가지 유형이 있으며 이 프로젝트에서는 각도와 거리라는 두 가지 유형의 데이터만 사용합니다. 각도 측정은 도 단위 [0,360)이며, 거리 측정은 15cm보다 클 것입니다(다른 거리는 15cm보다 작으면 0 값이 다시 전송됩니다). 직면한 문제는 LIDAR에서 읽을 수 있는 거리 및 각도 데이터만 있는데 이 데이터를 장애물 감지에 어떻게 사용할 수 있습니까? 솔루션은 LIDAR 감지 범위를 4구간으로 나누고 장애물 거리 값을 감지하여 차량의 다음 단계 동작을 제어하는 ​​결정을 내리는 것입니다. 그림 12에서 보는 바와 같이 315도에서 45도까지는 전방, 135도에서 225도는 후방입니다. Lidar는 15cm 이상의 물체만 감지할 수 있기 때문에 현재로서는 이 두 부분만 사용합니다. 왼쪽과 오른쪽 섹션의 경우 초음파 센서가 이 두 섹션의 감지 작업을 처리할 수 있습니다.

다음은 두 개의 감지 섹션이 도로에서 작동하는 방식을 보여주는 그래픽입니다.

그림 13과 같이 오른쪽 차선을 주행 중인 EGO 차량과 후진 차선에서 차량 B를 주행하고 있습니다. EGO 차량 주변의 녹색 원은 앞에서 언급한 유효 감지 범위입니다. 감지 범위는 4 섹션으로 나뉘며 감지 거리는 15cm보다 큽니다. 테스트한 바와 같이 이 전방 감지 구간은 차량 B가 두 차선 사이의 점선을 넘어가지 않는 한 차량 B의 영향을 받지 않습니다.

문제 공식화

장애물 회피:

세 가지 시나리오가 고려되었습니다. 첫 번째 시나리오는 그림 14와 같은 장애물 회피 기능을 테스트하기 위한 것이다. 도로 한가운데에 장애물이 하나 있고 EGO 차량이 가까이 이동하고 있고 B 차량은 EGO 차량 바로 옆의 다른 차선에서 후진하고 있다. . EGO 차량은 B 차량과 충돌하기 때문에 사고를 피하기 위해 차선을 변경할 수 없습니다. 차량 A에게 남은 유일한 선택은 직면한 장애물 앞에서 완전히 정지하는 것입니다.

이동차 회피(또 다른 장애물 회피 시나리오):

두 번째 시나리오는 또 다른 장애물 회피 시나리오를 기반으로 설계되었으며 그림 15에서 이동 차량 회피 기능으로 명명되었습니다. 차량 B는 잘못된 방향으로, EGO 차량의 동일한 차선을 달리고 있습니다. 이번에는 다른 차선에 차량이나 장애물이 없으므로 EGO 차량은 차량 B를 피하기 위해 차선을 변경할 수 있으며 B 차량을 피한 후 EGO 차량은 올바른 차선으로 돌아갈 수 있습니다.

마지막 시나리오는 그림 16에서 적응형 크루즈 컨트롤 기능을 테스트하도록 설계되었습니다. 차량 B는 전진 방향으로 움직이고 있으며, EGO 차량은 사고를 피하기 위해 차량 B로부터 안전한 거리를 유지해야 합니다. EGO 차량은 안전 거리를 유지하기 위해 자체 속도를 조정합니다.

어댑티브 크루즈 컨트롤:

제어 논리

변수 정의:

장애물 회피 제어 논리:

장애물 회피 제어 논리는 그림 17에 나와 있으며, 거리 감지가 가장 먼 거리에 있으면 자동차가 계속 앞으로 나아갑니다. 거리 감지가 위험 거리에 있고 각도 감지에서 장애물이 전방 감지 섹션에 있음을 보여줍니다. 그러면 EGO 차량이 후진 차선을 감지하고 후진 차선에 장애물이나 차량이 있는 경우 EGO 차량이 완전히 정지합니다.

자동차 회피 제어 로직 이동:

움직이는 자동차 회피 제어 논리는 그림 18에 나와 있으며 거리 감지가 가장 먼 거리에 있으면 자동차가 계속 앞으로 나아갑니다. 거리 감지가 위험 거리에 있고 각도 감지에서 장애물이 전방 감지 섹션에 있음을 보여줍니다. 그러면 EGO 차량이 후진 차선을 감지하고 초음파 센서로 감지한 후진 차선에 장애물이나 차량이 없으면 EGO 차량은 잘못된 방향으로 가는 차량을 피하기 위해 후진 차선으로 변경합니다. 원래 차선에 장애물이나 차량이 없으면 EGO 차량이 원래 차선으로 다시 변경합니다.

적응형 크루즈 컨트롤 기능 제어 로직:

적응형 크루즈 컨트롤 기능 시나리오에서는 두 가지 문제에 직면하게 됩니다. 하나는 EGO 차량이 너무 빨리 움직이는 것이고 다른 하나는 EGO 차량이 너무 느리게 움직이는 것입니다. 그림 19는 어댑티브 크루즈 컨트롤 기능의 전체 제어 로직입니다.

<울>
  • 거리 감지가 미리 설정된 안전 거리 내에 있는 경우 EGO 차량은 전방 차량을 계속 따라갑니다.
  • <울>
  • 거리 감지가 가속 거리에 있으면 감지 범위가 전방 감지 구간인 경우에도 마찬가지입니다. 현재 속도는 현재 속도의 약 5%만큼 빨라집니다. 거리 감지가 사전 설정된 안전 거리에 있으면 다시 감지하십시오. 그러면 EGO 차량은 계속 앞으로 나아갈 것입니다. 그렇지 않은 경우 현재 속도는 현재 속도의 약 1% 속도를 높이고 거리 감지가 사전 설정된 안전 거리에 도달할 때까지 스캔을 유지하면 EGO 차량이 속도 향상 프로세스를 종료하고 현재 속도를 유지합니다.
  • 거리 감지가 감속 거리에 있는 경우, 감지 범위가 전방 감지 구간인 경우에도 마찬가지입니다. 현재 속도는 현재 속도의 약 5%만큼 느려집니다. 거리 감지가 사전 설정된 안전 거리에 있으면 다시 감지하십시오. 그러면 EGO 차량은 계속 앞으로 나아갈 것입니다. 그렇지 않은 경우 현재 속도는 현재 속도의 약 1%를 낮추고 거리 감지가 사전 설정된 안전 거리에 도달할 때까지 스캔을 계속하면 EGO 차량이 감속 프로세스를 종료하고 현재 속도를 유지합니다.
  • 결합된 제어 논리:

    다음은 이전 세 가지 제어 논리의 결합된 제어 논리에 대한 제어 논리 흐름도입니다.

    결합 논리에서 차선 유지 및 적응형 크루즈 컨트롤 프로그램은 변경되지 않습니다. 단, 장애물 회피 기능과 이동차 회피 기능은 하나로 통합될 예정이다. 이전에는 장애물 회피 기능으로 도로 한가운데에 있는 장애물에 의해 완전히 정지할 수 밖에 없었지만, 다음 제어 명령은? 이 기능은 다가오는 차를 추월하고 차선을 변경할 수 있는 이동차 회피 기능과 결합할 수 있습니다. 장애물 회피 기능에서 차량은 초음파 센서와 LIDAR를 사용하여 환경을 감지하고 장애물 앞에서 완전히 정지한 후 다른 차선에 다른 차량이 있는지 확인할 수 있습니다. 후진 차선에 차량이나 장애물이 없으면 차량은 장애물을 통과하여 계속 주행할 수 있습니다.

    결과

    이전 결과:

    EGO 차량은 사용하도록 선택한 하드웨어로 성공적으로 조립됩니다. 차선 유지 팀은 카메라의 신호를 사용할 영상 처리 팀의 작업을 기반으로 사용 가능한 차선 유지 프로그램을 성공적으로 구현했습니다. LIDAR 원시 데이터는 앞에서 언급한 프로그래밍 방법에 의해 사용 가능한 데이터로 적절하게 전송됩니다. 장애물 회피, 이동 차량 회피, 적응형 크루즈 컨트롤 기능이 있는 실시간 모션 플래닝 시스템은 차선 유지 프로그램을 기반으로 3개의 개별 제어 프로그램으로 구축되었습니다. 이전 테스트는 안정성을 테스트하기 위해 이 세 가지 개별 제어 프로그램을 기반으로 합니다. 안정성을 테스트하기 위해 함께 결합하는 것이 개별적으로 테스트하는 것보다 어렵기 때문입니다. 장애물 회피 기능이 잘 작동하면 EGO 차량이 미리 설정된 장애물 앞에서 강제로 멈출 수 있습니다. 하지만 EGO 차량은 2개의 Raspberry Pi 보드와 1개의 LIDAR, 때로는 EGO 차량으로 인해 너무 무겁습니다.

    무게가 무거워서 넘어집니다. 이동차 회피 기능에서 차선 변경 논리는 잘 작동하지만 회피 경로가 예상과 정확히 일치하지 않습니다. EGO 차량에 2개의 초음파 센서를 추가해야 EGO 차량이 15cm 미만의 물체, 특히 왼쪽과 오른쪽의 장애물을 감지할 수 있습니다. 어댑티브 크루즈 컨트롤 기능에서 거리조절 컨트롤 프로그램이 동작하는데, 거리조절 과정에서 EGO 차량의 속도가 예상대로 안정적이지 않습니다. 그 이유는 어댑티브 크루즈 컨트롤의 제어 로직이 동일한 속도로 차량의 속도를 높이고 감속하도록 하기 때문입니다. 어댑티브 크루즈 컨트롤 기능의 제어 로직에 더 스마트한 거리 조정 알고리즘이 추가되어야 합니다.

    기대 결과:

    이전 테스트의 테스트 결과 후 제어 프로그램과 EGO 차량에 몇 가지 개선 사항이 적용되었습니다. 첫째, EGO 차량의 무게와 높이를 줄여 넘어질 위험을 줄였습니다. 다음으로, 2개의 초음파 센서와 동반 프로그램이 이동 차량 회피 제어 프로그램에 추가되어 EGO 차량이 EGO 차량과의 왼쪽 및 오른쪽 물체 거리에 대해 보다 정밀하게 감지할 수 있게 되었습니다. 그런 다음 어댑티브 크루즈 컨트롤 부분에 하나의 스마트한 거리 조정 알고리즘이 추가되었습니다. 이전 제어 로직과 달리 하나의 가속 및 감속 알고리즘이 추가되었으며 EGO 차량은 요구에 따라 현재 속도의 1% 또는 현재 속도의 5%로 가속 및 감속할 수 있습니다. 마침내 이 세 가지 기능이 이 프로젝트의 실시간 모션 계획 시스템의 최종 버전으로 차선 유지 프로그램과 결합됩니다.

    첫 번째 개선을 위해 EGO 차량의 무게와 높이가 줄어들어 뒤집힐 위험이 크게 줄어듭니다. EGO 차량의 무게 감소는 Force Stop 과정에서 EGO 차량의 관성력을 감소시킵니다. 뉴턴의 운동 제2법칙에 따르면 관성력은 물체의 질량에 대한 가속도 시간과 같습니다. 이전과 동일한 가속 속도로 EGO 차량의 질량(중량)을 줄이면 EGO 차량이 견디는 관성력이 크게 감소하기 때문입니다. 이렇게 하면 강제 정지 과정에서 직접 뒤집힐 위험이 줄어듭니다. 또한 높이 감소는 무게 중심 위치를 감소시킵니다.

    또한 EGO 차량의 뒤집힘 위험을 줄일 수 있습니다. 이전에는 EGO 차량 상단에 또 다른 Raspberry Pi 보드가 있었는데 이를 제거하면 EGO 차량의 무게 중심 위치가 감소하게 됩니다. 그 이유는 간단합니다. EGO 차량의 무게 중심 위치가 안정성에 영향을 미칩니다. 무게 중심 위치가 낮을수록 EGO 차량이 더 안정적입니다. 따라서 첫 번째 개선 사항은 물체 회피 기능이 적용된 과정에서 넘어질 위험을 성공적으로 줄였습니다.
    두 번째 개선 사항을 위해 EGO 차량에 2개의 초음파 센서를 추가하여 좌우를 감지했습니다. -EGO 차량까지의 측면 물체 거리. 이전 테스트에서는 LIDAR가 EGO 차량과 15cm 이내의 물체를 감지할 수 없기 때문에 EGO 차량이 EGO 차량까지의 왼쪽 및 오른쪽 물체 거리를 감지할 수 없었습니다. EGO 차량에 2개의 초음파 센서가 추가되고 이동차 회피 기능의 제어 로직이 추가되면 EGO 차량은 후진 차선으로 변경하는 동안 훨씬 더 정확한 경로로 주행하고 원래 차선으로 다시 변경할 수 있습니다. 이전에는 LIDAR가 환경 감지 장비만 이동 차량 회피 기능에 사용할 수 있으며 이동 차량 회피 경로가 미리 설정되어 있습니다. EGO 차량은 앞에 물체(자동차)가 있으면 미리 설정된 경로를 따라 주행할 수 있습니다. 이것이 바로 개선 이전에 회피 경로가 될 수 없는 이유이다. 개선 후 EGO 차량은 EGO 차량까지의 왼쪽 및 오른쪽 물체 거리를 감지합니다. EGO 차량은 LIDAR가 감지한 전방 물체가 있으면 차선 변경을 위한 회피 프로세스를 시작하고 초음파 센서는 양측 물체 거리를 감지하기 시작합니다. 초음파 센서가 EGO 차량까지 10cm 미만의 물체가 없다는 것을 감지하면 EGO 차량은 드라이브 백 프로세스를 시작하여 원래 차선으로 돌아갈 수 있습니다. 간단히 말해서, 두 번째 개선 사항은 EGO 차량이 이동하는 자동차 회피 프로세스 동안 더 정확한 경로를 갖도록 합니다.
    마지막 개선을 위해 하나의 더 스마트한 거리 조정 알고리즘이 추가됩니다. 이 알고리즘은 설정 속도가 더 이상 고정 값이 아니라 동적 값이 되기 때문에 EGO 차량의 속도를 높이고 감속하는 과정을 이전보다 원활하게 만듭니다. 이전 테스트에서는 알고리즘이 충분히 스마트하지 않기 때문에 자동차는 미리 설정된 고정 속도 값의 속도를 높이고 감속할 수만 있습니다. 어댑티브 크루즈 컨트롤 프로세스가 원활하지 않고 EGO 차량이 앞차와의 거리 조정 과정에서 유선으로 보입니다. 적응형 크루즈 컨트롤의 제어 프로그램에 더 스마트한 알고리즘이 추가된 후 EGO 차량은 현재 속도의 1% 또는 현재 속도의 5%로 속도를 높이고 감속할 수 있으며 프로세스는 이전보다 더 원활할 것입니다. 그 이유는 속도가 현재 속도를 기반으로 동적으로 조정되고 속도가 연속적이고 약간의 변동이 있기 때문에 EGO 차량이 더 부드럽게 가속 및 감속하기 때문입니다. 즉, 마지막 개선 사항은 어댑티브 크루즈 컨트롤 기능에서 거리 조정 과정에서 EGO 차량의 주행을 더 부드럽게 만듭니다.

    실시간 모션 계획 시스템에서 3가지 기능의 3가지 개별 제어 프로그램을 3가지 개선한 후, 이 3가지 개별 제어 프로그램을 차선 유지 프로그램과 결합하여 최종 실시간 모션 계획 시스템을 생성합니다. 이 세 가지 개별 제어 프로그램은 이러한 개선 사항에 따라 훌륭하게 작동하므로 차선 유지 프로그램은 이들과 쉽게 결합될 것입니다. 차선 유지 프로그램이 추가되면 EGO 차량은 차선을 그대로 주행하고 선을 넘지 않습니다. 축소된 도시 환경에서 EGO 차량이 이전보다 더 안정적으로 주행할 수 있도록 합니다.

    향후 개선

    이 프로젝트에서 많은 미래 개선 측면을 상상할 수 있습니다. 첫째, 실시간 모션 플래닝의 기능이 충분하지 않습니다. In the future, there are many ways to combine and improve these three functions makes the EGO vehicle have more and more functions, to generate a real-time motion planning system in fully functional. Secondly, the algorithm of lane keeping, adaptive cruise control, and moving car avoidance are not smart enough. There exists more advance algorithm for these three functions need to be found. For example, even the distance detection algorithm in adaptive cruise control already has been improved, however, there is still have possibility to improve the algorithm. Currently, the speed adjustment is based on five percent

    of current speed or one percent of current speed, however, the speed adjustment is not dynamically. If there is an algorithm of memory for saving current speed or speed calculation based on distance and time can be added, then, the adaptive cruise control will be prefect. Also, multiple EGO vehicle driving on the same scaled-down urban environment, and EGO vehicle communication system need to be added in the real-time motion planning system to manage the traffic. In short, there will be a lot of aspects in the real-time motion planning system need to be improved in the future work.

    결론

    Hardware and software are assembled and set appropriately in this project. The LIDAR raw data are appropriately transfer to usable data by the previous mentioned method for programing. Three different scenarios have been designed for testing obstacle avoidance function, moving car avoidance function, and adaptive cruise function. The control logic based on obstacle avoidance scenario, moving car avoidance scenario, and adaptive cruise control scenario have been designed and programmed. If the test results as expect, the real-time motion planning system has been implemented and works perfect in these three scenarios. However, the current real-time motion planning system is not perfect yet, it needs more works and more times to improve it. These three functions are the most basic function in real-time motion planning system. The final goal is to make this EGO vehicle has accident avoidance function; however, these three functions cannot let the EGO vehicle has the fully functional accident avoidance function. Apply permutations and combinations of these three basic functions will generate more possibility, which will bring a lot of different new functions in the real-time motion planning system.

    Acknowledgements

    First and foremost, I would like to show my deepest gratitude to my research advisor, Dr. Lisa Fiorentini, who has provided me with valuable guidance in every stage of the project and writing of this thesis. Without her instruction, kindness and patience, I could not have completed my thesis. I shall extend my thanks to my mom for all her encouragement and mental help. The work of last two semesters exhausted me, since I have onerous courses, individual research, and written work for applying graduate school. Without her encouragement and mental help, I cannot stick to now. Finally, I would like to thank all my friends, for their encouragement and support.

    Reference

    <올>
  • Aqib, “What is Raspberry pi? Getting Started with Raspberry Pi 3,” Electronics Hobbyists, 18-Jan-2019. [Online]. Available:https://electronicshobbyists.com/tutorial-1-what-is-raspberry-pi-getting-started-with- raspberry-pi-3/. [Accessed:25-Apr-2020].
  • Adafruit Industries, “Mini 3-Layer Round Robot Chassis Kit – 2WD with DC Motors,” adafruit industries blog RSS. [Online]. Available:https://www.adafruit.com/product/3244. [Accessed:25-Apr-2020].
  • Adafruit Industries, “Adafruit DRV8833 DC/Stepper Motor Driver Breakout Board,” adafruit industries blog RSS. [Online]. Available:https://www.adafruit.com/product/3297. [Accessed:25-Apr-2020].
  • T. Huang, “RPLIDAR-A1 360°Laser Range Scanner _ Domestic Laser Range Scanner,” SLAMTEC. [Online]. Available:https://www.slamtec.com/en/Lidar/A1. [Accessed:25-Apr-2020].
  • “PowerCore 13000,” Anker. [Online]. Available:https://www.anker.com/store/powercore- 13000/A1215011. [Accessed:25-Apr-2020].
  • “Welcome to lidar’s documentation! ¶,” Welcome to lidar’s documentation! – lidar documentation. [Online]. Available:https://lidar.readthedocs.io/en/latest/. [Accessed:25-Apr-2020].
  • “RealVNC,” Download VNC Viewer for macOS | VNC® Connect. [Online]. Available:https://www.realvnc.com/en/connect/download/viewer/macos/. [Accessed:25-Apr-2020].
  • Adafruit Industries, “HC-SR04 Ultrasonic Sonar Distance Sensor 2 x 10K resistors,” adafruit industries blog RSS. [Online]. Available:https://www.adafruit.com/product/3942. [Accessed:25-Apr-2020].

  • 제조공정

    1. SmartThings용 모션 센서로서의 컴퓨터 비전
    2. 라즈베리 파이용 DIY 적외선 모션 센서 시스템
    3. Donkey Car Garbage Collector를 위한 자율 주행 AI
    4. 유지 관리 계획:귀하에게 어떤 도움이 됩니까?
    5. 자율적인 미래를 위한 준비
    6. 플랫폼 카트의 다중 사용
    7. 자율주행 기술을 위한 3D 모션 트래킹 시스템
    8. 냉동 및 난방에 대한 실시간 피드백을 위한 자율 센서 기술
    9. 직선 운동용 헬리컬 기어 랙
    10. 자동차용 터보차저를 선택하는 방법은 무엇입니까?