The CreOS operating system
The internal Linux computer of the Origin One, powered by an Nvidia Jetson Orin NX, runs Avular's proprietary CreOS, which is based on Linux for Tegra. This environment is carefully configured to ensure optimal performance and stability.
Warning
It is highly recommended not to make many modifications to the CreOS environment, except for those explicitly mentioned in the online user manual. As all modifications to the root file system, like installing new software, will be lost after an update.
Warning
The internal Linux computer hosts several Docker containers that encapsulate most of the functionalities of the Origin One platform. The number of containers running on the system depends on the specific configuration of the Origin One that you have purchased. Your are strongly advised to only work in the the user container and leave the other containers as they are.
Info
To interact with the Linux computer of the Origin One you will need to setup an SSH connection between your own device and the Linux computer. All topics on this page require such a connection.
Changing Linux user password
The internal Linux computer uses avular
as the username. The accompanied default password is also avular
. It is recommended to change the default password after logging in for the first time. This can be done with the following command:
passwd avular
Info
If you need to abort changing the password, proceed with entering CTRL + U
followed by CTRL + D
. The command line will abort changing the password and will prompt passwd: password unchanged
.
Warning
Losing a modified password will require a full factory restore of the Linux computer by Avular. Take good care not to lose the password.
The avular command
The avular
command is available on the internal Linux computer. With this command you can manage your robot, configure the Wi-Fi (external and access-point), and interact with the Docker containers.
You can use the avular
command by itself to get an overview of the available commands.
Note
The avular
command is only available on the native CreOS of the internal Linux computer, therefore only outside any Docker container.
Viewing the status of the robot
The avular status
command provides an overview of the current status of the robot. This includes some general robot information, such as the serial number and the current battery level, but also the status of the different components of the robot like the network connections and the Docker containers.
avular status
External Wi-Fi
The avular wifi
command provides an interface to configure the Wi-Fi settings of the robot. This allows you to connect the robot to or disconnect the robot from a WiFi network.
To connect to a Wi-Fi network, you can use the following command:
> avular wifi connect --help
Usage: avular wifi connect [OPTIONS] SSID [PASSWORD]
Connect to a WiFi network.
The robot will try to connect to the network specified by the SSID, and use the stored password if required. If you
specify both the SSID and the password, the robot will try to connect to that network with the given password.
Note
If the SSID or password contains spaces, or special characters, you need to put them between quotes.
Besides connecting to a Wi-Fi network, you have the following options:
> avular wifi
Usage: avular wifi [OPTIONS] COMMAND [ARGS]...
Manage the WiFi client settings.
The WiFi client settings allow you to configure the robot to connect to a WiFi network.
╭─ Options ─────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────╮
│ connect Connect to a WiFi network. │
│ disable Disable the WiFi connection. │
│ disconnect Disconnect the WiFi connection. │
│ list List all WiFi connections. │
╰───────────────────────────────────────────────────────────────────────────────╯
Access point
Avular robots can be configured to enable an access point.
The access point will allow you to directly connect to the robot over Wi-Fi.
By default the access point will be named Origin <Serial>
, but this can be modified.
When you connect to the access point, you can access the Origin at 192.168.192.1
. By default the access point will not have a password. We strongly recommend to set a password.
The access point can be enabled with the following command:
> sudo avular ap enable --help
Usage: avular ap enable [OPTIONS] [SSID] [PASSWORD]
Enable the access point on the robot.
You can specify which SSID should be used for the access point and set a password for the access point. If you don't
specify the the SSID and the password it will enable the access point with the stored configuration.
The password, when specified must contain at least 8 characters.
You can disable the access point with the following command:
> sudo avular ap disable --help
Usage: avular ap disable [OPTIONS]
Disable the access point on the robot.
This will disable the access point on the robot, if you are currently connected to the access point you will lose the
connection. If the robot is not connected to a network you will not be able to connect to the robot, except through the
ethernet cable.
Interacting with the Docker containers
The Origin One is by default deployed with Avular containers and a standard User container. These containers encapsulate the core functionalities and user-specific applications of the platform. For more information about the User container, click here.
Listing Docker containers
When managing Docker containers on the Origin One platform, it is often necessary to check the status of the running containers. This can help you ensure that all necessary services are up and running, and can also assist in troubleshooting any issues that may arise. The avular compose
command provides a convenient way to list the status of Avular application Docker containers on the system. The Avular application containers are in control of the robot from a "App" perspective, such as the Platform control software and Autopilot. The running application containers can be visualized as following:
avular compose show
In addition to listing the Avular application containers, you may also want to see all running containers on the system, including user-specific containers and low-level system containers. This can be done using the standard Docker command:
docker ps
Restarting Docker containers
When working with Docker containers, there may be instances where an application becomes unresponsive or stuck. Restarting the Docker container can often resolve these issues by stopping and starting the container, effectively resetting the application environment.
To restart Avular Application containers, you can use the following command:
avular compose stop
avular compose start
To restart a User Application container, you can use the following command:
docker restart <container-name>
Accessing Docker container logs
When managing Docker containers, it is often necessary to view the logs to diagnose issues or monitor the behavior of applications. If you need to view the logs of a specific container, you can use the standard Docker command:
docker logs -f <container_name>
The avular compose
command provides a convenient way to show the logs of all Avular application containers on the system. This can be done using the following command:
avular compose logs
In some cases, you may need to clear the logs to free up space or reset the log files. This can be done using the following commands:
LOG_FILE=$(docker inspect --format='{{.LogPath}}' <container_name>)
sudo truncate -s 0 $LOG_FILE
These commands will locate the log file for the specified container and truncate it, effectively clearing its contents.
The OS filesystem structure
To enable OS updates, the filesystem of the Linux computer is divided into multiple partitions. The root partition is mounted on /
and will be overwritten on system updates. In order to prevent data loss and enhance system stability, some new partitions have been created. The most important partitions are:
- user partition: The user partition is mounted on
/data/user
. This partition will not be overwritten during system updates, and is intended for you to do with as you please. - log partition: The log partition is mounted on
/data/log
. This partition is meant for log files for the system services and applications. This partition will not be overwritten during system updates. - application partition: The application partition is mounted on
/data/app
. This partition is meant for Avular applications and system services. You should not need to interact with this partition. This partition will not be overwritten during system updates. - home directory: While the
/home
directory is located on the root partition, it will not be overwritten during a system update. However, due to the limited size of the root partition, it is recommended to store user data on the user partition. An example of which is the user container, which has been symlinked to the user partition.