yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
MicroROS V2 Robot Car📖
01.Introduction
  • 0.Unboxing Video
  • 1. Readme Learning Route
  • 2. Must Read Before Use
  • 3. Introduction to MicroROS V2 Control Board
  • 4. Introduction to LiDAR
  • 5. Introduction to ESP32 Camera Module
  • 6. FAQ
  • 7. About Charging
02.Assembly course
  • Assembly Video
03.Preparation
  • 1. Quickly Start
  • 2. Write Firmware
  • 3. Install VM and Start System
  • 4. Configure VM and Connect Robot
  • 5. Connect to MicroROS Agent
04.Quick start control course
  • 1. VM Keyboard Remote Control
  • 2. VM Handle Remote Control
  • 3. USB Handle Control
05.Robot control course
  • 1. Robot Information Release
  • 2. Robot Keyboard Control
  • 3. Robot Handle Control
  • 4. Robot State Estimation
  • 5. Linear Speed Calibration
  • 6. Angular Velocity Calibration
  • 7. Robot URDF Model
06.Lidar course
  • 1. Precautions for LiDAR Mapping and Navigation
  • 2. Lidar Avoid
  • 3. Lidar Following
  • 4. Lidar Guard
  • 5. Lidar Patrol
  • 6. Gmapping Mapping
  • 7. Cartographer Mapping
  • 8. Cartographer Quickly Repositioning Navigation
  • 9. Slam Toolx Mapping
  • 10. Navigation2 Single Point Navigation
  • 11. Navigation2 Multi Point Navigation
  • 12. Ros Robot App Mapping And Navigation
07.Road network planning
  • 1. Introduction to Road Network Planning and Quick Start
  • 2. Build a Pose Map
  • 3. Road Network Annotation
  • 4. Planning and Navigation Between Road Networks
  • 5. Road Network Navigation in Any Pose
  • 6. Path Replanning
08.Vision basic course
OpenCV Image Processing
  • 1. Introduction to OpenCV Source CV
  • 2. Open Source CV Geometric Transformation
  • 3. Open Source CV Image Processing and Drawing Text Line Segments
  • 4. Open Source CV Image Beautification
09.Visual General Course (For Standard&Superior version)
4. Yolov11&26 Visual Recognition
  • 1. YOLO Environment Setup
  • 2. CLI Usage
  • 3. Object Detection
  • 4. Instance Segmentation
  • 5. Pose Estimation
  • 6. Image Classification
  • 7. Oriented Bounding Boxes Object Detection
  • 8. Model Prediction
1. ESP32 Visual Recognition Module Configuration
  • 1. Serial Port Configuration WiFi Instructions
  • 2. Use ESP32 Camera Module in Robot Car
  • 3. Servo PTZ Calibration
2. OpenCV Visual Recognition
  • 1. Human Pose Estimation
  • 2. Object Detection
  • 3. AR Vision
  • 4. QR Code
  • 5. Color Recognition
  • 6. Facial Recognition
  • 7. AprilTag Machine Code Recognition
3. Mediapipe Visual Recognition
  • 1. Hand Detection
  • 2. Pose Detection
  • 3. Holistic Detection
  • 4. Facial Detection
  • 5. Facial Recognition
  • 6. Facial Special Effects
  • 7. 3D Object Recognition
  • 8. Brush
  • 9. Gesture Recognition
  • 10. Palm Target Localization
  • 11. Fingertip Trajectory Recognition
10.Visual Advanced Course (Just for Standard version)
1. Visual Control
  • 1. QR Code Recognition Control Action
  • 2. AprilTag Control Car Action Group
  • 3. Gesture Control Car Action Group
  • 4. Visual Line Tracking
2. Visual Tracking
  • 1. Color Tracking
  • 2. Facial Tracking
  • 3. QR Code Tracking
  • 4. Object Recognition And Tracking
  • 5. Mediapipe Palm Tracking
  • 6. Mediapipe Gesture Tracking
  • 7. Mediapipe Human Pose Tracking
  • 8. KCF Object Tracking
  • 9. AprilTag Machine Code Tracking
3. Visual Following
  • 1. Color Follow
  • 2. Face Follow
  • 3. QR Code Follow
  • 4. Mediapipe Palm Follow
  • 5. Mediapipe Gesture Follow
  • 6. Mediapipe Human Posture Follow
  • 7. AprilTag Machine Code Follow
  • 8. Object Follow
11.Visual Advanced Course (Just for Superior version)
1. Visual Control
  • 1. QR Code Recognition Control Action
  • 2. AprilTag Control Car Action Group
  • 3. Gesture Control Car Action Group
  • 4. Visual Line Tracking
2. Visual Tracking
  • 1. Color Tracking
  • 2. Facial Tracking
  • 3. QR Code Tracking
  • 4. YOLO Object Recognition and Tracking
  • 5. Mediapipe Palm Tracking
  • 6. Mediapipe Gesture Tracking
  • 7. Mediapipe Human Pose Tracking
  • 8. KCF Object Tracking
  • 9. AprilTag Machine Code Tracking
3. Visual Follow
  • 1. Color Follow
  • 2. Face Follow
  • 3. QR Code Follow
  • 4. Mediapipe Palm Follow
  • 5. Mediapipe Gesture Follow
  • 6. Mediapipe Human Pose Follow
  • 7. AprilTag Machine Code Follow
  • 8. Object Follow
12.AI Large Model Basic and Applications Course
1. AI Large Model Preparation
  • 1.AI Large Model Preparation
2. AI Large Model Basic Course
  • 1. AI Large Model Types and Principles
  • 2. RAG Retrieval Augmented and Training Samples
  • 3. Embodied Intelligent System Architecture
  • 4. Embodied Intelligence Core Source Code
3. AI Large Model Development
  • 1. Register Model Service Account
  • 2. Configure API KEY
  • 3. Dify Introduction
  • 4. Dify Basic Features
  • 5. RAG Knowledge Base Deployment
  • 6. AI Application Development Chatbot
  • 7. RAG Knowledge Base and Chatbot
  • 8. AI Agent Workflow
4. AI Large Model (Text Version)
  • 1. Semantic Understanding and Instruction Following
  • 2. Multimodal Visual Understanding
  • 3. Multimodal Visual Understanding + Basic Control
  • 4. Multimodal Visual Understanding + Object Following
  • 5. Multimodal Visual Understanding + Visual Line Following
  • 6. Multimodal Visual Understanding + SLAM Navigation
  • 7. Multimodal Visual Understanding + SLAM Navigation + Visual Line Following
  • 8. Multimodal Visual Understanding + SLAM Navigation + Object Following
  • 9. Intent Inference + Multimodal Visual Understanding + SLAM Navigation
13.Openclaw Basics Course
  • 1. Openclaw Introduction
  • 2. Openclaw Core Concepts
  • 3. Openclaw Api-Key Configuration
  • 4. Openclaw Switching Models
  • 5. Openclaw System Prompt
  • 6. Openclaw Common CLI Command
14. Openclaw Interaction Course
  • 1. Openclaw Webchat Interaction
  • 2. Openclaw Tui Interaction
  • 3. Openclaw Whatsapp Interaction
15.Openclaw Development Course
  • 1. Openclaw Robot Mcp Service Integration
  • 2. Robot CLI Command Tools
  • 3. Robot-Control Plugin Tools
  • 4. Openclaw Skills Development
  • 5. Openclaw Scheduled Tasks
  • 6. Openclaw Multi Agent System
  • 7. Openclaw Proactive Interaction
  • 8. Openclaw Vector Memory
16.Openclaw Embodied Intelligence Course
  • 1. OpenClaw Natural Interaction + Basic Control
  • 2. OpenClaw Natural Interaction + Slam Navigation
  • 3. OpenClaw Natural Interaction + Multimodal Visual Understand
  • 4. OpenClaw Natural Interaction + Multimodal Visual Understand + Slam Navigation + Visual Follow
  • 5. OpenClaw Natural Interaction + Multimodal Visual Understand + Slam Navigation + Visual Track
17.Multi-machine Course
  • 1. Multi Machine Handle Control
  • 2. Multi Machine Keyboard Control
  • 3. Multi Machine Navigation
18.MicroROS-V2 Control Board Development Environment
  • 1. Set Up the ESP32-IDF Development Environment
  • 2. ESP32-IDF Configuration Tool
  • 3. ESP Flash Tool Flashing Firmware
  • 4. Install ESP32 Microros Components
  • 5. Install And Start Microros Agent
19.MicroROS-V2 Control Board ESP32 Basic Course
  • 1. Led Light Up
  • 2. Button Function
  • 3. Drive Buzzer
  • 4. Oled
  • 5. Usb Host Function
  • 6. Serial Communication
  • 7. Battery Voltage Detection
  • 8. Drive Pwm Servo
  • 9. Drive Motors
  • 10. Read Motor Encoder Data
  • 11. Pid Motor Speed Control
  • 12. Robot Kinematics Analysis Theory
  • 13. Read Imu Data
  • 14. Read Lidar Data
  • 15. Flash Data Storage
  • 16. Custom Partition Table
  • 17. Bluetooth Communication
  • 18. Wifi Connection
  • 19. ESP32 Visual Recognition Module
20.MicroROS-V2 Control Board Micro_ros Basic Course
  • 1. Publish Topics
  • 2. Subscribe To Topics
  • 3. Multi Topic Subscription And Publishing
  • 4. Subscribe To Buzzer Topic
  • 5. Subscribe To Pwm Servo Topic
  • 6. Subscribe To Speed Control Topic
  • 7. Publish Odometry Topic
  • 8. Publish Imu Data Topic
  • 9. Publish Lidar Data Topic
21. 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
22.Docker Course
  • 1.Docker overview and docker installation
  • 2.Common commands for docker image containers
  • 3.Docker images deeply understand and publish images
23.ROS 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
Download
  • Mapping_APP(iOS_Android)
  • Code
  • Software_Tools
  • VM_System_File
  • 3D_Model_File
  • ESP32_Firmware
  • Dify LLM Base
  • Instruction_Manual
  • VMware
Download ZIP

Welcome to MicroROS V2 Robot Car repository

6. Multimodal Visual Understanding + SLAM Navigation

6. Multimodal Visual Understanding + SLAM Navigation

1. Course Content

  1. Learn to use the robot's visual understanding combined with the SLAM navigation function.
  2. Analyze newly appearing key source code.

2. Preparation

2.1 Content Description

The virtual machine used by default with this product starts the Dify Docker environment automatically at boot, so no additional startup is usually needed.

⚠️ The same test instructions will not produce exactly the same reply content from the large model, and will differ slightly from the screenshots in the tutorial. If you need to enhance or reduce the diversity of the large model's replies, refer to 【AI Large Model Development】-【RAG Knowledge Base Deployment】 to modify the knowledge base and sample library.

This case requires mapping to be completed in advance and Nav2 navigation to start normally.

2.2 Configuring the Map Mapping File

Map mapping is used to convert the location names mentioned by the user into ROS navigation target points. When configuring, you need to first select points in RViz2, record the coordinates output by the /initialpose topic, and then write the coordinates into map_mapping.yaml.

Enter the command in the virtual machine terminal to start navigation:

ros2 launch microros_v2_bringup nav2.launch.py

image-20260724115907667

Then the map visualization interface will appear in RViz2. Click 2D Pose Estimate in the toolbar at the top to enter the selection state, and roughly mark the robot's position and orientation on the map.

image-20260724120542979

The robot model will be displayed on the map, as shown in the figure below: image-20260724120655019

Create another new terminal in the virtual machine and enter the command:

xxxxxxxxxx
ros2 topic list

image-20260724120750240

You can see the /initialpose topic. This topic is the pose topic published by the 2D Pose Estimate tool in RViz2 in the previous step. We can use it to obtain the coordinates and orientation of a point on the map.

Enter the following command in the terminal to observe the data on the /initialpose topic:

xxxxxxxxxx
ros2 topic echo /initialpose

We can name any point on the map. Here, "Tea Room" and "Office" are used as examples. image-20260724120947341

As shown in the figure below, first click the 2D Pose Estimate tool, then left-click and hold anywhere in the "Master Bedroom" area. You can adjust the orientation and release the mouse after confirming. image-20260724121141533

The robot's position will be adjusted to the just-selected position and orientation. You can preview the robot's expected position and orientation in RViz2. image-20260724121200059

In the last frame of information in the terminal window, you can see the coordinates of the target point marked with the 2D Pose Estimate tool.

image-20250610164041512

Open the map_mapping.yaml map mapping file. The file is located at:

xxxxxxxxxx
~/microros_ws/src/multi_brains/config/map_mapping.yaml

Replace the name of A with "Master Bedroom", then replace the position and orientation data with the data output by the /initialpose topic in the terminal.

​x
#According to the actual scene environment, customize the areas in the map. You can add any number of areas, just make sure they are consistent with the map mapping of the large model
#Map mapping
​
common_map_areas: #common navigation
    A: 
      name: 'Tea Room'
      position:
        x: 4.317397594451904
        y: 0.4287700653076172
        z: 0.0
      orientation:
        x: 0.0
        y: 0.0
        z: -0.7071081943275359
        w: 0.707105368042735
​
#Here, you can add the raster map coordinate points corresponding to the added area. Please note that the format should be consistent with the above

In the same way, you can add the map mapping for "Office":

xxxxxxxxxx
#According to the actual scene environment, customize the areas in the map. You can add any number of areas, just make sure they are consistent with the map mapping of the large model
#Map mapping
​
common_map_areas: #common navigation
    A: 
      name: 'Tea Room'
      position:
        x: 4.317397594451904
        y: 0.4287700653076172
        z: 0.0
      orientation:
        x: 0.0
        y: 0.0
        z: -0.7071081943275359
        w: 0.707105368042735
    B: 
      name: 'Office'
      position:
        x: 2.367471694946289
        y: -1.568994164466858
        z: 0.0
      orientation:
        x: 0.0
        y: 0.0
        z: -0.3106425066197889
        w: 0.950526818706855
#Here, you can add the raster map coordinate points corresponding to the added area. Please note that the format should be consistent with the above

Then switch to the ~/microros_ws/ workspace in the terminal and recompile the multi_brains package to make the configuration take effect. If Jetson Nano and Raspberry Pi hosts use a Docker environment, you need to enter the Docker container first.

xxxxxxxxxx
cd ~/microros_ws/

Recompile the package:

xxxxxxxxxx
colcon build --packages-select multi_brains

2.3 Configuring the Map Mapping Variable in Dify

Open the virtual machine terminal, start the Dify environment:

xxxxxxxxxx
sh ~/bringup_dify.sh

image-20260723212839520

  • Enter the vehicle IP address directly in the browser address bar to access the Dify management page, then click to select the corresponding AI application.

  • Domestic users: microros-v2-zh

    International users: microros-v2-en

Example: image-20260724121616961

  • Click "Conversation Variables" in the upper-right corner, then click the edit button of the map_mapping variable. image-20260724121714159
  • In the pop-up "Edit Conversation Variable" window, edit the mapping relationship according to the settings in the map mapping file above, then click "Save". image-20260724121753280
  • Finally, remember to click "Publish" —> "Publish Update" to save this modification. image-20260724121814034

3. Running the Case

3.1 Starting the Program

Open the virtual machine terminal and start the Dify environment (if it is already started, no need to start it again):

xxxxxxxxxx
sh ~/bringup_dify.sh

image-20260723212839520

Open the virtual machine terminal and enter the command to start the underlying proxy + camera topic + navigation:

xxxxxxxxxx
ros2 launch microros_v2_bringup nav2.launch.py

image-20260724115907667

Open another virtual machine terminal and enter the command:

xxxxxxxxxx
ros2 launch multi_brains llm_agent_control.launch.py

After initialization is complete, the following content will be displayed: image-20260723212853619

Then follow the process of starting the navigation function for initial localization. After opening the RViz2 visualization interface, click 2D Pose Estimate in the toolbar at the top, roughly mark the robot's position and orientation on the map. After initial localization, the preparation is complete. image-20260724122041135

Then open another terminal and start the text dialogue:

xxxxxxxxxx
ros2 run multi_brains terminal_client

image-20260723212902940

3.2 Test Cases

Reference test cases are given here. Users can create their own dialogue commands.

  • Please first remember the current position, then navigate to the tea room and the office in sequence, remember the items you see, and finally return to the starting position and tell me what you saw in those two places?

3.2.1 Case 1

Enter "Please first remember the current position, then navigate to the tea room and the office in sequence, remember the items you see, and finally return to the starting position and tell me what you saw in those two places?" in the terminal. The terminal prints information as follows: image-20260724123025340

Then the execution-layer large model will execute according to the decision-layer steps: image-20260724123110139

image-20260724123148872

After the robot completes the task, it enters a waiting state. At this time, instructions will continue to be passed to the execution-layer large model, and the conversation history will be retained. You can continue the dialogue in the terminal and input the "/reset" command to let the robot end the current task cycle and start a new task cycle. image-20260724123213934

4. Source Code Analysis

In the current version, the navigation function is implemented by NavigationController and is no longer placed in the old-version action server file. llm_agent_node.py distributes the navigation(target) and get_current_pose() output by the execution layer to the navigation controller.

Current relevant source code paths:

xxxxxxxxxx
~/microros_ws/src/multi_brains/multi_brains/llm_agent_node.py
~/microros_ws/src/multi_brains/multi_brains/controllers/navigation_controller.py
~/microros_ws/src/multi_brains/config/llm_agent_config.yaml
~/microros_ws/src/multi_brains/config/map_mapping.yaml

Core actions:

xxxxxxxxxx
navigation(A)          Navigate to the map point corresponding to A in map_mapping.yaml
get_current_pose()     Read map -> base_footprint, record it as the dynamic point zero
navigation(zero)       Return to the zero point recorded at runtime

Core flow:

xxxxxxxxxx
User inputs "go to the kitchen"
  -> Dify maps "kitchen" to the target ID based on the map_mapping variable
  -> Execution layer outputs navigation(A) or navigation(other target ID)
  -> llm_agent_node.py distributes to NavigationController through action_registry
  -> NavigationController loads the target PoseStamped from map_mapping.yaml
  -> If the zero point has not been recorded yet, first read map -> base_footprint as the starting point
  -> Sends the navigation goal through the Nav2 /navigate_to_pose Action
  -> Waits for Nav2 to accept the goal and return the execution result
  -> Feeds the navigation success or failure back to Dify
  -> Dify decides the next action or ends the task

Note: map_mapping.yaml and the Dify conversation variable map_mapping need to stay consistent. When performing navigation locally in ROS, config/map_mapping.yaml is read, and Dify is responsible for converting the location name mentioned by the user into the corresponding target ID. When the user inputs a new instruction, NavigationController cancels the current unfinished Nav2 goal, and the new instruction takes over.

Multimodal Visual Understanding + Visual Line Following
Multimodal Visual Understanding + SLAM Navigation + Visual Line Following

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/中文