﻿

## <span style="color: #3564e6;">1.</span> Product Overview

### <span style="color: #3564e6;">1.1</span> Introduction

The LimX Tron2 data acquisition software is preinstalled on the external development expansion module. Connect your computer to the module and use your browser to:

- **View live data**: Check camera feeds and joint states before you record.

- **Record ROS data**: Configure, start, and stop recordings from ROS 1 or ROS 2. Recordings are saved locally on the module.

- **Manage recordings**: Browse, inspect, download, and delete local recordings, or export ROS 2 MCAP recordings to LeRobot datasets.

### <span style="color: #3564e6;">1.2</span> Connect Your Computer

<div style="display: flex; align-items: flex-start; gap: 8px; background-color: #fff8eb; border: 1px solid #f1d8a6; border-radius: 6px; padding: 14px 18px; margin: 16px 0; line-height: 1.7;">
  <span style="flex-shrink: 0; font-size: 16px;">💡</span>
  <div>Both connection methods work over a local network. You do not need internet access.</div>
</div>

#### <span style="color: #3564e6;">1.2.1</span> Option 1: Connect Directly to the Module

Use an Ethernet cable to connect your computer to any Ethernet port on the module.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 800px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

On your computer, open https://10.192.1.4/ in a browser.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_2_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 500px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

#### <span style="color: #3564e6;">1.2.2</span> Option 2: Connect Through Tron2

Use Tron2's built-in routing to reach the module over the robot's Wi-Fi:

1. Make sure an Ethernet cable connects the module to the robot.

2. Connect your computer to the robot's Wi-Fi.

3. On your computer, open https://10.192.1.4/ in a browser.

### <span style="color: #3564e6;">1.3</span> Open the Interface

Open https://10.192.1.4/ in your browser. If your installation uses a different address for the module, use that address with `https://` instead.

Your browser may show an HTTPS certificate warning if the certificate does not match the IP address. A warning can also indicate another security issue. Before continuing, verify that the address belongs to the intended device and that you are on a trusted local network. If you have verified both and understand the warning, open the browser's advanced certificate details and use its option to continue. Labels such as **Advanced** or **Details** vary by browser. If you are unsure, stop and contact your administrator.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_3_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 800px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_4_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 500px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

### <span style="color: #3564e6;">1.4</span> Find Your Recordings and Exports

- **Recordings folder**: Recordings are saved on the module in `/home/guest/limx-agent/data/record` by default. Check `Data Root Directory` on the `Data` page for the path used by your installation:

  <img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_6_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 600px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

- **LeRobot export folder**: Find exported datasets in `/home/guest/limx-agent/data/lerobot/` on the module.


## <span style="color: #3564e6;">2.</span> Overview Page

Use the `Overview` page to check live data, record a task, review today's recordings, and check available disk space.

### <span style="color: #3564e6;">2.1</span> Check Camera Feeds and Joint States

Before recording, check the camera feeds and joint states in `Real-time Visualization`.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_7_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 800px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

- **Camera feeds: Top (head), Left (left wrist), and Right (right wrist)**:

  The software automatically selects three feeds from the available video topics.

- **Connection status**:

  - Green wireless icon, `connected`: The interface is connected to the local bridge and can receive topics and image frames.

  - Gray wireless icon, `connecting/disconnected`: The connection is still being established or is unavailable. If the icon stays gray, follow section 6, Troubleshooting.

- **Refresh**: Reload the available topics and reconnect.

- **Add more cameras**: Add a video topic manually if the feed you need is not selected automatically.

- **Download current image**: Save a single frame to your computer.

**JointState Line Chart**:

- The software automatically selects a joint state topic, such as `/joint_states`.

- Use `Add Topic` to view additional joint state sources alongside it.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_8_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1100px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

### <span style="color: #3564e6;">2.2</span> Configure and Record a Task

Use the `Data Recording` panel on the right to set up and control each recording.

**Set up the recording**:

**1. File Name Prefix**: Enter a short task name so you can identify the recording later. The software adds a timestamp automatically.

**2. ROS Version and ROS Distro**: Check the ROS version and distribution used by the recording software.

**3. ROS connection settings**: For ROS 2, set `ROS_DOMAIN_ID` to match the robot you want to record. For ROS 1, set `ROS_MASTER_URI` to the address of that robot's ROS master.

<div style="display: flex; align-items: flex-start; gap: 8px; background-color: #fff8eb; border: 1px solid #f1d8a6; border-radius: 6px; padding: 14px 18px; margin: 16px 0; line-height: 1.7;">
  <span style="flex-shrink: 0; font-size: 16px;">⚠️</span>
  <div><strong>Working with multiple robots</strong>: Use different ROS 2 domains for independent robot systems. Devices that need to communicate within the same system must share the same domain; do not assign a different domain to each computer. For ROS 1, make sure each connection points to the intended robot's ROS master.</div>
</div>

**4. ROS2 Storage**: <strong>For ROS 2, select the recording format. The default is MCAP, shown as mcap in the interface.</strong>

<div style="display: flex; align-items: flex-start; gap: 8px; background-color: #fff8eb; border: 1px solid #f1d8a6; border-radius: 6px; padding: 14px 18px; margin: 16px 0; line-height: 1.7;">
  <span style="flex-shrink: 0; font-size: 16px;">💡</span>
  <div><strong>About MCAP</strong>: MCAP is an open-source recording format with embedded message schemas, indexing, and compression. Tools such as Foxglove can read MCAP recordings. See the official documentation: <a href="https://mcap.dev/">https://mcap.dev/</a></div>
</div>

**5. Topic selection**:

- **All topics**: Record all available topics when you need a complete set.
- **Selected topics**: Use `Partial Recording` to choose only the topics you need and reduce recording size. Select at least one topic. Use `Refresh` if you need to update the topic list.

**6. Save your settings**: If the panel shows `Unsaved`, click `Save`. Confirm that it shows `Saved` before you start recording.

<table role="presentation" style="border-collapse: collapse; width: 100%; table-layout: fixed; border: none; margin: 16px 0 24px;">
  <colgroup>
    <col style="width: 68%;">
    <col style="width: 32%;">
  </colgroup>
  <tbody>
    <tr style="background: transparent; border: none;">
      <td style="border: none; padding: 12px 10px; text-align: center; vertical-align: top;"><img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_9_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1100px; display: block; height: auto; box-sizing: border-box; margin: 0;"></td>
      <td style="border: none; padding: 12px 10px; text-align: left; vertical-align: top;"><strong>Start and stop a recording</strong>:<br>1. Click <strong style="color: #22863a;">Start Recording</strong> to begin, or <strong style="color: #d32f2f;">Stop Recording</strong> to finish. You can also press the <strong>Space bar</strong> to start or stop when focus is outside an input field.</td>
    </tr>
    <tr style="background: transparent; border: none;">
      <td style="border: none; padding: 12px 10px; text-align: center; vertical-align: top;"><img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_10_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1100px; display: block; height: auto; box-sizing: border-box; margin: 0;"></td>
      <td style="border: none; padding: 12px 10px; text-align: left; vertical-align: top;">2. After you click <strong style="color: #22863a;">Start Recording</strong>, check the elapsed time:<br><strong>Output path</strong>: Check this path to see where the current recording is being saved.</td>
    </tr>
    <tr style="background: transparent; border: none;">
      <td style="border: none; padding: 12px 10px; text-align: center; vertical-align: top;"><img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_11_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1100px; display: block; height: auto; box-sizing: border-box; margin: 0;"></td>
      <td style="border: none; padding: 12px 10px; text-align: left; vertical-align: top;">3. Click <strong style="color: #d32f2f;">Stop Recording</strong> when the task is complete:<br>When you <strong>stop recording</strong>, the list refreshes automatically. Look for the new recording highlighted in light green.</td>
    </tr>
  </tbody>
</table>

### <span style="color: #3564e6;">2.3</span> Today's Data

<table role="presentation" style="border-collapse: collapse; width: 100%; table-layout: fixed; border: none; margin: 16px 0 24px;">
  <colgroup>
    <col style="width: 50%;">
    <col style="width: 50%;">
  </colgroup>
  <tbody>
    <tr style="background: transparent; border: none;">
      <td style="border: none; padding: 12px 10px; text-align: center; vertical-align: top;"><img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_12_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 600px; display: block; height: auto; box-sizing: border-box; margin: 0;"></td>
      <td style="border: none; padding: 12px 10px; text-align: left; vertical-align: top;">The <code>Today's Data</code> card lists up to 10 recordings added today:<ul><li><strong>Download</strong>: Save a recording to your computer.</li><li><strong>Delete</strong>: Permanently delete a recording. Back up anything you need first.</li><li><strong>View all data</strong>: Open the <code>Data</code> page to browse and manage all recordings.</li></ul></td>
    </tr>
  </tbody>
</table>

### <span style="color: #3564e6;">2.4</span> Check Available Disk Space

<table role="presentation" style="border-collapse: collapse; width: 100%; table-layout: fixed; border: none; margin: 16px 0 24px;">
  <colgroup>
    <col style="width: 50%;">
    <col style="width: 50%;">
  </colgroup>
  <tbody>
    <tr style="background: transparent; border: none;">
      <td style="border: none; padding: 12px 10px; text-align: center; vertical-align: top;"><img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_13_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 600px; display: block; height: auto; box-sizing: border-box; margin: 0;"></td>
      <td style="border: none; padding: 12px 10px; text-align: left; vertical-align: top;">Check <code>Available Disk Space</code> before recording. It shows free space on the disk that holds the recordings folder:<ul><li><strong>Low space warning</strong>: Below about 20 GB. Free up space before a long recording.</li><li><strong>Critical alert</strong>: Below about 5 GB. Stop recording and free up space before continuing.</li></ul></td>
    </tr>
  </tbody>
</table>

## <span style="color: #3564e6;">3.</span> Data Page

Use the `Data` page to find local recordings, inspect metadata, download recordings to your computer, or delete them individually or in batches. You can also export ROS 2 MCAP recordings to a LeRobot dataset.

### <span style="color: #3564e6;">3.1</span> Find and Select Recordings

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_14_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1000px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

Use the controls above the `Recorded Data` list to find and select recordings:

- **Recording count**: Check the badge for the number of entries.

- **Refresh**: Rescan the local recordings folder to update the list.

- **Selection**: Select recordings for export or batch deletion. Use the select-all control to select the full list, or `Deselect All` to clear your selection.

- **Total Size**: Check how much disk space the recordings use.

- **Data Root Directory**: Find the recordings folder on the module.

- **Search**: Filter recordings by folder or file name.

- **Sort**: Choose `By Time` to sort chronologically, or sort by name or size.

Check each entry's ROS type to identify its storage format:

- **ROS 2**: Typically a folder containing `.mcap` files and `metadata.yaml`.

- **ROS 1**: Typically a single `.bag` file.

### <span style="color: #3564e6;">3.2</span> Inspect Recording Metadata

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_15_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 800px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

Click `Metadata` on the right of an entry to inspect its details:

- **ROS 2**: View a read-only preview of `<directory>/metadata.yaml` from the recording folder.

- **ROS 1**: View basic file information. A `.bag` file does not have a separate `metadata.yaml` file; it stores its metadata within the bag.

Use these details to check:

- Recording start and end times, topics, and message statistics for ROS 2.

- File size and modification time for ROS 1 and ROS 2.

### <span style="color: #3564e6;">3.3</span> Download Recordings

Click `Download` next to a recording to save it to your computer:

- **ROS 1 (.bag)**: Download the bag file directly.

- **ROS 2 (folder)**: The software packages the folder as a `.zip` file for download.

<div style="display: flex; align-items: flex-start; gap: 8px; background-color: #fff8eb; border: 1px solid #f1d8a6; border-radius: 6px; padding: 14px 18px; margin: 16px 0; line-height: 1.7;">
  <span style="flex-shrink: 0; font-size: 16px;">⚠️</span>
  <div>Your browser may change Chinese or special characters in downloaded file names. If a folder or file name contains these characters, check the downloaded name before matching it to the original recording.</div>
</div>

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_16_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 800px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

### <span style="color: #3564e6;">3.4</span> Delete Recordings

Deleting a recording permanently removes it from the module. Back up any recordings you need before deleting them.

- **Delete one recording**: Click `Delete` on the right of the entry.

- **Delete multiple recordings**: Select the entries, then click `Batch Delete` in the upper right. The number in parentheses shows how many recordings are selected, for example, `Batch Delete (1)`.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_17_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1000px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

<div style="display: flex; align-items: flex-start; gap: 8px; background-color: #fff8eb; border: 1px solid #f1d8a6; border-radius: 6px; padding: 14px 18px; margin: 16px 0; line-height: 1.7;">
  <span style="flex-shrink: 0; font-size: 16px;">💡</span>
  <div>To move recordings off the module, use <code>Download</code> or copy them directly from the disk. Verify your copies before deleting the originals.</div>
</div>

### <span style="color: #3564e6;">3.5</span> Export a LeRobot Dataset

Export ROS 2 MCAP recordings as a LeRobot dataset for local training or evaluation.

<div style="display: flex; align-items: flex-start; gap: 8px; background-color: #fff8eb; border: 1px solid #f1d8a6; border-radius: 6px; padding: 14px 18px; margin: 16px 0; line-height: 1.7;">
  <span style="flex-shrink: 0; font-size: 16px;">💡</span>
  <div>The export uses LeRobot dataset format v3.0. Check that your training tools support this format and whether they require additional data preparation. You can export multiple recordings of the same task together.</div>
</div>

To export recordings:

**1. Select the recordings**: Choose one or more **ROS 2 recording folders containing MCAP files**. Export is not available for ROS 1 `.bag` files.

**2. Click `Export LeRobot`.**

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_18_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1000px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

**3. In the `Export to LeRobot Dataset` dialog, enter a `Task Description`:**

<div style="display: flex; align-items: flex-start; gap: 8px; background-color: #fff8eb; border: 1px solid #f1d8a6; border-radius: 6px; padding: 14px 18px; margin: 16px 0; line-height: 1.7;">
  <span style="flex-shrink: 0; font-size: 16px;">💡</span>
  <div>The same task description applies to all recordings in this export. Select recordings of the same task so the description matches each one.</div>
</div>

Describe the task in a short, specific instruction, such as "Pick up the apple." Training pipelines for vision-language models (VLMs) or vision-language-action models (VLAs) can use this description as the task instruction.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_19_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 700px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

**4. Click `Start Export`.**

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_20_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 700px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

**5. Open `Export Records` to check progress and retrieve the dataset:**

- Check whether the export is running, has completed, or has failed.
- Review the logs for progress or error details.
- Browse export history and download completed exports. Delete exported files you no longer need.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_21_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 700px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_22_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 700px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

<div style="display: flex; align-items: flex-start; gap: 8px; background-color: #fff8eb; border: 1px solid #f1d8a6; border-radius: 6px; padding: 14px 18px; margin: 16px 0; line-height: 1.7;">
  <span style="flex-shrink: 0; font-size: 16px;">⚠️</span>
  <div>The exported <code>meta/stats.json</code> omits image statistics to reduce CPU overhead. Before training, use your chosen training toolchain to compute any statistics it requires. Training with openpi 0.5 requires image statistics; compute them before using the exported dataset.</div>
</div>

## <span style="color: #3564e6;">4.</span> Change the Color Theme

The interface follows your computer's light or dark theme by default. Click the theme icon to change it.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_27_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1000px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

## <span style="color: #3564e6;">5.</span> Switch Between Chinese and English

The interface uses your browser's language preference by default. Click the globe icon to choose Chinese or English.

<img src="https://oss.limxdynamics.com/uploads/material/%E9%BB%98%E8%AE%A4/TRON%202/demo/candy/LimX_Dynamics_Data_Acquisition_0_sec_28_en.png" alt="" title="image.png" loading="lazy" style="width: 100%; max-width: 1000px; display: block; height: auto; box-sizing: border-box; margin: 16px 0;">

## <span style="color: #3564e6;">6.</span> Troubleshooting

<table style="border-collapse: collapse; width: 100%; table-layout: fixed; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere;">
  <colgroup>
    <col style="width: 8%;">
    <col style="width: 24%;">
    <col style="width: 25%;">
    <col style="width: 43%;">
  </colgroup>
  <thead>
    <tr style="background-color: #f5f7fa;">
      <th scope="col" style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: center; vertical-align: middle;"><strong>No.</strong></th>
      <th scope="col" style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: center; vertical-align: middle;"><strong>Problem</strong></th>
      <th scope="col" style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: center; vertical-align: middle;"><strong>Possible Causes</strong></th>
      <th scope="col" style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: center; vertical-align: middle;">What to Do</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: center; vertical-align: top;"><strong>1</strong></td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;"><strong>No camera image, or the connection stays unavailable</strong></td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;">Network or bridge connection issue; camera topics are not publishing</td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;">Check the following in order:
        <ol style="margin: 8px 0; padding-left: 20px;">
          <li>Make sure the page uses HTTPS: <code>https://.../overview</code>. For certificate warnings, follow section 1.3.</li>
          <li>Click <code>Refresh</code> to reload topics and reconnect.</li>
          <li>Check that the robot is publishing the video topics you need, including compressed image topics such as <code>.../compressed</code>.</li>
          <li>If the connection still fails, check your Ethernet or Wi-Fi connection and ask an administrator to inspect the services:
            <ul style="margin: 8px 0; padding-left: 20px;">
              <li>An administrator with access to the module at 10.192.1.4 can check its Docker container logs for connection errors.</li>
            </ul>
          </li>
        </ol>
      </td>
    </tr>
    <tr>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: center; vertical-align: top;"><strong>2</strong></td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;"><strong>Start Recording does not respond or shows an error</strong></td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;">
        <ul style="margin: 8px 0; padding-left: 20px;">
          <li>No topics selected</li>
          <li>ROS connection settings do not match the robot</li>
          <li>Recording service error</li>
        </ul>
      </td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;">Check the following in order:
        <ol style="margin: 8px 0; padding-left: 20px;">
          <li>If you use <code>Partial Recording</code>, select at least one topic.</li>
          <li>For ROS 2, match <code>ROS_DOMAIN_ID</code> to the robot's domain. For ROS 1, point <code>ROS_MASTER_URI</code> to the robot's ROS master. Save any changes before recording.</li>
          <li>Refresh the page and try again. If the error persists, ask an administrator to check the ros-bridge logs on the module.</li>
        </ol>
      </td>
    </tr>
    <tr>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: center; vertical-align: top;"><strong>3</strong></td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;"><strong>Settings will not save, or a permission error appears (EACCES/EPERM)</strong></td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;">The container may not have write access to the mounted folder on the module</td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;">Ask an administrator to check the mounted folder's ownership and permissions on the module, grant the service the required write access, and restart it. Then try saving your settings again.</td>
    </tr>
    <tr>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: center; vertical-align: top;"><strong>4</strong></td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;"><strong>Recording fails or stops when disk space is low</strong></td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;">The recording disk has too little free space</td>
      <td style="border: 1px solid #e0e0e0; padding: 6px 10px; text-align: left; vertical-align: top;">Free up space before recording again:
        <ul style="margin: 8px 0; padding-left: 20px;">
          <li>Stop any active recording.</li>
          <li>Delete recordings you no longer need, or copy them to a larger disk. Verify the copies before deleting the originals.</li>
          <li>Check <code>Available Disk Space</code> on the Overview page before restarting. See section 2.4 for the warning thresholds.</li>
        </ul>
      </td>
    </tr>
  </tbody>
</table>
