# Tuto installer Apollo
###### tags: `tutorials` `apollo` `C2C` `Carla`
**Machine optimale** --> boot Linux/Ubuntu avec carte graphique
**VM ubuntu** --> 100Go de mémoire, 8000 Mo de mémoire vive et 4 processeurs
https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_software_installation_guide.md
https://blog.csdn.net/JeSuisDavid/article/details/120154997
***Prérequis***
`curl https://get.docker.com | sh`
`sudo systemctl start docker && sudo systemctl enable docker`
***Téléchargement depuis github***
`git clone https://github.com/ApolloAuto/apollo.git`
`cd apollo`
`git checkout master`
***Build***
`sudo systemctl stop docker` (on arrête le docker pour pouvoir lancer le docker daemon)
`sudo dockerd` (dans un autre terminal)
`bash docker/scripts/dev_start.sh` (en ajoutant `-g cn` cela pourrait accélérer le script)
`bash docker/scripts/dev_into.sh` (on entre dans l'environnement du docker)
`./apollo.sh clean`
`./apollo.sh build` (pour build tout le projet Apollo)
`./scripts/bootstrap.sh [start | stop | restart]` (l'option par défaut est start)
***Démo***
* Entrez http://localhost:8888 dans le navigateur
* Cliquez sur le mode "Mkz Standard Debug" dans le coin supérieur droit.
* Sélectionnez "Sunnyvale with Two Offices".
* Télécharger la démo
`cd docs/demo_guide/`
`python3 record_helper.py demo_3.5.record`
* On peut relancer la démo "record" dans une boucle avec le flag '-l'
`/apollo/bazel-bin/cyber/tools/cyber_recorder/ play -f docs/demo_guide/demo_3.5.record -l`
***Relancer DreamView***
`cd /apollo`
`sudo docker start apollo_dev_root` (on relance le docker)
`sudo bash docker/scripts/dev_into.sh` (on entre dans l'environnement du docker)
`./scripts/bootstrap.sh [start | stop | restart]` (l'option par défaut est start)
***Voir DreamView sur windows avec Apollo sur la VM***
> Aller dans les paramètres de la VM et passer le réseau sur "Réseau privé hôte"

>
> Sur la VM, tapez `ifconfig` dans la console pour connaître son **IP**.
> Une fois l'**IP** de la VM récupéré, lancez DreamView et sur internet taper dans la barre d'URL **IP**:8888 (ex: **192.168.56.101**:8888)
>
> 
# Tuto installer SVL simulator avec Apollo
https://www.youtube.com/watch?v=Ucr0aM334_k
télécharger SVL simulator ici : https://www.svlsimulator.com/
> lancer le simulateur et cliquer sur "OPEN BROWSER"
puis créer un compte utilisateur
***Connecter SVL sur windows avec Apollo sur la VM***
> Aller dans les paramètres de la VM et passer le réseau sur "Réseau privé hôte"

>
> Sur la VM, tapez `ifconfig` dans la console pour connaître son **IP**.
> Une fois l'**IP** de la VM récupéré, lors de la configuration de votre simulation, vous pourrez donner Apollo 6 comme "sensor configuration" à votre véhicule.
> Puis dans le "Bridge connection" de l'autopilot il faut fournir **IP**:9090 (ex: **192.168.56.101**:9090)
>
> 
***Connecter SVL avec Apollo sous Ubuntu***
> Lors de la configuration de votre simulation, vous pourrez donner Apollo 6 comme "sensor configuration" à votre véhicule.
> Puis dans le "Bridge connection" de l'autopilot il faut fournir **localhost**:9090
***Finir la connection***
- Lancer la simulation sur SVL simulator
- Lancer DreamView
- mode : Mkz Lgsvl
- vehicle : Lincoln2017MKZ LGSVL
- map : La même map que sur SVL
- Démarrer la connection entre la voiture du simulateur et Apollo :
`./scripts/bridge.sh`
BRAVO ! Si vous déplacez votre véhicule sur SVL simulator, il se déplace aussi dans le DreamView !
***Ajouter une nouvelle map de SVL Simulator sur DreamView***
- Sur le site de SVL simulator, aller sur la map à ajouter et télécharger la version Apollo50 de la HD Map (*basemap.bin*)

- Puis, dans le dossier `/apollo/modules/map/data/` créer un dossier au nom de la map à ajouter.
- Ensuite, placer dans ce dossier le fichier *basemap.bin* télécharger précédemment
- Pour finir, créer les fichiers *routing_map.bin* et *sim_map.bin* avec les commandes :
- `./scripts/generate_routing_topo_graph.sh --map_dir dir_name`
- `bazel-bin/modules/map/tools/sim_map_generator --map_dir=dir_name --output_dir=dir_name`
> dir_name=modules/map/data/demo # example map directory
# Tuto installer Carla (avec python 3.7)
***Installation windows***
- prérequis :
- microsoft visual studio 2019
- DirectX runtime
https://www.youtube.com/watch?v=EzxhkEQUJqY
***Installation linux***
https://carla.readthedocs.io/en/latest/start_quickstart/
* mise à jour de pip
`pip3 install --upgrade pip`
`pip install --upgrade pip`
`pip install --user pygame numpy matplotlib && pip3 install --user pygame numpy matplotlib`
* récupération d'une clé + nouveau repo
`sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1AF1527DE64CB8D9`
`sudo add-apt-repository "deb [arch=amd64] http://dist.carla.org/carla $(lsb_release -sc) main"`
* installation de Carla
`sudo apt-get update`
`sudo apt-get install carla-simulator`
`cd /opt/carla-simulator`
* lancement
`cd /opt/carla-simulator`
`./CarlaUE4.sh`
# Autres Tutos
***Tuto installer VM Ubuntu18.04 avec VirtualBox***
https://dmnbigdata.com/fr/installation-de-ubuntu-18-04-3-lts-sur-oracle-virtualbox-pour-installer-apache-cassandra/
http://taylorlopes.com/ctrlc-e-ctrlv-entre-windows-e-vm-linux-no-virtual-box/?lang=fr
https://docs.oracle.com/cd/E26217_01/E35193/html/qs-guest-additions.html
Pour allouer de la mémoire supplémentaire (à partir du powershell windows) :
`.\VBoxManage.exe modifyhd "\VirtualBox VMs\UbuntuApollo\UbuntuApollo.vdi" --resize NombreEnMo`