NavQPlus set up for CogniPilot with ROS 2 Jazzy
Looking for instructions on how to also install on a development computer?
Click here to get instructions on how to setup and configure a development computer.
Already previously followed all the steps to flash and configure the image on the NavQPlus and want to jump to installing CogniPilot on it?
About this guide
These directions are written for someone with experience with embedded Linux and basic embedded computers.
Step-by-step overview
- Download the pre-built latest image with 24.04 and ROS 2 Jazzy, exact instructions for that release image are included on the release documentation to use in conjunction with this guide.
- Extract the image
navqplus-jazzy-<date>-<commit_hash>.wic
from the compressed downloaded filenavqplus-jazzy-<date>-<commit_hash>.wic.zstd
and flash it to the EMMC, exact copy and paste instructions are on the release page. - Log in for the first time by connecting to another computer using the USB to UART adapter.
- Configure WiFi, System User Name and Password.
- Install CogniPilot by running the included installer script.
- Connect to NavQPlus over WiFi or Ethernet
Flashing the eMMC
To flash the eMMC on the NavQPlus use the uuu tool as part of the downloadable assests from the release.
Once uuu
has downloaded make sure to set it as executable.
find the boot switches on the NavQPlus and flip them to the "Flash" mode.
Then, connect NavQPlus to the computer with the downloaded release using the leftmost (USB 1) USB-C® port and the two flash status lights should light up.
Flash eMMC hookup and status lights.
Make sure that the NavQPlus is recognized by uuu
.
Found device with uuu.
If it shows that a device is connected, continue to flashing. To flash the board, use the general commands below or copy and paste the specific command from the release.
sudo ./uuu -b emmc_all navqplus-jazzy-<date>-<commit_hash>.bin-flash_evk navqplus-jazzy-<date>-<commit_hash>.wic
Once this process has finished, make sure that the flash was successful. If so, configure the boot switches to boot from eMMC.
Successful eMMC flash.
uuu gave a weird output abort message after flashing, did it work correctly?
There is a know issue where uuu will throw an assertion failed error as seen below, however, the image is flashed correctly and the remaining steps setup and install steps can be followed.
Boot Switches
NavQPlus can be configured to boot from either SD card or eMMC. It also has a flash mode that allows for to flashing either the eMMC or SD card over USB-C®. See the table below for the boot switch configuration. Note we suggest to only flash and run from eMMC and leave the SD card for external storage.
Mode | Switch 1 | Switch 2 |
---|---|---|
SD | ON | ON |
eMMC | OFF | ON |
Flash | ON | OFF |
Log in for the first time
Power on the NavQPlus by either plugging in a USB-C® cable to the centermost (USB 2) USB-C® port or the 5 pin JST-GH power port with 6-24V if NOT powering over the centermost (USB 2) USB-C® port. NavQPlus will boot, and display that it is fully booted with the status LEDs on the board. The 3 LEDs by the USB1 port should be on, as well as two LEDs next to the CAN bus connectors.
To log into the NavQPlus, use the included USB to UART adapter. The default username/password combo is as follows:
Username: user
Password: user
USB to UART adapter
Connect the included USB to UART adapter to the UART2 port on the NavQPlus, and open a serial console application with a baud rate of 115200 8N1. Press enter if there is no output on the screen to get a log-in prompt.
How to close cleanly out of screen
.
To exit screen
cleanly when done press simultaneously Ctrl Shift A
followed by typing k
then y
.
Configuring WiFi, System Hostname, Username or Password
Configuring WiFi on NavQPlus
To connect NavQPlus to a WiFi network, use the nmcli
command. The interface is relatively straightforward, to connect with nmcli
.
sudo nmcli device wifi connect <network_name> password "<password>"
If struggling to connect to a network, see if the network is visible.
Once connected to the WiFi network the NavQPlus will continue to connect to that network even after a reboot.
What WiFi network is the NavQPlus currently connected to?
To see what WiFi network the NavQPlus is currently connected to run previous command without sudo
.
Or if running with sudo
it will be the network preceded with a star.
OPTIONAL - Configuring System Hostname, Username or Password
Optionally, to change the default hostname, username, or password, see below.
Change Hostname
Change Username
Danger
Changing the username
can be dangerous and possibly result in a broken system state requiring a re-flash.
Change Password
Install CogniPilot through included script
Included in the image is an installation script that auto-updates when run. Before running make sure that the NavQPlus is connected to the internet on a network that allows it to download from github and apt servers.
In the home directory there is a simple helper script that downloads and runs the latest CogniPilot NavQPlus installer.
Cloning with ssh keys:
If you want to use SSH keys with github on the NavQPlus you must first add or create them on the device. Otherwise you will need to answer n
when asked to clone using already setup github ssh keys.
When prompted to choose whether or not to use ssh-keys:
- y to clone with ssh keys, best for development work but only select if ssh keys are already present and setup with GitHub.
- n to clone with https, best for users who do not plan to make modifications or develop.
When prompted to choose whether or not to optimize runtime performance:
It is recommended to select y
for runtime optimization when prompted.
When prompted to choose a release:
- brave for the current stable non-development release.
- main for active development.
When prompted to choose a platform to build:
- b3rb is an ackermann based mobile robotic platform.
- melm is a differential drive based mobile robotic platform.
- rdd2 is a quadcopter drone.
Does CycloneDDS need configuring?
The NavQPlus 24.04 with ROS 2 Jazzy image uses CycloneDDS by default. Make sure to edit the default CycloneDDSConfig.xml to only allow the networks that are desired to connector over when trying to get maximal performance. An example of this is using only the WiFi device wlan0
to connect to a ROS 2 Domain. To save performance remove the other default included interface end1
by deleting the line from the NavQPlus local ~/CycloneDDSconfig.xml
.
Connecting to NavQPlus over WiFi or Ethernet
Once setup of CogniPilot is complete you can connect to the NavQPlus over a local WiFi network or Industrial Ethernet port through SSH.
Don't know the default hostname?
Default hostname is imx8mpnavq
. The hostname can be changed and is suggested to be changed if running multiple NavQPlus on the same network.