Skip to content

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
Follow the instructions in the terminal. A prompt will ask for the current password and to repeat twice the new password. The password needs to be at least 8 characters long. The password will not be displayed on the screen as you type it and if the password change is successful, you will receive a confirmation message. Please take great care not to lose the password.

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
This command will display a list of all containers, their statuses, and other relevant information. This is useful for gaining a comprehensive overview of all container activities on the Origin One platform, including your own containers.

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
This command will stop and restart all Avular Application containers such as the Platform control software and Autopilot. Restarting the containers will also restart any services or applications running within them, including ROS 2 nodes, ensuring that your application returns to a functional state.

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>
This command will display the logs for the specified container in real-time, allowing you to monitor its output as it runs.

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
This command aggregates the logs from all Avular application containers, providing a comprehensive view of the system's activities.

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.