Skip to main content

Remote Device Control

The coScene platform enables real-time remote device operations, such as remote command execution and SSH connections, enhancing operational capabilities.

Prerequisites

  1. The device has coScene client programs installed. For details, please refer to Device Installation.
  2. The organization administrator has granted device access and permitted remote control operations. For details, please refer to Enable Device.
  3. The device has been added to the project. For details, see Assign Devices to Projects.

Real-time Visualization

Prerequisites:

Ensure that the coBridge component is installed and running on the device.
coBridge is an independent ROS node responsible for real-time transmission of device data to the frontend via the WebSocket protocol.
It is part of the ROS suite. If the ROS node has already been installed and enabled, coBridge does not need to be installed again.

# for ROS 1 distribution
roslaunch cobridge cobridge.launch

# for ROS 2 distribution
ros2 launch cobridge cobridge_launch.xml
  • It is strongly recommended to compile coBridge from source (Build Guide), integrate it into your robot software, and add the startup command to the robot’s startup script.

  • Once the coBridge node is running, with a public address and port mapped via virmesh, you can subscribe to robot topics, call services, and perform other operations through the web interface to achieve real-time remote visualization of the robot.

On the Project - Devices page, when the client status is Online, a Realtime Viz button will appear next to the device.

Click the button to view the live status of the machine.

device realtime

device realtime demo

Web SSH

On the Project - Devices page, when the client status is Online, a Web SSH button will appear, which opens a new browser tab to establish an SSH connection to the device.

device ssh device ssh demo

The page comes with Trzsz file transfer tool by default. Users can upload local files to the remote device using the trz file1 command, and download files from the remote device using tsz file1 file2 file3. For more advanced usage, please refer to the detailed documentation.

Remote Command

When a device is online remotely, users can execute specific tasks by sending commands through the Remote Command feature. You can also perform batch operations on multiple devices simultaneously.

device cmd

Click the [Execute Remote Command] button, enter the command you want to execute in the popup window, and click the [OK] button to execute the command on the device. device cmd device cmd

After the command executes successfully, you can view the log results. device cmd

Port Forwarding

When a device doesn't have a public IP, users cannot directly access its ports. The port forwarding feature allows device ports to be forwarded, making them accessible over the public network. This is useful for temporarily exposing device services or debugging local connections.

device port

Here's a simple example. Using the [Web SSH] feature, we connect to the remote device and run python3 -m http.server 9000 -d ~ to start a simple HTTP Server that serves files from the ~ directory. The server listens on port 9000, which we then configure for forwarding. After this, we can access the forwarded address from our local browser to reach the device.

  1. Configure port 9000 forwarding in the web interface device port demo

  2. Start a simple HTTP Server using Web SSH by executing python3 -m http.server 9000 -d ~ device port demo

  3. Access the forwarded address in the browser to see all files in the device's ~ directory device port demo

  4. Check the device logs to confirm that browser requests are being forwarded and returning 200 status codes device port demo