Skip to content

Wiki

Remote Development Environment for Industrial Control Computers

About 6 min read

Scene

Robot platforms generally come with a preinstalled ROS control system. This control system is essentially identical to the learning environment we used in the previous stage, and it is also roughly the same at the development or application level. We can use the platform's peripherals such as a mouse, keyboard, and monitor to directly develop on it, debug programs, or control the robot. However, when developing "platform-oriented," some problems may be encountered, such as:

  1. When the robot is a mobile platform, the "platform-oriented" development mode may require a person to follow the vehicle, which is obviously inefficient and poses certain safety hazards;

  2. The "platform-oriented" development mode is also constrained by many factors such as the environment and terrain;

  3. There may be a one-to-many relationship between the robot and developers, that is, multiple development or test engineers use the same device, and under the "platform-oriented" development mode, resource contention will inevitably occur;

In summary, developing "for the platform" is feasible, but it also has many inconveniences. In this context, the aforementioned problems can be solved by setting up a remote development environment.

Concept

Remote development is a development approach in which programs are written, compiled, or run on a remote host. Compared with local development, remote development requires connecting a local device to a remote host to enable data transfer and operation synchronization.

Function

Remote development can bring several advantages, such as providing more powerful computing resources, facilitating team collaboration, and unifying the development environment. At the same time, remote development also requires consideration of factors such as network latency and stability. In general, remote development can provide a more flexible and convenient development environment, suitable for different scenarios and needs.

Implementation method

In this tutorial, we will primarily introduce two commonly used remote development modes: SSH and NoMachine. These are two common remote connection methods, and they differ somewhat in functionality and usage.

  • SSH is a command-line interface connection method in which users need to enter commands via the command line for remote operations. For users familiar with the command line, SSH may be more flexible and efficient.

  • NoMachine provides remote connections through a graphical interface, allowing users to intuitively operate the desktop of a remote computer. It supports features such as windows, multiple monitors, and file transfer, making it suitable for remote operations that require a graphical interface.

In general, SSH is more suitable for scenarios that require command-line operations and quick access, while NoMachine is more suitable for scenarios that require remote desktop access with a graphical interface. The choice between the two should be determined based on specific needs and usage habits.