System Setup on Xavier platform#
Overview#
This instruction explains how to perform system setup for test execution on Xavier platform.
Access to Xavier platform via SSH#
ssh root@IP-ADDRESS
For example;
ssh nv@192.168.10.46
Copy Autoware Universe image to Xavier#
NOTE: docker should be installed with post-installation steps. For instructions please refer to:
The docker image of Autoware Universe for arm64 is registered in Autoware Foundation Container Registry.
-
Copy docker image to Xavier.
docker pull ghcr.io/autowarefoundation/autoware-universe:galactic-20220728-prebuilt-cuda
K3s Installation#
NOTE: K3s should be installed with following steps. For official instructions please refer to: Install K3s on Ubuntu.
-
Install K3s.
curl -sfL https://get.k3s.io | sh -
-
Create directory.
mkdir ~/.kube/
-
Copy config file
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
-
Setting environment
export KUBECONFIG=~/.kube/config
Download kubernetes yaml files#
Autoware.Universe runs as k3s clusters in Open AD Kit, so please download kubernetes yaml files to deploy Autoware to Xavier platform.
-
Download.
wget https://raw.githubusercontent.com/autowarefoundation/open-ad-kit-docs/main/docs/version-2.0/start-guide/installation/deployments/comhpc-deployments.zip
-
Unzip it.
unzip comhpc-deployments.zip -d comhpc-deployments
You will see the following files are unzipped.
Archive: comhpc-deployments.zip inflating: comhpc-api-deployment.yaml inflating: comhpc-control-deployment.yaml inflating: comhpc-map-deployment.yaml inflating: comhpc-persistent-volume.yaml inflating: comhpc-persistent-volume-claim.yaml inflating: comhpc-planning-deployment.yaml inflating: comhpc-simulator-deployment.yaml inflating: comhpc-system-deployment.yaml inflating: comhpc-vehicle-deployment.yaml
Download map files#
-
Download from Google Drive.
wget "https://drive.google.com/uc?export=download&id=1vWMLbmwJJE5tYO40ypCMxqtmgQPQxhiw&confirm=t&uuid=3d84d854-3dd2-4950-8cc8-248feeab547d" -O sample_data.zip
-
Unzip it.
unzip sample_data.zip
-
Move
map
directory fromsample_data
.mv sample_data/map/ ~/
You will see the following files are located.
ls -la ~/map total 61288 drwxrwxr-x 2 root root 4096 Aug 18 06:23 . drwx------ 6 root root 4096 Aug 18 06:23 .. -rw-r--r-- 1 root root 1841436 Aug 18 06:23 lanelet2_map.osm -rw-r--r-- 1 root root 60904720 Aug 18 06:23 pointcloud_map.pcd
Download kernel configuration file for tuning kernel parameters#
We have to reconfigure kernel parameters by using sysctl
for system stability.
-
Download.
wget -P /etc/sysctl.d https://raw.githubusercontent.com/autowarefoundation/open-ad-kit-docs/main/docs/version-2.0/start-guide/installation/sysctl.d/60_cyclonedds.conf
-
Update kernel parameters.
sysctl -p /etc/sysctl.d/60_cyclonedds.conf
Download configuration file of Cyclone DDS#
In this test, we are using Cyclone DDS, so you also need to download configuration file of Cyclone DDS.
-
Download
cyclonedds.xml
.wget -P ~/cyclonedds https://raw.githubusercontent.com/autowarefoundation/open-ad-kit-docs/main/docs/version-2.0/start-guide/installation/cyclonedds/cyclonedds.xml
Modify cyclonedds.xml
#
You need to change the element NetworkInterfaceAddress
to the network interface currently in use.
-
Find network interface.
ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 0e:fa:61:5e:35:cd brd ff:ff:ff:ff:ff:ff 3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 48:b0:2d:2b:7a:a8 brd ff:ff:ff:ff:ff:ff 4: l4tbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 82:24:ce:68:6a:bd brd ff:ff:ff:ff:ff:ff 5: rndis0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master l4tbr0 state DOWN group default qlen 1000 link/ether 82:24:ce:68:6a:bd brd ff:ff:ff:ff:ff:ff 6: usb0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master l4tbr0 state DOWN group default qlen 1000 link/ether 82:24:ce:68:6a:bf brd ff:ff:ff:ff:ff:ff 7: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 2c:16:db:a3:03:10 brd ff:ff:ff:ff:ff:ff inet 192.168.10.46/22 brd 192.168.11.255 scope global dynamic noprefixroute eth1 valid_lft 84077sec preferred_lft 84077sec inet6 fe80::9fcb:8fc6:a1a4:c6d2/64 scope link noprefixroute valid_lft forever preferred_lft forever 8: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:0b:47:8f:45 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever
You can find a network interface such as
eth1
. -
Change the
NetworkInterfaceAddress
.vi ~/cyclonedds/cyclonedds.xml
For example; cyclonedds.xml
<General> - <NetworkInterfaceAddress>lo</NetworkInterfaceAddress> + <NetworkInterfaceAddress>eth1</NetworkInterfaceAddress> </General>