[Apollo] Quick Start Guide
Apollo
Baidu사에서 만든 오픈소스 자율 주행 플랫폼
Homepage : https://apollo.auto/
GitHub : https://github.com/ApolloAuto/apollo
YouTube : https://www.youtube.com/channel/UC8wR_NX_NShUTSSqIaEUY9Q
환경 설정
그래픽 드라이버 설치
Sotftware & Update 에 진입한다.
자신에게 맞는 NVIDIA 드라이버를 선택 후 “Apply Changes” 를 클릭하여 설치 한다.
Apollo master 브랜치를 사용하는 경우에는 NVIDIA Ampere (30x0) GPU를 지원합니다.


터미널 창에 “nvidia-smi” 를 입력하여 정상 설치 되었는지 확인한다.

Morai SIM
현재 “Jeju-Airport”, “2017_KIA_NIRO, 2017_hyundai_solati_h350” 차량만 지원

MORAI SIM Network 설정
Frame Rate Setting
Apollo로 전송되는 데이터의 Frame을 변경 가능
Target Frame은 “30”로 설정 해준다.
IP Setting
Host, Destination IP 설정 가능.
Local에서 동작 하고자 한다면 Host IP, Destination IP 모두 127.0.0.1로 설정한다.
아래 PORT 번호는 수정하지 않고 사용.
설정을 마친 후 Apply를 클릭해 적용한다.
적용을 마친 후 키보드의 “P” 버튼을 눌러 Parking 모드로 변경 해 둔다.
Cmd Control
Host, Destination IP 설정.

Publisher, Subscriber
Frame Rate, IP Setting 설정.



GT data
obstacles, traffic light

Apollo 실행
Apollo에 관한 자세한 설명은 아래 URL을 참고 한다.
환경 설정
Repositoty clone
위 Repository 에서 master branch 를 clone 한다.
MORAI에서 제공하는 Repository는 21.12.08 일의 Apollo master branch를 Fork 후 MORAI SIM과 연동할 수 있는 Bridge 코드를 추가
Apollo 공식 Repository가 아닌 MORAI에서 제공하는 Repository 에서 git clone 하여 테스트
Docker 설치
clone이 완료 되었으면 install_docker.sh 을 실행하여 도커를 설치한다.
cd /apollo/docker/setup_host chmod +x install_docker.sh ./install_docker.sh sudo groupadd docker sudo usermod -aG docker $USER
CODE
NVIDIA Container Toolkit 설치
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get -y update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
sudo reboot
Apollo Docker 진입
$APOLLO_ROOT_DIR
에서 아래 명령어를 입력한다.dev_start.sh 쉘 파일을 실행하기 위해서는 유선 인터넷이 연결 되어 있어야 한다.
./docker/scripts/dev_start.sh
./docker/scripts/dev_into.sh
Network 세팅
Apollo → Morai SIM 으로 Control cmd를 전송하는 “remote_ip”는 기본 “127.0.0.1” 으로 설정 되어 있다.
다른 PC에서 실행 하고자 한다면 “remote_ip” 변경 필요.

Map 추가
jeju map을 “apollo/modules/map/data/” 경로에 넣고 압축을 풀어준다.
apollo/modules/map/data/Jeju_Airport/맵파일 로 구성되도록 한다.
Car 차량 추가
“apollo/modules/calibration/data” 내에 아래 파일 압축 해제
Apollo Build
아래 명령어를 통해 Apollo를 빌드 한다.
./apollo.sh build_opt_gpu
Apollo 세팅 및 주행 테스트
Morai SIM 통신
통신을 위한 launch 파일 실행
cyber_launch start modules/bridge/launch/morai_bridge.launch
CODEcyber_monitor를 이용하여 실행이 잘되었는지 확인한다.
cmd 창에 “cyber_monitor” 명령어 입력
Cyber Developer Tools - cyber monitor에 대한 자세한 사용법은 아래를 참고한다.

Dreamview 실행
아래 명령어 입력
./scripts/bootstrap.sh
Dreamview 설정
dreamview 실행 코드를 입력 후에 크롬을 이용하여 주소창에 “localhost:8888”을 입력하여 접속한다.
위와 같은 화면을 확인 하였으면 우측 상단의 설정 창을 이용하여 아래 와 같이 설정해 준다.
사용하고자 하는 차량과, 맵을 선택한다.

DreamView
DreamView 설정 방법
Module Controller 탭을 클릭하여 열어준다.
기본적으로 GT 데이터를 사용하여 목적지 까지 가고 자 한다면 Control, Localization, Obstacle GT_data, Planning, Prediction, Routing, Traffic Light GT_data, Transform을 클릭하여 동작 시켜 준다.
Obstacle Perception을 이용하고자 한다면 Velodyne 128ch 을 연결 후 Obstacle Perception 버튼을 클릭하여 동작 할 수 있다.
다음과 같이 RTK Localization 되는 것을 확인 할 수 있다.

경로 설정
왼쪽편의 Route Editing을 선택
아래와 같은 화면을 확인한다.
마우스의 휠을 이용하여 지도를 축소한뒤 원하는 목표지점을 선택 후 상단의 “Send Routing Request”를 클릭한다.
다시 왼쪽의 메뉴 중 “Tasks” 를 선택하여 경로가 생성된 것을 확인 한다.
Morai SIM 으로 돌아와서 키보드의 “q” 키를 클릭 해 자율주행 모드로 변경한다.
Dreamview, Morai SIM에서 목표지점으로 가는 것을 확인한다.
Sensor 설정
Lidar Velodyne 128ch

Velodyne 128ch을 원하는 위치에 추가한다.
카메라에 대한 설정을 마친 후 자신의 네트워크에 맞게 Host IP, Destination IP를 설정한다.
Host Sensor Port : 2369, Destination Port : 2368 로 설정 한다.
설정을 마친 후 “Connect” 버튼을 클릭하여 연결한다.
DreamView의 Module Controller창에서 Velodyne 128ch 모듈을 클릭하여 동작 시켜준다.
Velodyne 128ch 연동 확인
Cmd 창에 “cyber_visualizer” 를 입력하고 실행하여 준다.
cyber_visualizer
CODE상단의 “Show PointCloud” 버튼을 클릭하여 “PointCloud2” 채널을 생성한다.
“ChannelName”을 선택한 뒤 “/apollo/sensor/lidar16/PointCloud2”를 선택한다.
아래와 같이 PointCloud가 출력되는 것을 확인한다.

Camera

카메라를 원하는 위치에 추가한다.
카메라에 대한 설정을 마친 후 자신의 네트워크에 맞게 Host IP, Destination IP를 설정한다.
Host Sensor Port : 15009, Destination Port 15019 로 설정 한다.
Traffic light Perception을 이용하려면 해상도를 1920x1080으로 사용하여야 한다.
설정을 마친 후 “Connect” 버튼을 클릭하여 연결한다.
Sim Frame이 30 이하인 경우 통신이 끊길 수 있음
DreamView의 Module Controller창에서 Camera 모듈을 클릭하여 동작 시켜준다.
Camera 연동 확인 - 1

Dreamview 하단의 Camera Sensor 스위치를 클릭하면 우측 하단에서 카메라 영상을 확인 할 수 있다.
Camera 연동 확인 - 2
cyber_launch start modules/bridge/launch/morai_bridge_camera.launch
CODE위 명령어 입력 (위 명령어를 통해 Bridge 연결 시 “cyber_visualizer”로 연동 확인 가능)
cmd 창에 “cyber_visualizer” 명령어 입력
“Add Image” 를 클릭하여 카메라를 추가
Camera0 의 채널을 “/apollo/sensor/camera/image” 로 선택 후 “Play” 버튼을 클릭한다.
DreamView의 Module Controller - Camera 모듈과 동시에 작동 할 수 없다.
Morai SIM의 camera영상은 “/apollo/sensor/camera/front_6mm/image/compressed”로 전송하고 있다.

Camera 영상 정상 출력 확인
