Remote development set up on the robot

As we run Ubuntu on the robot(Jetson Nano) in headless mode with all essential tools for the development, several options are available for remote development and deployment of applications:

Terminal base remote development via SSH

This method works out of the box and doesn't require any additional setup on the client side (except a terminal application and ssh client). On the server side (robot) additional tools like vim,emacs, tmux, etc. may be installed. All interactions done in terminal via a SSH connection with all command-line based tools already available on the remote system.

Figure 1: Remote development with Nano + tmux

This option may be the favorite one for those keyboard gurus, but for many others, it may not an intuitive development method, especially when the project complexity grows up.

Remote development with Visual Studio Code

For those who is familiar with a real GUI IDE, Visual Studio code may be a good choice. This editor is feature-rich with powerful IntelliSense for smart completions, Git, terminal integration, and a rich set of extension. One of the very useful extensions is "Remote SSH" which allows to use any remote machine with a SSH server as a development environment.

It is easy to setup a remote development environment with Visual Studio Code:

  1. Install Visual studio Code on the client machine
  2. Install the Remote SSH extension for the editor
  3. From the command palette, select the option: Remote SSH: Connect to host, then enter the host of the robot (e.g. jarvis@192.168.1.16), password may be required

At the first connection to the remote host, the Remote SSH extension will download an install the code server on the remote machine. This server enables the communication between the editor (on the client side) and the remote machine.

After the connection with the code server is established, the editor can be used to browse file, edit file, run command, compile code, install extensions, etc. on the remote machine. Almost any thing you do with the editor on local machine, you can do it on the remote machine as well.

Figure 2: Remote development with Visual Studio Code

In-browser development with AntOS

AntOS is a web-desktop application developed by the author. It mimics the traditional desktop environment on the web browser and provide visual tools to access and control resource on remote server and embedded linux environment.

Features:

  • Visual access to the remote machine right from the web-browser
  • Rich set of applications that can be installed:
    • File manager: for file access
    • Code/text editor
    • Documentation application
    • Terminal access
    • etc.

An advantage of using AntOS for remote development is that it does not require any special application on the client machine except a decent web-browser.

AntOS consist of three main component that need to installed on the remote machine:

  1. The client side API called AntOS which requires to connect to the server side REST-based API
  2. The Server side API which is a REST Based API, It can be developed by any server side (scripting) language and framework as long as the API respects the specification required by the client API. The specification will be detailed lately in this documentation.
  3. A web server that hosts and runs the web application

These component can be installed on the robot with the following command:

# install dependencies
sudo apt install libssl-dev libsqlite3-dev libreadline-dev
# install AntOS AIO
wget -O-  https://get.iohub.dev/antos | bash -s "full"

This may take several minutes to finish as the command will download and compile AntOS from source code.

After the install finishes run:

# enable the services
sudo systemctl enable antd
sudo systemctl enable antd-tunnel-publisher

# start the services
sudo systemctl start antd
sudo systemctl start antd-tunnel-publisher

The web desktop now can be accessed from web browser with the address: https://your_robot_ip/os/ .

Note: Many application can be installed from the MarketPlace application that comes by default.

Figure 3: Remote development with AntOS web-desktop

For more information on the AntOS project: https://doc.iohub.dev/antos/

Comments

The comment editor supports Markdown syntax. Your email is necessary to notify you of further updates on the discussion. It will be hidden from the public.
Powered by antd server, (c) 2019 - 2021 Xuan Sang LE