yahboom
HomeTutorialsProduct
Solution
Blog
Online Store
About Us
EN/中文
Store
ROSMASTER A1 PRO📖
00.Configuration and Operation Guide
  • 0. Unboxing and Review
  • 1.Assembly Videos
  • 2.User Manual
  • 3.Enter Docker (For Raspberry Pi)
  • 4.A1Pro Front Wheel Servo Calibration
  • 5.USB Camera Calibration
  • 6.Depth Camera Calibration
  • 7.FAQ
  • 8.Desktop Configuration Center and Remote Control Guide
01.Chassis Control Course
  • 1.Robot Information Publishing
  • 2.Robot Handle Control
  • 3.Robot Keyboard Control
  • 4.Linear Velocity Calibration
  • 5.Angular Velocity Calibration
  • 6.Robot URDF Model
  • 7.Robot EKF State Estimation
02.Lidar Course
  • 1.Lidar Introduction and Use
  • 2.Lidar Obstacle Avoidance
  • 3.Lidar Following
  • 4.Lidar Patrol
  • 5.GMapping-SLAM Mapping
  • 6.Cartographer-SLAM Mapping
  • 7.Slam-Toolbox Mapping
  • 8.Lifelong Mode Mapping
  • 9.Navigation2 Single Point Navigation
  • 10.Navigation2 Multi Point Navigation
  • 11.Cartographer Relocalization Navigation
  • 12.Slam-Toolbox Localization Navigation
  • 13.Synchronous Mapping And Navigation
  • 14.Aruco Visual Relocalization Navigation
  • 15.Mobile App Mapping And Navigation
  • 16.AprilTag Transport
  • 17.Color Block Transport
03.USB Camera-Depth Camera Course
  • 1.USB Camera Introduction
  • 2.USB Camera Intrinsic Calibration
  • 3.Nuwa-HP60C Camera Introduction (Depth Camera Only)
  • 4.Depth Camera Distance Measurement (Depth Camera Only)
  • 5.Depth Pseudo Color Image (Depth Camera Only)
  • 6.Block Volume Calculation (Depth Camera Only)
  • 7.Edge Detection (Depth Camera Only)
  • 8.RTAB-Map SLAM Mapping (Depth Camera Only)
  • 9.RTAB-Map Navigation (Depth Camera Only)
04.Robotic Arm and 3D Space Gripping Course
  • 0.Robotic Arm Basic Usage
  • 1.Robotic Arm Kinematics
  • 2.Robotic Arm Chassis Coordination Control
  • 3.AprilTag ID Sorting
  • 4.AprilTag Height Anomaly Sorting
  • 5.AprilTag Tracking and Grasping
  • 6.Color Block Sorting
  • 7.Color Block Height Anomaly Sorting
  • 8.Color Block Tracking and Grasping
  • 9.Wood Block Shape Sorting
  • 10.KCF Tracking and Grasping Objects
  • 11.Mediapipe Gesture ID Sorting AprilTag
  • 12.Mediapipe Gesture Height Sorting AprilTag
  • 13.Desktop Tracking and Grasping AprilTag
  • 14.3D Spatial Tracking AprilTag
  • 15.Line Following Obstacle Clearing
  • 16.Transformer Model Tracking Algorithm
05.Road Network Planning and Navigation
  • 1.Introduction To Road Network Planning
  • 2.Road Network Annotation
  • 3.Planning And Navigation Between Waypoints
  • 4.Road Network Navigation In Any Pose
  • 5.Path Re-planning
06.OpenClaw Basic Course
  • 1.Introduction to OpenClaw
  • 2.OpenClaw Core Concepts
  • 3.OpenClaw API-KEY Configuration
  • 4.OpenClaw Switch Models
  • 5.OpenClaw System Prompt Words
  • 6.OpenClaw Common CLI Commands
07.OpenClaw Interaction Method
  • 1.OpenClaw Webchat Interaction
  • 2.OpenClaw Tui Interaction
  • 3.OpenClaw Voice Dialogue Interaction
  • 4.OpenClaw WhatsApp Interaction
08.OpenClaw Development
  • 1.OpenClaw Connecting to Robot MCP Service
  • 2.Robot CLI Command Tool
  • 3.robot-control plugin tool
  • 4.reply-bridge plugin tool
  • 5.OpenClaw Multimodal Vision
  • 6.OpenClaw Chassis Control
  • 7.OpenClaw Robotic Arm Control
  • 8.OpenClaw Skills Development
  • 9.OpenClaw Scheduled Tasks
  • 10.OpenClaw Multi-Agent Intelligent Agent
  • 11.OpenClaw Active Interaction
  • 12.OpenClaw Vector Memory
09.OpenClaw Embodied Intelligent Application
  • 1.OpenClaw Target Tracking
  • 2.OpenClaw Arm Tracking And Grasping
  • 3.OpenClaw Arm Fixed-point Placement
  • 4.OpenClaw Waste Sorting
  • 5.OpenClaw SLAM Mapping And Navigation
  • 6.OpenClaw Navigation Transport
  • 7.OpenClaw AprilTag Grasping
  • 8.OpenClaw Color Line Patrol
  • 9.OpenClaw Visual Distance Measurement
10.OpenClaw Scenario Sandbox
  • 1.Map Description and Prop Placement
  • 2.Build Sand Table Map
  • 3.Visual Relocation Markers
  • 4.Map Mapping Markers
  • 5.OpenClaw Scenario Sandbox Comprehensive Case
11.AI Model Basics
  • 1.AI Large Model Types and Principles
  • 2.RAG Retrieval Enhancement and Model Training Samples
  • 3.Embodied Intelligent Robot System Architecture
  • 4.Embodied Intelligent Functions Core Source Code
12.AI Model Development
  • 1.Register a Model Service Provider Aaccount
  • 2.Configuring API-KEY
  • 3.Introduction to Dify
  • 4.Basic Dify Features
  • 5.AI Large Model Development - chatbot
  • 6.Deploy the RAG Knowledge Base
  • 7.RAG Knowledge Base + chatbot
  • 8.AI Agent Workflow
  • 9.Custom Wake-up Response
13.AI Model - Text Version
  • 1.Semantic Understand and Command Follow
  • 2.Multimodal Visual Understand
  • 3.Multimodal Visual Understand + Robotic Arm Gripping
  • 4.Multimodal Visual Understand+SLAM Navigation
  • 5.Robotic Arm Gripping+Multimodal Visual Understand+SLAM Navigation
  • 6.Intention Estimation
14.AI Model - Voice Version
  • 1.Semantic Understand and Command Follow
  • 2.Multimodal Visual Understand
  • 3. Multimodal Large Model+Robotic Arm Gripping
  • 4.Multimodal Visual Understand+SLAM Navigation
  • 5.Robotic Arm Gripping+Multimodal Visual Understand+SLAM Navigation
  • 6.Intention Estimation
15.Mediapipe Visual Course
  • 1.Hand Detection
  • 2.Posture Detection
  • 3.Overall Detection
  • 4.Facial Landmark Detection
  • 5.Face Detection
  • 6.Face Special Effects
  • 7.3D Object Recognition
  • 8.Brush
  • 9.Finger Control
  • 10.Palm Target Positioning
  • 11.Fingertip Trajectory Recognition
  • 12.Fingertip Gesture Control Cobotic Arm
  • 13.Gesture Grabbing and Releasing Objects
  • 14.Finger Control Robotic Arm
  • 15.Medipipe Gesture Control Robotic arm Cction Group
16.MoveIt2 Simulation Course
  • 1.MovelT2 Configuration
  • 2.MovelT2 Simulation-Reality Linkage
  • 3.Random Movement
  • 4.Forward Kinematics Design
  • 5.Inverse Kinematics Design
  • 6.Cartesian Path
  • 7.Scene Design
  • 8.Trajectory Planning
  • 9.Collision Detection
  • 10.3D Perception Obstacle‑Avoidance
17.Multi-vehicle Course
  • 1.Multi-vehicle Control
  • 2.Multi-vehicle Navigation
  • 3.Multi-vehicle Formation
18.YOLO26 Development
  • 1.CLI Use
  • 2.Object Detection
  • 3.Instance Segmentation
  • 4.Pose Estimation
  • 5.Image Classification
  • 6.Oriented Object Detection
  • 7.YOLOv26 + DeepSORT Tracking
  • 8.Monocular Depth Estimation
19.Control Board STM32 Driver Course
  • 0.Notes (Must Read)
  • 1.About Expansion Board
  • 2.STM32 Development Environment
  • 3.Button Control
  • 4.FreeRTOS Application
  • 5.Serial Communication
  • 6.SBUS Model Aircraft Remote Control
  • 7.CAN Bus Communication
  • 8.RGB Colorful Light Bar
  • 9.Timer Interrupt to Control PWM Servo
  • 10.Control Serial Port Servos
  • 11.Nine-axis Attitude Sensor to Obtain Data
  • 12.Control Motor
  • 13.Timer Captures the Encoder Data
  • 14.1 Kinematic Analysis of Mecanum Wheel
  • 14.2 Kinematic Analysis of Ackerman
  • 14.3 Kinematic Analysis of 4WD
  • 15.PID Control Robot Movement
20.Docker Course
  • 1.Docker Introduction and Installation
  • 2.Docker Basic Commands
  • 3.Docker Submission and Multi-Terminal Access
  • 4. Docker Startup Script
  • 5.Docker-Vscode Environment Construction
21.Image Processing Basics Course
  • 1. Introduction to Open Source CV
  • 2. Image reading and display
  • 3. Image writing
  • 4. Image quality
  • 5. Pixel Operation
  • 6. Image zoom
  • 7. Image cutting
  • 8. Image translation
  • 9. Image Mirroring
  • 10. Affine Transformation
  • 11. Image Rotation
  • 12. Perspective Transformation
  • 13. Grayscale processing
  • 14. Image Binarization
  • 15. Edge Detection
  • 16. Line drawing
  • 17. Rectangle and circle drawing
  • 18. Drawing text and pictures
22.Linux System Course
  • 1.Introduction to Linux system
  • 2.Ubuntu file system
  • 3.Ubuntu common commands
  • 4.Ubuntu common editors
  • 5.Ubuntu software operation commands
  • 6.Virtual machine installation
  • 7.SSH remote control
  • 8.VNC remote control
  • 9.Transfer files remotely
  • 10.Driver library and communication
  • 11.Static IP and hotspot mode
  • 12.Bind device ID
  • 13.Capacity expansion and resource allocation
  • 14.Update system software sources
  • 15.Set root user password
  • 16.sudo free password
  • 17.Connect to WiFi network
  • 18.View system version
  • 19.Customized service management
  • 20.Back up system image
23.ROS2 Basic Course
  • 1.Introduction to ROS2
  • 2.ROS2 install Humble
  • 3.ROS2 development environment
  • 4.ROS2 workspace
  • 5.ROS2 function package
  • 6.ROS2 node
  • 7.ROS2 topic communication
  • 8.ROS2 service communication
  • 9.ROS2 action communication
  • 10.ROS2 custom interface message
  • 11.ROS2 parameter service case
  • 12.ROS2 meta-function package
  • 13.ROS2 distributed communication
  • 14.ROS2 DDS
  • 15.ROS2 time related API
  • 16.ROS2 common command tools
  • 17.ROS2 rviz2 use
  • 18.ROS2 rqt toolbox
  • 19.ROS2 Launch startup file configuration
  • 20.ROS2 recording and playback tool
  • 21.ROS2 URDF model
  • 22.ROS2 Gazebo simulation platform
  • 23.ROS2 TF2 coordinate transformation
24.Main Control Course
Jetson Orin Nano_NX
  • 1.Jetson Orin board introduction
  • 2.Restore the factory image system
  • 3.Backup SSD system
  • 4.SSD expansion
  • 5.Network configuration
  • 6.SSH remote login
  • 7.VNC remote control
  • 8.Remote file transfer
  • 9.Jtop tool
  • 10.Exchange space expansion
Raspberry Pi
  • 1. Introduction to Raspberry PI 5
  • 2. Raspberry PI system installation and backup
  • 3. Powering the Raspberry PI 5
  • 4. Startup of Raspberry PI 5
  • 5. Update and upgrade operating system
  • 6. Introduction to raspi-config tool
  • 7. config.txt file description
  • 8. Network Configuration
  • 9. remote access
  • 10. Transfer files remotely
  • 11. Set display resolution and rotation
  • 12. Set screen to sleep
  • 13. Play audio and video
  • 14. Using USB camera
  • 15. Using MIPI camera
  • 16. Get real-time temperature of Raspberry Pi
RDKX5
  • 1.Introduction to RDK X5 board
  • 2.Write system file
  • 3.Hardware interface description
  • 4.Install case and other accessories
  • 5.Network configuration
  • 6.Remote login
  • 7.Update system
  • 8.srpi-config user guide
  • 9.config. txt configuration file
  • 10.Self-startup setting
  • 11.RDK exclusive command usage
  • 12.Linux command usage
  • 13.GPIO readwrite operation
  • 14.Image classification algorithm
  • 15.Use USB camera
  • 16.Use MIPI camera
  • 17.Binocular camera depth algorithm
  • 18. Controlling RGB Cooling Fans
Download
  • SystemFile
  • Code
  • 3D_Model_File
  • Software_Tools
  • Hardware_Info
  • Introduction_Manual
  • Script_File
  • Dify AI Agent
Download ZIP

Welcome to ROSMASTER A1 PRO repository

3.Embodied Intelligent Robot System Architecture

Multi-Agent Embodied Architecture

Multi-Agent Embodied Architecture1. Course Content2. Introduction to multi_brains3. Multi-Layer Reasoning Architecture3.1 Advantages of Layered Reasoning3.1.1 Decoupling of Task Decision and Action Conversion3.1.2 Improving the Success Rate of Long-Flow Tasks3.2 Decision-Layer AI3.3 Execution-Layer AI3.4 Frame-Selection-Layer AI4 . Task Cycle5. Historical Context6. Map Mapping7. Action Function Library7.1 Common Basic Action Functions for Both Versions (Shared by USB and Nuwa)7.2 USB Camera Exclusive Action Functions (action_service_usb.py)7.3 Nuwa Depth Camera Exclusive Action Functions (action_service_nuwa.py)7.4 Technical Difference Comparison of the Two Camera Solutions

1. Course Content

Understand the multi_brains multi-agent embodied framework.

2. Introduction to multi_brains

  • multi_brains is an embodied intelligence framework developed in-house by Yahboom Intelligent that is compatible with general-purpose AI large models. It avoids the issues of VLA models and end-to-end models, which require dedicated hardware, local computing power support, and long data collection and training time. By merely integrating the general-purpose AI models of cloud model providers, the edge robot can gain powerful embodied intelligence capabilities.

  • multi_brains expands training samples through the RAG knowledge base, allowing the robot to quickly adapt to different scenario tasks. It can be deployed on the vast majority of small-scale host devices, placing the massive model inference in the cloud or on a local server.

     

  • The core philosophy of multi_brains is to decouple the different stages of a task through multiple AI models in a layered manner. The current package uses terminal text interaction as the default entry point: terminal_client.py publishes user text, and llm_agent_node.py completes Dify calls, action execution, and the feedback closed loop. Its main improvements are:

    • A more stable text debugging entry point that does not rely on microphones, wake words, or ASR/TTS services, making it suitable for development, teaching, and experiment reproduction.

    • A more flexible decision-making mechanism with task routing added, enabling the AI agent to autonomously choose between multi-layer reasoning and simplified reasoning based on task difficulty, giving the AI higher autonomy and a better user experience.

    • An easily understandable visualized architecture flow. multi_brains builds visualized agents through Dify, and the data flow of the AI agent during operation can be observed in real time during debugging, allowing users to intuitively understand the specific process of multi-layer reasoning.

    • A fully localized RAG knowledge base, with no need to worry about sensitive data issues.

    • Seamless integration with most AI models worldwide. Through Dify's model supplier plugins, hundreds of AI models worldwide can be quickly and seamlessly integrated (if you need locally deployed models, local models can also be integrated).

    • Traceable historical records. By querying Dify's backend access history, users can query all the execution steps and history of every task instruction.

    • Terminal-traceable interaction process. terminal_client.py displays progress, final replies, and executed actions, making it easy to determine whether Dify decisions and robot actions are consistent.

    • A complete testing toolbox for quickly verifying core functional modules.

    • Simpler onboarding steps, with most operation steps streamlined and shortcut commands configured.

 

3. Multi-Layer Reasoning Architecture

  • The current workflow is mainly composed of a decision layer and an execution layer, with a frame-selection layer newly added to visual tracking tasks. Ordinary actions still run through the "decision layer -> execution layer -> ROS action feedback" closed loop; when a task requires tracking a visual target in the frame, a "frame-selection layer -> execution layer starts tracking" visual branch is added.

  • The design of layered reasoning and dynamic feedback reasoning provides stronger system robustness than a single-model architecture.

yahboom_m3 large model inference architecture.drawio

 

3.1 Advantages of Layered Reasoning

3.1.1 Decoupling of Task Decision and Action Conversion

  • The decision-layer AI focuses on thinking, planning, and decomposing task instructions.

  • The execution-layer AI focuses on chat replies and converting task steps into JSON text.

  • The frame-selection-layer AI is only responsible for outputting bbox coordinates based on the image and the target description, and does not participate in task planning or action control.

3.1.2 Improving the Success Rate of Long-Flow Tasks

When reasoning with a single-model approach, "natural language understanding + environment perception + process decomposition + bbox estimation + action function output" must be performed simultaneously, which tends to cause modality interference (language ambiguity or overlong instructions leading to comprehension errors). Layered reasoning processes the task in stages, enabling the decision layer to focus on task planning, the execution layer to focus on action execution, and the frame-selection layer to focus on visual target localization.

3.2 Decision-Layer AI

  • The decision-layer large model is mainly responsible for task planning. It can understand complex human instructions and decompose them into concrete task steps. For example, when it receives the instruction "Can you please get me a bottle of mineral water from the kitchen?", the large language model will decompose it into several tasks, as shown in the figure below.

decision-making level Large Model.drawio

3.3 Execution-Layer AI

  • The execution-layer large model is mainly responsible for chat replies and converting task steps into JSON text. It continuously receives feedback (success/failure) and images from the results of the robot's action execution, and issues the next action instruction according to whether the executed action succeeded or failed.

  • The execution-layer large model acts as a supervisor that continuously monitors the progress of the robot in executing task steps, and, based on the result feedback and environment information after the robot executes an action, thinks and judges the next action to execute, until the task is successfully completed or is ended early due to special circumstances.

3.4 Frame-Selection-Layer AI

  • The frame-selection-layer AI only participates in work when visually tracking, locking on to, or following a target. It receives the current image, the user's original instruction, and the decision layer's current step, and outputs whether the target was found, the target name, bbox coordinates, confidence, and a brief reason.

  • The output format of the frame-selection layer is strictly JSON, for example:

{"found":true,"target":"Green square","bbox":[120,80,360,300],"confidence":0.86,"reason":"The goal is clearly visible"}
  • After reading the frame-selection-layer output, the execution layer will output track_kcf(x1,y1,x2,y2) only if found=true and the bbox is valid; if there is no frame-selection result or the target is ambiguous, the execution layer will end the task and explain the reason to the user.

 

Execution layer model.drawio

 

4 . Task Cycle

  • After the user inputs a natural language instruction in the terminal client, a task cycle begins. Within this cycle, the user instruction, action result feedback, and image feedback all continue reasoning in the same Dify conversation_id, which acts as the temporary memory of the robot and allows it to "remember" what has happened in the current task.

  • When the execution layer outputs finishtask(), or the user enters reset in the terminal to reset the conversation, the robot resets the historical context of the AI model, which is equivalent to the robot "losing its memory" and forgetting what happened before.

  • If a new instruction is entered during execution, llm_agent_node will give priority to the new instruction and cancel the current navigation, line-following, or tracking actions as soon as possible.

The robot's waiting state.drawio

 

5. Historical Context

  • The robot's conversation history is stored in the AI application variables of Dify, with a default maximum of 50 rounds of conversation memory.

Conversation history context.drawio

 

6. Map Mapping

  • The robot uses a grid map for navigation. If the robot needs to understand position areas in the real world, a mapping relationship must be established between the grid map and the real-world environment areas; this relationship is called map mapping.

  • Suppose we use the robot to generate a grid map through SLAM mapping in a factory environment, and the real factory has several artificially divided areas, as shown in the figure below.

1

We establish a one-to-one correspondence between these real-world environment areas and letter symbols:

A: "Area 1", B: "Area 2", C: "Area 3", D: "Area 4", E: "Area 5", F: "Area 6", G: "Area 7", H: "Area 8", I: "Area 9"

Then, in the yaml file, the map coordinates are written for each letter symbol, for example:

xxxxxxxxxx
A: 
  name: 'Area 1'
  position:
    x: 4.4034953117370605
    y: 0.4879316985607147
  orientation:
    x: 0.0
    y: 0.0
    z: 0.701498621044694
    w: 0.7126708108744126

When we ask the robot to go to a certain actual area, we only need the large model to convert it into the corresponding letter symbol, so that the robot can understand the location areas in the real environment.

 

7. Action Function Library

  • The API functions in the robot's action function library are the core bridge through which the large model controls the robot to interact with the real physical world.

  • These API functions define the smallest atomic action units that the physical robot can perform in the physical world.

  • The AI large model converts the action sequence after thinking and planning into strict JSON text and sends it to the robot base (e.g., {"action": "set_cmdvel(0.2, 0.0, 0.0, 2.0)"}). After parsing, the robot distributes the calls to the corresponding underlying ROS 2 services or actions.

Action function library.drawio

According to the different vision sensor hardware installed, the system provides the USB camera version (action_service_usb.py) and the Nuwa depth camera version (action_service_nuwa.py) of the action service implementation. The specific function list and functions are as follows:


7.1 Common Basic Action Functions for Both Versions (Shared by USB and Nuwa)

The following actions are common basic motion, navigation, robotic arm interaction, and task lifecycle functions for both sets of vision hardware:

Function Name and Call FormatParameter DescriptionFunction and Control LogicCorresponding Natural Language Example
set_cmdvel(linear_x, linear_y, angular_z, duration)linear_x: forward linear velocity (m/s)
linear_y: lateral linear velocity (m/s)
angular_z: turning angular velocity (rad/s)
duration: duration (seconds)
Omnidirectional chassis motion control: moves at the specified speed and in the specified direction for the specified duration, and automatically publishes zero velocity to stop after runningMove forward 0.2 meters per second for 2 seconds / drive forward for 3 seconds
move_left(angle, angular_speed)angle: left-turn angle (degrees)
angular_speed: rotation angular velocity (rad/s)
Controls the car to rotate in place to the left by the specified angle (counterclockwise rotation) and then stop smoothlyTurn left 45 degrees / turn left 90 degrees
move_right(angle, angular_speed)angle: right-turn angle (degrees)
angular_speed: rotation angular velocity (rad/s)
Controls the car to rotate in place to the right by the specified angle (clockwise rotation) and then stop smoothlyTurn right 45 degrees / turn right 90 degrees
stop() / cancel()No parametersEmergency braking and action interruption: publishes zero velocity to the chassis and terminates the current visual tracking, line-following, or motion actionStop / stop moving / emergency stop
navigation(point_name)point_name: the target code in the map mapping file (e.g., 'A', 'B', 'charge', or 'zero')SLAM navigation control: calls the Nav2 navigation stack to drive the car to the preset target point with autonomous obstacle avoidance; passing 'zero' automatically returns to the task starting pointNavigate to point A / go to the charging pile / return to the origin
get_current_pose()No parametersReads the robot's current precise pose in the global map coordinate frame (map), and records it as 'zero' in the navigation dictionaryRemember your current position / mark the starting point
seewhat()No parametersVisual perception capture: grabs the current camera frame, overlays a 640×480 pixel coordinate reference grid, saves it, and uploads it to the large model's visual cognition layer for analysisLook at what's ahead / take a photo to observe the environment
dance()No parametersRobotic arm fun interaction: controls the 6-DOF robotic arm to continuously execute a set of lively dance actions according to a preset choreographed trajectory, and automatically resets after finishingDance for me / show the robotic arm
arm_up()No parametersControls the robotic arm to raise upward to a high display poseRaise the robotic arm / lift your arm up
arm_down()No parametersControls the robotic arm to lower downward to a low poseLower the robotic arm / arm down
arm_shake()No parametersControls the end effector of the robotic arm to continuously sway left and right (shaking action, repeated 3 times)Please shake your head / the robotic arm shakes its head
arm_nod()No parametersControls the end effector of the robotic arm to continuously pitch up and down (nodding action, repeated 3 times)Please nod your head / the robotic arm nods
arm_applaud()No parametersControls the gripper of the robotic arm end effector to open and close in applause (clapping action, repeated 3 times)Give a round of applause / clap your hands
putdown()No parametersRobotic arm center placement: lowers the robotic arm to a low position directly in front, opens the gripper to release the object, and automatically returns to the initial safe posePut the thing down / place it on the ground in front
right_putdown()No parametersRobotic arm right-side placement: rotates the robotic arm to the right and lowers it to place the object held in the gripper, and automatically returns to the initial safe posePut the thing on the right / place it down on the right
apriltag_sort(target_id)target_id: AprilTag label ID (e.g., 1, 2, 3)Automatic label sorting: visually identifies the AprilTag-labeled object with the specified ID within the field of view, drives the robotic arm to pick it up, and places it for sortingHelp me sort out the building block with label 1
apriltag_remove_higher(target_high)target_high: abnormal height threshold (meters)Abnormal height cleanup: detects AprilTag-stacked objects whose height exceeds the set threshold, and performs an overturn-pickup cleanup actionClean up the blocks stacked too high
follow_line_clear()No parametersLine following with obstacle clearance: the robot travels along the guide line while detecting obstacles on the line in real time and driving the robotic arm to automatically pick them up and clear the pathFollow the route and clear the obstacles on the road
finishtask()No parametersTask completion marker: automatically called by the robot after executing the final task step, used to terminate the proactive status feedback loop to the execution-layer large model(automatically output by the large model at the end of the task workflow)
finish_dialogue()No parametersDialogue reset marker: notifies the large model service to clear the current multi-turn historical dialogue context memory and restore the initial standby stateEnd the conversation / clear memory / reset the session

7.2 USB Camera Exclusive Action Functions (action_service_usb.py)

For the regular 2D monocular USB camera solution, object tracking and fixed-height planar visual servo grasping are mainly achieved by relying on the 2D pixel bounding box and the KCF algorithm:

Function Name and Call FormatParameter DescriptionFunction and Control LogicCorresponding Natural Language Example
wait(duration)duration: waiting time (seconds)Task delay suspension: pauses the current action sequence for the specified number of seconds and then continues with the next actionStop and wait 5 seconds / wait 2 seconds before operating
left_putdown()No parametersRobotic arm left-side placement: rotates the robotic arm to the left and lowers it, opens the gripper to place the object, and automatically resetsPut the thing on the left / place it down on the left
track_mode()No parametersTracking pose readiness: raises the robotic arm and adjusts it to a dedicated visual pitch tracking angle so that the camera can capture the moving targetGet ready to track the target / enter tracking pose
track(x1, y1, x2, y2)x1, y1, x2, y2: the target pixel coordinates selected by the Dify vision model in the 640×480 frameMonocular KCF visual tracking: starts the arm_kcf_track node, initializes the KCF tracker with the selected region, and controls the robotic arm to rotate in coordination to continuously aim at the targetKeep an eye on this green box / track the block in the frame
grasp_obj(x1, y1, x2, y2)x1, y1, x2, y2: the pixel coordinates of the target in the 640×480 frameMonocular 2D target grasping: combines KCF to detect the target position, drives the robotic arm close to the target, and executes a closed-loop visual servo grasping operationHelp me pick up this block in the frame

7.3 Nuwa Depth Camera Exclusive Action Functions (action_service_nuwa.py)

The solution equipped with the Nuwa 3D depth camera (RGB-D) has spatial depth point-cloud perception capabilities and supports 3D physical-space positioning and inverse-kinematics (IK) 3D grasping and placement:

Function Name and Call FormatParameter DescriptionFunction and Control LogicCorresponding Natural Language Example
get_dist(x, y)x, y: the pixel coordinates on the image (0~639, 0~479)Precise spatial distance measurement: using the depth point cloud of the Nuwa depth camera, measures the real physical distance (in meters) of the obstacle corresponding to the specified pixel point in the real world, and gives voice/text feedbackMeasure how far the object directly in the middle is from me
follow_line(color)color: the guide line color, supporting 'red', 'green', 'blue', 'yellow'Depth-camera visual line following: uses the color channel to detect the guide line and drives the car to continuously and autonomously follow the ground route of the specified colorWalk along the green line / start following the yellow line
apriltag_follow()No parameters3D dynamic label following: uses depth information to track the AprilTag in the field of view in real time; the car chassis keeps a constant distance while following and can automatically complete graspingFollow that label / label-following grasping
pick(x1, y1, x2, y2)x1, y1, x2, y2: the target bounding box drawn by the frame-selection layer in the 640×480 image3D point-cloud spatial grasping: back-projects the depth map to extract the 3D point-cloud center of the target, the chassis automatically approaches the target, and the robotic arm solves inverse kinematics (IK) to precisely grasp the objectPick up the yellow building block selected on the desktop
GetPlacePoint(location)
or GetPlacePoint(pixel_x, pixel_y)
Either a positional semantic description (e.g., 'empty space on the right side of the table') can be passed, or the specific pixel point pixel_x, pixel_y returned by the large model3D placement-point solving (two-stage):
1. Capture a high-definition image and have the vision large model designate the best placement area;
2. Combine with depth point-cloud back-projection to derive the actual 3D spatial coordinates (X, Y, Z) in the robotic arm base_link coordinate frame, and verify whether they are within the arm's workspace
Find a place on the table where the building block can be put down
place(place_x, place_y, place_z)place_x, place_y, place_z: the 3D spatial physical coordinates (in meters) verified by GetPlacePoint3D spatial-coordinate placement: the robotic arm solves inverse kinematics according to the target 3D coordinates, smoothly and precisely places the held object at the specified spatial point in the real world, and releases the gripperPut the building block in your hand at the spot just found
TargetTrack(x1, y1, x2, y2)x1, y1, x2, y2: the target pixel bounding box, or pass 'cancel' to cancel3D dynamic target tracking and following: the chassis and the robotic arm coordinate in multi-DOF to follow the moving object; when the target stops or stabilizes, the robotic arm is automatically driven to perform 3D graspingKeep tracking this figure and pick it up when you get close

7.4 Technical Difference Comparison of the Two Camera Solutions

The following table intuitively summarizes the core differences between the USB camera and the Nuwa depth camera in multi-agent embodied control:

Feature DimensionUSB Camera Solution (action_service_usb.py)Nuwa Depth Camera Solution (action_service_nuwa.py)
Vision dimension2D pure-color planar image (RGB 640×480)3D RGB-D (color image + dense depth point cloud)
Target distance measurement methodCannot directly measure physical distance; estimates only from the bounding box size in the imageDirectly reads the real depth of the point cloud (get_dist, accurate to the centimeter level)
Grasping control algorithm2D image-plane KCF tracking + fixed-pose visual servo approach (grasp_obj)3D spatial back-projection + robotic arm kinematics inverse solving (IK) spatial grasping (pick)
Object placement methodSupports only fixed-angle orientation placement (putdown / left_putdown / right_putdown)Supports large-model visual position search + precise placement at arbitrary 3D spatial coordinates (GetPlacePoint + place)
Dynamic tracking and followingMonocular KCF pure-angle tracking (track)3D spatial-position and depth coordinated closed-loop tracking (TargetTrack)
Applicable scenariosBasic vision experiments, fixed-height desktop sorting, cost-sensitive applicationsComplex unstructured environments, multi-height stacked grasping, precise spatial handling and placement
RAG Retrieval Enhancement and Model Training Samples
Embodied Intelligent Functions Core Source Code

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文