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:
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.
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:
firstname.lastname@example.org), 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
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.
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:
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/