Terminal Interface
Command Line Operation
By default the OutdoorNav Software, including the Navigation component, begins automatically when the system is powered on. This section outlines the commands that can be used by developers who are debugging the system or who want more precise control for managing the Navigation component.
Connecting to the OutdoorNav Computer
To connect to your UGV, consult its corresponding user manual.
If you are using a Clearpath Robotics UGV with a seperate OutdoorNav computer,
first ssh
to the UGV using the details provided in the UGV user
manual. If you have a wired connection to the Clearpath Robotics UGV,
use the following command. If using wifi, you can replace the IP address
with the wifi-assigned IP address or the hostname of the UGV.
ssh administrator@192.168.131.1
Then, connect to the OutdoorNav Computer:
ssh administrator@192.168.131.5
Starting the Navigation Software
Begin by connecting to the OutdoorNav Computer as outlined above.
On UGV startup, all the sensors, the user interface, as well as the
Navigation software are set to start automatically through a Docker
container. You can check the Docker container's status by running
docker ps
and checking for:
- onav-web (Docker image containing the web interface)
- onav-web-ros (Docker image containing the ROS web bridge nodes)
- onav-sensors (Docker image that launches the ROS sensor drivers)
- onav-power (Docker image that launches the ROS nodes related to the power system of the UGV)
- onav-autonomy (Docker image that launches the ROS nodes related to the autonomy)
The docker compose file located at ~/cpr_outdoornav_launch/docker-compose.yml
provides the description for each the docker images that are being generated
on startup. In here, you can find that there are profiles set up as part of the
docker compose structure. They are:
- ui: starts the onav-web and onav-web-ros containers
- sensors: starts the onav-sensors container
- power: starts the onav-power container
- autonomy: starts the onav-autonomy container
- outdoornav: starts all of the containers
- teleop: start only the ui and sensor related containers (no autonomy)
If the Docker containers are not running, they can all be started with:
cd ~/cpr_outdoornav_launch/ # directory with docker-compose.yaml
docker compose --profile outdoornav up -d
Stopping/Restarting all of OutdoorNav
Each individual profile can also be brought down. For example to use the UGV without the OutdoorNav software. The following command brings down OutdoorNav and is persistent accross reboots/power cylces.
cd ~/cpr_outdoornav_launch/ # directory with docker-compose.yaml
docker compose --profile outdoornav down
If the OutdoorNav software has been brought down, it can be restarted by running:
cd ~/cpr_outdoornav_launch/ # directory with docker-compose.yaml
docker compose --profile outdoornav up -d
Stopping/Restarting the Autonomy
To use the UGV without the autonomy core of OutdoorNav, use these commands to stop the nodes and prevent them from automatic startup:
cd ~/cpr_outdoornav_launch/ # directory with docker-compose.yaml
docker compose --profile autonomy down
The autonomy core can be restarted by running:
cd ~/cpr_outdoornav_launch/ # directory with docker-compose.yaml
docker compose --profile autonomy up -d
Stopping/Restarting the Sensors
To use the UGV without the sensors, use these commands to disable the nodes and prevent them from automatic startup:
cd ~/cpr_outdoornav_launch/ # directory with docker-compose.yaml
docker compose --profile sensors down
::: note
This command will only disable the drivers for the sensors that are started by the OutdoorNv software. This includes the GNSS units, the Microstrain IMU, and any LiDAR/Stereo detection sources (not limited to Velodyne LiDARs, Realsense cameras, 2D Lidars)
:::
Accessing the Navigation Software Logs
To check the logs of the Navigation software:
cd ~/cpr_outdoornav_launch/ # The directory with docker-compose.yaml
docker compose logs -f
Optionally, specify the specific container you would like to view logs for:
cd ~/cpr_outdoornav_launch/ # The directory with docker-compose.yaml
docker compose logs -f onav-autonomy