The modules of Apollo 3.5 are separately launched from two industrial PCs. This guide introduces the hardware/software setup on two parallel IPCs.
- Apollo 3.5
- Linux precision time protocol
- CyberRT
There are two steps in the installation process:
- Clone and install linux PTP code on both of IPCs
- Clone Apollo 3.5 Github code on both of IPCs
Install PTP utility and synchorize the system time on both of IPCs.
git clone https://github.com/richardcochran/linuxptp.git
cd linuxptp
make
# on IPC1:
sudo ./ptp4l -i eth0 -m &
# on IPC2:
sudo ./ptp4l -i eth0 -m -s &
sudo ./phc2sys -a -r &
Install Apollo 3.5 on local ubuntu machine
git clone https://github.com/ApolloAuto/apollo.git
Refer to the How to build docker environment
- Change directory to apollo
cd apollo
- Start docker environment
bash docker/scripts/dev_start.sh
- Enter docker environment
bash docker/scripts/dev_into.sh
- Build Apollo in the Container:
bash apollo.sh build_opt_gpu
- Change CYBER_IP in cyber/setup.bash to IPC1's ip address:
source cyber/setup.bash
- Start CyberRT and Dreamview:
bash scripts/bootstrap.sh
-
Open Chrome and go to localhost:8888 to access Apollo Dreamview:
-
on IPC1
The header has 3 drop-downs, mode selector, vehicle selector and map selector.
Select mode, for example "ipc1 Mkz Standard Debug"
Select vehicle, for example "Mkz Example"
Select map, for example "Sunnyvale Big Loop"
All the tasks that you could perform in DreamView, in general, setup button turns on all the modules.
All the hardware components should be connected to IPC1 and the modules, localization, perception, routing, recorder, traffic light and transform, are allocated on IPC1 also.
Module Control on sidebar panel is used to check the modules on IPC1
In order to open dreamview on IPC2, user must stop it on IPC1 by using the below command:
# Stop dreamview on IPC1 bash scripts/bootstrap.sh stop
-
on IPC2 Change CYBER_IP in cyber/setup.bash to IPC2's ip address:
source cyber/setup.bash
Start dreamview on IPC2 by using the below command:
# Start dremview on IPC2 bash scripts/bootstrap.sh
Select mode, vehicle and map on dreamview as the same operations on IPC1
The modules - planning, prediction and control are assigned on IPC2.
Module Control on sidebar panel is used to check the modules on IPC2
-
-
How to start/stop Dreamview:
The current version of Dreamview shouldn't run on the different IPCs simultaneously, so the user must perform it alternatively on IPC1 or IPC2.
The code below can be used to stop Dreamview on IPC2 and start it on IPC1.
# Stop Dreamview on IPC2
bash scripts/bootstrap.sh stop
# Start Dreamview on IPC1
bash scripts/bootstrap.sh
-
Cyber monitor
Cyber monitor is CyberRT's tool used to check the status of all of the modules on local and remote machines. The User may observe the activity status of all the hardware and software components and ensure that they are working correctly.
- Multiple Dreamviews may run simultaneously
- Fix a bug that modules are still greyed-out after clicking the setup button. Users may check each modules' status by using the command
ps aux | grep mainboard