Installation Guide - nickywongdong/wombat GitHub Wiki
Forewarning
Distracted driving may lead to accidents. Please obey all traffic laws and do not operate the system if system operation will affect your driving safety or the safety of other road users.
By continuing with installation and usage, you agree to these terms.
Jetson TX2
Ensure that the Jetson TX2 has been flashed with all options checked. L4T R28.1 is required at minimum.
Whilst logged into the nvidia
profile of the Jetson:
- Clone this repository in the home directory. The repository path should be:
/home/nvidia/wombat/
. cd
into the home directory and make all scripts executable usingfind ./ -name "*.sh" -exec chmod +x {} \;
.- Run the following install scripts with sudo privileges:
- In the
source/navigation/acm
directory, run:sudo ./installCDCACM.sh
. - In the
source/install_tools
directory, run:sudo ./installdep_media.sh
,sudo ./installdep_ui.sh
, andsudo ./installdep_data.sh
. The Jetson will now reboot afterinstalldep_data.sh
has finished executing.
- In the
- Acquire the maps binary for your region here.
- Rename the downloaded binary
namaps.bin
and move the binary to the/home/nvidia/axolotl/maps
folder on the Jetson (create any intermediate directories that don't exist).
Building the Infotainment System
Building with QtCreator
- Open the project file
axolotl.pro
in the folderwombat/source/Axolotl1.1
with QtCreator. QtCreator should already have been installed with the install script. - In QtCreator, select "debug" as the release mode and select "Build Project".
Building via Terminal
- Build the infotainment system by navigating into the
source/install_tools
directory and runningsudo ./install_builder.sh
.
After the project has been built, an executable named Axolotl
should appear in a folder labeled build-axolotl-KitRules-Debug
. Building from Terminal will also add a symlink to Axolotl
on the desktop.
Streamlining Bootup
In Ubuntu system settings, set the nvidia
profile to auto-login on boot. Additionally, add the nvidia
user to the sudoers
file, and ensure that nvidia
gets no-password access to sudo
.
Raspberry Pi
Only do the following if using Raspberry Pis that were not delivered with the project.
Whilst logged into the pi
profile of Raspberry Pi:
- Clone this repository in the home directory. The repository path should be:
/home/pi/wombat/
.
- Or, if setting up NOOBS on the Raspberry Pi, download the
rpidashcams
folder and save it to path/home/pi/wombat/source/data_logging
(creating any directories that don't already exist) to make it easier for yourself.
- Navigate to the
/source/data_logging/rpidashcams
directory and executemake
. - Navigate to the
/home/pi/.config/autostart
directory and create the file:axolotl_startup.desktop
(create any directories that don't already exist).
- This file should contain the below:
[Desktop Entry] Encoding=UTF-8 Name=rpidcd Exec=lxterminal -e "/home/pi/wombat/source/data_logging/rpidashcams/rpi#dcd" Icon=lxterminal Type=Application Categories=Utility;
- If the current Raspberry Pi is meant to be the front dashcam, change
#
in the exec line to:1
(i.e.rpi1dcd
). - If the current Raspberry Pi is meant to be the backup camera, change
#
in the exec line to:2
(i.e.rpi2dcd
)..
- Make the boot file executable using
chmod a+r /home/pi/.config/autostart/axolotl_startup.desktop
. - Open
/etc/wpa_supplicant/wpa_supplicant.conf
. Belowupdate_config=1
, remove any existing network configurations and add the following network configuration:
network={
ssid="AxolotlWLAN"
psk="123123123"
key_mgmt=WPA-PSK
}
- Run
ifconfig eth0
, and write down theHWAddr
(you'll need this later). Make sure you distinguish which MAC address belongs to which Raspberry Pi (i.e. the Pi that controls the front versus rear camera). - Run
sudo reboot
on the Raspberry Pi.
Note: Please make sure that any and all compilation for the Raspberry Pi programs are completed on the Raspberry Pi. This will ensure that the resulting executables are compiled for the Raspberry Pi's ARM processor.
Whilst logged into the nvidia
profile of the Jetson:
- Replace the first two MAC addresses in
bluetooth_addresses
with the Bluetooth addresses you've found. The first MAC should be the MAC of the front Raspberry Pi, the second MAC should be the MAC of the rear Raspberry Pi.
For Fresh Installs
Before running a fresh installation of Axolotl, navigate to the /home/nvidia/wombat/source/data_logging/wmanager
directory on the Jetson and execute sudo ./set_ap_n
.
This only needs to be executed once; the Jetson will remember the settings for future boots.
OBD Integration
Only do the following if using a different Bluetooth dongle than the one delivered with the project.
Whilst logged into the nvidia
profile of the Jetson:
- Determine the MAC address of the Bluetooth dongle and replace the third MAC address in
bluetooth_addresses
with that address.
Note: OBDLink MX Bluetooth dongle is recommended.
Backup Camera Integration
The system's backup camera is designed to turn on when gpio298 is driven high (ideally, this uses a low-current and low-voltage line to reverse lights). If gpio298 is driven low, the backup camera will automatically turn off after 5 seconds.
Deep Sleep / Auto Wake Integration
The system will automatically enter deep sleep when the gpio481 pin is driven high. To wake the system, simply touch the touchscreen.
Note: Some unexpected behavior may occur during system sleep.
Camera Mounting
Each RaspberryPi should be connected to a USB power source that provides at least 5V and 1.2A. A 12V car adapter supplying 2.4A of current is recommended at minimum.
Vehicle Speaker Integration
It is recommended to use an external stereo sound card adapter to connect the NVIDIA Jetson TX2's audio output with the auxiliary input of your vehicle. This will allow all system audio output to be sent to your vehicle and controlled by your vehicle's volume knob, whilst also allowing for auxiliary media input into the Jetson itself from an aux-capable media device. An inexpensive USB external stereo sound card adapter can be found here.
FM Antenna Integration
Please use a USB-based FM antenna. This antenna simply needs to be connected to the Jetson before you attempt configuration of GQRX.
Configuration
GQRX
Launch GQRX from the Ubuntu applications drawer. If launched for the first time GQRX will ask you for your antenna. Find your USB antenna and click OK. Afterwards, access View menu and ensure that RDS is checked. Ensure a "RDS" tab is visible in the lower right hand corner of GQRX before exiting.
VLC
Launch VLC from the Ubuntu applications drawer, configure as normal. Exit VLC after the VLC media player opens and the layout is to your liking.
WiFi
Execute the WiFi script: set_ap_n.sh
with sudo
privileges. This file is located in the source/data_logging/wmanager
directory.
Note: The Jetson will no longer be able to access a WiFi network at this point. If you wish to return WiFi to its original client-mode settings, execute the set_client.sh
script in the same directory.
Using External Storage
USB drives or SD cards are recommended for external storage. When connecting an external storage device to the system, make sure the storage device is formatted in a format compatible with Ubuntu 16.04.
The storage device must be named AXOLOTLDCV
(case-sensitive) and the user must be logged into the nvidia
profile of the Jetson. The system will automatically scan for the flash drive and use it for data logging if connected.
If an external drive is not detected, the system will resort to logging data onto internal storage.
Warning: The system will automatically delete older logs to make space for newer logs if storage space is low on the internal storage volume (this does not apply if using external storage).
Note: For the most consistent logging performance, please only connect one external drive with the name AXOLOTLDCV
.