Quick Start:
10-Minute Read-Only Verification This chapter primarily introduces the sequential validation of six fundamental criteria: network, version, ROS 2, topic count, battery level, and joint status. It also supports the optional generation of a read-only system health snapshot.
TIP
Completing the six basic validations (network, version, ROS 2, topic count, battery level, and joint status) indicates passing the 10-minute read-only verification test. This loop adheres strictly to the safety principles of zero motion control, zero disk writing, and zero configuration changes. It does not include head motion, MCAP recording, service stopping, or system tuning operations.
TIP
- Applicable Baseline: RealBot01_RX75; Software Version:
V1.1.1-dl/V1.2.9; Hardware Version:1.2. - Risk Level: Read-only.
- Prerequisites: The development workstation is connected to the router's LAN port; the robot is fully powered on and booted normally; interactive SSH login is accessible.
- Safety Halt Mechanism: None of the commands in this chapter issue motion controls or system state changes. You can press
Ctrl+Cat any time during command execution to abort without needing subsequent reset procedures.
TIP
The examples/ scripts referenced on this page are obtained through the delivery package provided via official delivery channels; use the delivery package version matching your software version. The paths shown in this document are for illustrating script structure only.
Network Connectivity
- Execution Shell: Local development workstation.
- Risk Level: Read-only.
export ROBOT_IP=192.168.127.10
ping -c 2 "$ROBOT_IP"- Success Criteria: Receives reply with 0% packet loss.
- Troubleshooting: Abort verification; inspect LAN ports, Ethernet cables, workstation subnet configuration, and field IP settings.
Version Query
- Execution Shell: Local development workstation.
- Risk Level: Read-only.
curl --connect-timeout 3 --max-time 10 --fail-with-body \
-X POST "http://${ROBOT_IP}:9091/robot/version" \
-H 'Content-Type: application/json' \
-d '{}'Success Criteria: Response returns
"code": 200alongside theproduct_versionfield, correctly logging the returned software version, hardware version, and device model.Troubleshooting: Refer to Verifying REST API Version Endpoint for diagnostics. Do not carry over verified badges from this manual before obtaining version details.
Running the following script on your local development workstation completes both Network Connectivity and Version Query checks in a single run:
examples/01_quick_start/quick_readonly.shNote
ROBOT_IPmust be explicitly set prior to script execution.- The local machine must meet
bash,ping,curl, andpython3dependencies. python3is exclusively used for strict JSON parsing of REST output from stdin; process data is never written to disk.
Loading ROS 2 Environment
- Execution Shell: Robot onboard system (requires prior SSH login via
ssh "${ROBOT_USER}@${ROBOT_IP}"on local workstation, whereROBOT_USERis the robot login username provided via delivery channels). - Risk Level: Read-only.
source /opt/ros/humble/setup.bash
source /home/realman/workspace/rm_robot_ws/install/setup.bash- Success Criteria: Both
sourcecommands return exit code 0, and the current shell environment correctly recognizes and invokesros2. - Troubleshooting: Confirm that you have successfully entered the robot onboard shell, then double-check the path definitions and execution sequence above.
Topic Count
- Execution Shell: Robot onboard system.
- Risk Level: Read-only.
ros2 topic list | wc -l
ros2 topic list | grep -E '^/robot_driver/battery_state$|^/robot_slave/states$'- Success Criteria: Total topic count is greater than 0, and both essential topics listed above appear exactly once.
Note
Historical totals may differ from active runtime totals; thus, a single absolute count is not used as a generic threshold.
- Troubleshooting:
- Total topic count is 0: Re-execute the Loading ROS 2 Environment step.
- Missing key topics: Save the complete topic list output and version info for diagnostics. Do NOT restart services on your own.
Reading Battery State
- Execution Shell: Robot onboard system.
- Risk Level: Read-only.
timeout 10s ros2 topic echo --once /robot_driver/battery_state- Success Criteria: Receives one
rm_robot_interfaces/msg/RobotPowermessage within 10 seconds, with command returning exit code 0.Note
For semantic definitions and physical units of data fields, refer to Status and Sensor Data and Data & Message Definitions. Do not infer voltage conversion formulas purely based on field names.
- Troubleshooting: An exit code of 124 indicates a timeout. Run
ros2 topic info /robot_driver/battery_stateto check publisher status and message types, save the output, and abort verification.
Reading Joint States
- Execution Shell: Robot onboard system.
- Risk Level: Read-only.
timeout 10s ros2 topic echo --once --full-length /robot_slave/states- Success Criteria: Receives one
std_msgs/msg/Stringmessage within 10 seconds. The parsed JSON contains dual-arm, head, or waist joint states published by the physical robot.Note
The unit for
positionrecorded in this baseline version is0.001°. Re-verify if using other software versions. - Troubleshooting:
- Exit code 124: Execute
ros2 topic info /robot_slave/statesto verify publisher status. - Incomplete message payload: Ensure the
--full-lengthflag is included.
Note
Issuing motion commands solely to capture state data is strictly prohibited.
- Exit code 124: Execute
Generating Onboard Read-Only Health Snapshot
- Execution Shell: Client development workstation, executed from the delivery package root directory. The script executes on the robot onboard system via SSH standard input.
- Risk Level: Read-only.
- The script publishes no topics, invokes no services, starts no recordings, alters no parameters, and does not restart service workloads.
- Initial execution of ROS 2 CLI tools may trigger background daemons or generate framework logs; this does not alter robot business configurations or actuator states.
ssh "${ROBOT_USER}@${ROBOT_IP}" 'bash -s' \
< examples/01_quick_start/robot_health_snapshot.shStatus Checks: The script evaluates each item sequentially and outputs real-time statuses (
PASS,WARN, orFAIL):PASS: Item meets script read-only criteria.WARN: Capabilities or critical topic data are missing, timed out, or diagnostic utilities are unavailable, but no direct evidence indicates total system failure.FAIL: Foundational dependencies (e.g., ROS 2 runtime environment, core services, ROS node graph, or dedicated block device mounts for recording) fail criteria.
Note
Final evaluation adopts the most severe level observed and does not use hardcoded thresholds for historical node/topic/service counts.
Report Generation:
- The script outputs to terminal by default. To generate a technical support diagnostic report, explicitly specify the robot-side output directory:
bashssh "${ROBOT_USER}@${ROBOT_IP}" 'bash -s -- --report-dir "$HOME/realbot-health-reports"' \ < examples/01_quick_start/robot_health_snapshot.sh- Only when
--report-diris explicitly passed will the script create a file with0600permissions:
textrobot-health-{UTC}-{unique}.txtWhere
{unique}is an auto-generated unique suffix. Repeated triggers within the same second will not overwrite historical reports or write to the recording SSD.
Note
The script itself reads no credential files nor prompts for passwords, tokens, Authorization headers, or private keys. However, system journal and topic payloads may indirectly contain sensitive data. Automated sanitization is not exhaustive; you must manually review and remove serial numbers, customer network details, proprietary data, and credentials before submission.
The script verifies the recording drive using
findmnt, block device checks, anddfwithout scanning directory contents. Only add--include-directory-usagewhen confirmed that no active recordings, uploads, or real-time tasks are running; this flag executesdu -sh(up to 10s timeout), which increases disk I/O.Success Criteria: Script exit code is
0with a final status ofPASS.- Output shows
WARN: Evaluate whether risk items directly impact current development tasks before proceeding. - Output shows
FAIL: Immediately halt subsequent disk-writing steps. - Special Note: For LiDAR-dependent tasks, explicitly confirm positive published frequencies and valid
rangesdata on/scan.
- Output shows
Troubleshooting: Retain all terminal output logs. Automatically re-running the script or forcing a restart on
realman.serviceis strictly prohibited. Prioritize diagnosing environment variables, SSD mounting, key topic streams, and system logs corresponding to failed items. Contact technical support if necessary.

