yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Raspberry Pi 5📖
00.Quick Start (Must See)
  • 1.Quick Start (Must See)
  • 2.TF card expand capacity
  • 3.Raspberry Pi 5 - 1GB Version Must - See Before Use
01.Introduction to Raspberry PI 5
  • 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. Installation and introduction of shell and active radiator
  • 6. GPIO and 40-pin pins
  • 7. Tips for using Raspberry PI 5
  • 8. Raspberry PI PCIe connector
  • 9. MIPI CSI DSI connector
  • 10. UART connector
  • 11. Real-time clock
  • 12. Power over Ethernet (PoE) connector
02.Introduction to common mirror systems
  • 1. Official Raspberry PI system
  • 2. Ubuntu
03.Basic settings of Raspberry Pi
  • 1. Update and upgrade operating system
  • 2.Introduction to raspi-config tool
  • 3.config.txt file description
  • 4.Network Configuration
  • 5.remote access
  • 6.Transfer files remotely
  • 7.Set display resolution and rotation
  • 8.Set screen to sleep
  • 9.Get real-time temperature of Raspberry Pi
  • 10.Play audio and video
  • 11.Using USB camera
  • 12.Using MIPI camera
04.Basic programming course
1. C language programming
  • 1. C language environment construction
  • 2. Print Hello World
2. Python programming
  • 1.Python usage
  • 2.Use APT to install Python packages
  • 3.Python virtual environment
  • 4.GPIO Zero
  • 5.Pin output high and low levels
  • 6.Pin reads high and low levels
  • 7.Pin output PWM
3.Jupyter lab programming
  • 1.Jupyter Lab environment construction
  • 2.Basic use of Jupyter Lab
  • 3.Jupyter Lab plug-in installation
  • 4.Basic use of Jupyter Widgets
05.Advanced AI course
5.Advanced AI gameplay
  • 1. Human pose estimation
  • 2. target detection
  • 3.yolov5
  • 4. Camera display
  • 5. QR code
  • 6. face detection
  • 7. Color recognition
2.Getting started with Open Source CV
  • 1. Introduction to Open Source CV
  • 2. Read and display Open Source CV images
  • 3. Open Source CV image writing
  • 4. Open Source CV image quality
  • 5.Open Source CV pixel operation
3.Open Source CV Geometric Transformations
  • 1. Image resizing
  • 2. Cut the image
  • 3. Image translation
  • 4. Image mirroring
  • 5. Affine transformation
  • 6. Rotate the image
  • 7. Perspective transformation
4.Text Picture Drawing Open Source CV image processing and drawing text line segments
  • 1、Grey Processing
  • 2、image binaryzation
  • 3、edge detection
  • 4、Line segment drawing
  • 5、Rectangle and circle drawing
  • 6、Text image drawing
1.Open Source CV environment setup
  • Open Source CV environment setup
6.YOLOv11 development
  • 1. YOLOv11 environment construction
  • 2. CLI Usage
  • 3. Object Detection
  • 4. Instance Segmentation
  • 5. Pose Estimation
  • 6. Image Classification
  • 7. Oriented Bounding Boxes Object Detection
  • 8. Model conversion
  • 9. Dataset Annotation
  • 10. Model training_conversion
  • 11. Model prediction
7.YOLO26 development
  • 01.YOLO26 environment
  • 02.CLI use
  • 03.Object detection
  • 04.Instance segmentation
  • 05.Pose estimation
  • 06.Image classification
  • 07.Oriented bounding box object detection
  • 08.Model conversion
  • 09.Dataset annotation
  • 10.Model training - conversion
  • 11.Model prediction
06.Mediapipe course
  • 1. Face special effects
  • 2. Face detection
  • 3. Three-dimensional object recognition
  • 4. Paintbrush
  • 5. Finger control
  • 6. Gesture recognition
07.Docker Tutorial
  • 1.Overview and installation
  • 2.Common commands
  • 3.Understand and publish images
  • 4.Hardware interaction data processing
  • 5.Enter docker container
  • 6.Update docker images
  • 7. docker container to install ROS using accessories
08.ROS1 advanced tutorial
1.ROS1 basic course
  • 1.ROS introduction
  • 2.ROS installation
  • 3.ROS common command tools
  • 4.ROS workspace
  • 5.ROS function package
  • 6.ROS node
  • 7.ROS topic publisher
  • 8.ROS topic subscribers
  • 9.ROS service client
  • 10.ROS service server
  • 11.ROS action client
  • 12.ROS action server
  • 13.ROS custom message reception
  • 14.ROS-launch file
  • 15.ROS-TF transformation
  • 16.ROS parameter service
  • 17.ROS-rviz use
  • 18.ROS-rqt tool usage
  • 19.Topic message recording and playback
  • 20.urdf model introduction
  • 21.gazebo introduction
  • 22.ROS distributed communication
2.ROS1 vision application
  • 0.Precautions
  • 1.AR vision
  • 2.AR QR code
  • 3.ROS+Opencv basics
  • 4.Face recognition
  • 5.harris corner detection
  • 6.Target tracking algorithm
  • 7.Contour moment
  • 8.Polygon outline
  • 9.Discrete fourier transform algorithm
  • 10.Edge detection algorithm
  • 11.Face detection algorithm
  • 12.Optical flow detection algorithm
  • 13.Contour detection
  • 14.General contour detection
  • 15.Feature point tracking
  • 16.HLS color filtering
  • 17.Hough circle detection
  • 18.Hough linear detection
  • 19.HSV color filtering
  • 20.LK optical flow algorithm
  • 21.detection algorithm
  • 22.Phase dependent displacement detection
  • 23.Image pyramid sampling algorithm
  • 24.RGB color filtering
  • 25.Clear background detection algorithm
  • 26.Simplified optical flow algorithm
  • 27.Simple filter
  • 28.Threshold image processing
  • 29.Watershed segmentation algorithm
09.ROS2 advanced tutorial
1.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
2.ROS2 vision application
  • 0.Precautions
  • 1.Opencv basic course
  • 2.ROS+opencv application
  • 3.QR code creation and recognition
  • 4.AR vision
  • 5.Interesting gameplay of mediapipe
10.Offline AI model coursenew
Offline large model (Text Interaction)
  • 0. AI large model image description
  • 1. Deployment of large AI model environments
  • 2. Switch Chinese input method
  • 3. Installation of large model dialogue platform
  • 4. Meta AI Llama 3.2 model
  • 5. Alibaba Cloud Qwen3 Model
  • 6. Microsoft Phi-4-mini model
  • 7. DeepSeek DeepSeek-R1 model
  • 8. Alibaba Cloud Qwen2.5vl Visual Multimodal Large Model
  • 9. Google Gemma3 Visual Multimodal Large Model
  • 10. Llava Visual Multimodal Large Model
  • 11.MiniCPM-V Visual Multimodal Large Model
  • 12. Multimodal Visual Understanding Applications
  • 13. Multimodal Text-Based Image Application
  • 14. Multimodal Video Analysis Application
  • 15. Multimodal visual positioning applications
  • 16. Multimodal table scanning application
  • 17. Multimodal Autonomous Agent Application
Offline large model (Voice Interaction)
  • 0. Voice Interaction Hardware Connection (Must Read)
  • 1. Offline speech-to-text (ASR)
  • 2. Offline Text-to-Speech (TTS)
  • 3. AI large model voice interaction
  • 4. Multimodal visual understanding and voice interaction
  • 5. Multimodal Text-Based Image Application
  • 6. Multimodal Video Analysis Application
  • 7. Multimodal visual positioning applications
  • 8. Multimodal table scanning application
  • 9. Multimodal Autonomous Agent Applications
  • 10. AI large model offline voice assistant
11.Online AI model coursenew
Online large model (text interaction)
  • 1.OpenRouter Large Model API Aggregation Platform
  • 2. Multimodal Visual Understanding Applications
  • 3. Multimodal visual positioning applications
  • 4. Multimodal table scanning application
  • 5. Multimodal Autonomous Agent Applications
Online large model (voice interaction)
  • 0. Voice Interaction Hardware Connection (Must Read)
  • 1. Online speech-to-text (ASR)
  • 2. Online Text-to-Speech (TTS)
  • 3. AI large model voice interaction
  • 4. Multimodal visual and voice interaction
  • 5. Multimodal visual positioning applications
  • 6. Multimodal table scanning application
  • 7. Multimodal Autonomous Agent Applications
  • 8. AI large model online voice assistant
12.OpenClaw Deployment and Basic Usagenew
  • 01. OpenClaw Deployment
  • 02. OpenClaw WhatsApp Plugin Application
  • 03. OpenClaw WebChat Interaction
  • 04. OpenClaw TUI Interaction
  • 05. OpenClaw Tools Introduction
  • 06. OpenClawGate Gateway User Manual
  • 07. OpenClaw Features Overview
  • 08. OpenClawHub Introduction (Skill Installation)
  • 09. OpenClaw Application - File Management
  • 10. OpenClaw Application - Camera
  • 11. OpenClaw Application - Browser Control
  • 12. OpenClaw Application - Script Execution
  • 13. OpenClaw Application - AI Programming (Peripheral & GPIO Control)
  • 14. OpenClaw Application - Dedicated AI Assistant
13.OpenClaw Advanced Developmentnew
1.Preparation Before Use
  • 01. Peripheral Hardware Configuration
  • 02. OpenClaw API-KEY Configuration
  • 03. OpenClaw Model Switching
  • 04. OpenClaw Prompts
  • 05. AI Voice Interaction Configuration
  • 06. 3D Configuration Tests
2.OpenClaw AI Programming Peripheral Control
  • 1. Servo Control
  • 2. RGB Strip
  • 3. OLED Display
  • 4. Temperature and Humidity Sensor
  • 5. Camera Application
  • 6. AI Script Peripheral Control
3.OpenClaw Peripheral Integration Applications
  • 1. Plant Care Assistant
  • 2. AI Calorie Estimation
  • 3. AI Rock Paper Scissors Game
  • 4. AI Pet
  • 5. AI Weather Station
  • 6. Temperature and Humidity Dashboard
  • 7. Scheduled Tasks
Download
  • SystemFile
  • Code
  • SoftWare
  • 3D_Model_File
  • GuideManual
Download ZIP

Welcome to Raspberry Pi 5 repository

1.ROS introduction

1.ROS introduction

1.ROS introduction1.1 Main features of ROS1.2 Overall architecture of ROS1.2.1 Calculation graph level1.2.2 File system level1.2.3 Open source community level1.3 Communication mechanism1.3.1、Topic1.3.2、Service1.3.3、Action1.4 Common components1.5 Release version

ROS wiki : http://wiki.ros.org/

ROS (Robot Operating System, referred to as "ROS") is an open source operating system suitable for robots. It provides the services that an operating system should have, including hardware abstraction, low-level device control, implementation of common functions, inter-process message passing, and package management. It also provides the tools and library functions needed to obtain, compile, write, and run code across computers.

The main goal of ROS is to provide support for code reuse for robotics research and development. ROS is a framework of distributed processes (also known as "nodes") that are encapsulated in packages and function packages that are easy to share and publish. ROS also supports a federated system similar to a code repository, which can also enable project collaboration and release. This design allows the development and implementation of a project to be completely independent from the file system to the user interface (not restricted by ROS). At the same time, all projects can be integrated by ROS basic tools.

1.1 Main features of ROS

(1) Distributed architecture (each working process is regarded as a node and is managed uniformly using the node manager),

(2) Multi-language support (such as C++, Python, etc.),

(3) Good scalability (you can write one node, or organize many nodes into a larger project through roslaunch),

(4) Open source code (ROS follows the BSD protocol and is completely free for individual and commercial applications and modifications).

1.2 Overall architecture of ROS

Open source community level: mainly includes developer knowledge, code, and algorithm sharing.

File system level: used to describe the code and executable programs that can be found on the hard disk.

Computational graph level: reflects the communication between processes and processes and systems.

1.2.1 Calculation graph level

  • Node

    Nodes are the main computing execution processes. ROS is composed of many nodes. After multiple nodes are started, you can use the following command to view the topic communication between each node.

rqt_graph

image-20210827145606482

  • Information

    Nodes realize logical connections and data exchange with each other through messages.

  • Topic (theme)

    Topics are a way of delivering messages (publish/subscribe). Each message must be published to the corresponding topic, and each topic is strongly typed. ROS topic messages can be transmitted using TCP/IP or UDP. The default transmission method used by ROS is TCP/IP. Transmission based on TCP is called TCPROS, which is a long connection method; transmission based on UDP is called UDPROS, which is a low-latency, high-efficiency transmission method, but it is easy to lose data and is suitable for remote operations.

  • Services

    Services are used in the request-reply model and must also have a unique name. When a node provides a service, all nodes can communicate with it through code written using ROS clients.

  • Message record package

    Message recording package is a file format used to save and playback ROS message data, which is saved in .bag file. It is an important mechanism for storing data.

  • Parameter server

    The parameter server is a shared multi-variable dictionary accessible over the network, stored by key on the node manager.

  • Node Manager (Master)

    The node manager is used for registration and search of topics and service names, etc. If there is no node manager in the entire ROS system, there will be no communication between nodes.

1.2.2 File system level

File system level
Comprehensive functional package
Functional package
Function package list
Message
Service
Code
Others

Dependencies can be configured between function packages. If function package A depends on function package B, then when building the system in ROS, B must be built earlier than A, and A can use the header files and library files in B.

The file system level concepts are as follows:

  • Function pack list:

    This list indicates the dependencies of the function package, source file compilation flag information, etc. The package.xml file in the function package is a function package list.

  • Function pack:

    Function packages are the basic form of software organization in the ROS system, including running nodes and configuration files.

  • Comprehensive feature package

    Several functional packages are organized together to form a comprehensive functional package.

  • Message type

    When sending messages between nodes in ROS, a message description is required in advance. ROS provides standard types of messages, which can also be defined by yourself. The description of the message type is stored in the msg file under the function package.

  • Service type

    Defines the data structure provided by each process in the ROS system regarding service requests and responses.

1.2.3 Open source community level

  • Distribution: ROS distribution is a series of comprehensive function packages that can be installed independently and have version numbers. ROS distributions serve a similar role as Linux distributions. This makes it easier to install ROS software and maintain consistent versions through a collection of software.
  • Software repository (Repository): ROS relies on websites or hosting services that share open source code and software libraries, where different organizations can publish and share their own robot software and programs.
  • ROS Wiki: The ROS Wiki is the primary forum for recording information about the ROS system. Anyone can register an account, contribute their own files, provide corrections or updates, write tutorials, and other actions.
  • Bug Ticket System: If you find a problem or want to propose a new feature, ROS provides this resource to do this.
  • Mailing list: The ROS user mailing list is the main communication channel about ROS. It can exchange various questions or information from ROS software updates to ROS software use like a forum.
  • ROS Answer: Users can use this resource to ask questions

1.3 Communication mechanism

1.3.1、Topic

The asynchronous publish-subscribe communication mode is widely used in ros. Topic is generally used for one-way, message flow communication. Topics generally have strong type definitions: a topic of one type can only accept/send messages of a specific data type (message type). Publisher is not required to have type consistency, but when accepting, subscriber will check the md5 of the type and report an error.

image-20210831162509791

1.3.2、Service

Service is used to handle synchronous communication in ros communication, using server/client semantics. Each service type has two parts: request and response. For the server in the service, ros will not check the name conflict. Only the last registered server will take effect and establish a connection with the client.

image-20210831163032489

1.3.3、Action

Actions are composed of multiple topics and are used to define tasks. Task definitions include goals (Goal), task execution process status feedback (Feedback), and results (Result). Compiling action will automatically generate 7 structures: Action, ActionGoal, ActionFeedback, ActionResult, Goal, Feedback, and Result structures.

image-20210830102834443

Features of Action:

  • A question and answer communication mechanism
  • With continuous feedback
  • Can be terminated during a mission
  • Implementation of message mechanism based on ROS

Action interface:

  • goal: publish task goal
  • cancel: Request to cancel the task
  • status: Notify the client of the current status
  • feedback: Monitoring data for periodic feedback task running
  • result: Send the execution result of the task to the client and only publish it once.

Comparison of communication mode features

FeaturesTopicServiceAction
Response mechanismNoneResult responseProgress response, result response
SynchronicityAsynchronousSynchronousAsynchronous
Communication modelPublisher,SubscriberClient,ServerClient,Server
Node correspondenceMany to manyMany(Client)to one(Server)Many(Client)to one(Server)

1.4 Common components

launch startup file; TF coordinate transformation; Rviz; Gazebo; QT toolbox; Navigation; MoveIt!

launch:Launch File is a way to start multiple nodes at the same time in ROS.It can also automatically start the ROS Master node manager, and can implement various configurations of each node, providing great convenience for the operation of multiple nodes.

TF coordinate transformation: There are often a large number of component elements in the robot body and the robot's working environment. The positions and postures of different components are involved in robot design and robot applications. TF is a function package that allows users to track multiple coordinate systems over time , which uses a tree data structure to buffer and maintain coordinate transformation relationships between multiple coordinate systems based on time, which can help developers complete coordinate transformations such as points and vectors between coordinate systems at any time.

QT toolbox: In order to facilitate visual debugging and display, ROS provides a Qt-based background graphics tool suite - rqt_common_plugins,It contains many practical tools: log output tool (rqt_console), calculation graph visualization tool (rqt_graph), data drawing tool (rqt_plot), parameter dynamic configuration tool (rqt_reconfigure)

Rviz: rviz is a 3D visualization tool that is well compatible with various robot platforms based on the ROS software framework. In rviz, you can use XML to describe the size, quality, position, material, joints and other attributes of any physical objects such as robots and surrounding objects, and present them in the interface. At the same time, rviz can also display robot sensor information, robot motion status, changes in the surrounding environment, etc. in a graphical manner in real time.

Gazebo: Gazebo is a powerful three-dimensional physics simulation platform with a powerful physics engine, high-quality graphics rendering, convenient programming and graphics interfaces, and most importantly, it is open source and free. Although the robot model in Gazebo is the same as the model used by rviz, the physical properties of the robot and the surrounding environment, such as mass, friction coefficient, elastic coefficient, etc., need to be added to the model. The robot's sensor information can also be added to the simulation environment in the form of plug-ins and displayed in a visual manner.

Navigation: Navigation is a two-dimensional navigation function package of ROS. Simply put, it calculates safe and reliable robot speed control instructions through the navigation algorithm based on the information flow of the input odometer and other sensors and the global position of the robot.

Moveit:Moveit!Function package is the most commonly used tool package, mainly used for trajectory planning. Move it! The configuration assistant is used to configure some files that need to be used in planning, which is very important.

1.5 Release version

Reference link:http://wiki.ros.org/Distributions

ROS 1 Distribution

ROS distribution refers to the version of the ROS software package.The concept of it and Linux distribution version (such as Ubuntu) similar.The purpose of a ROS distribution is to allow developers to work with a relatively stable codebase until they are ready to upgrade everything.Therefore, after each release version is launched, ROS developers usually only fix the bugs in this version and provide a small number of improvements to the core software package.As of October 2019, the version names, release times and version life cycles of major ROS releases are as shown in the following table:

Version nameRelease dateVersion lifecycleOperating system platform
ROS Noetic NinjemysMay 2020May 2023Ubuntu 20.04
ROS Melodic MoreniaMay 23, 2018May 2023Ubuntu 17.10, Ubuntu 18.04, Debian 9, Windows 10
ROS Lunar LoggerheadMay 23, 2017May 2019Ubuntu 16.04, Ubuntu 16.10, Ubuntu 17.04,Debian 9
ROS Kinetic KameMay 23, 2016April 2021Ubuntu 15.10, Ubuntu 16.04, Debian 8
ROS Jade TurtleMay 23, 2015May 2017Ubuntu 14.04, Ubuntu 14.10, Ubuntu 15.04
ROS Indigo IglooJuly 22, 2014April 2019Ubuntu 13.04, Ubuntu 14.04
ROS Hydro MedusaSeptember 4, 2013May 2015Ubuntu 12.04, Ubuntu 12.10, Ubuntu 13.04
ROS Groovy GalapagosDecember 31, 2012July 2014Ubuntu 11.10, Ubuntu 12.04, Ubuntu 12.10
ROS Fuerte TurtleApril 23, 2012--Ubuntu 10.04, Ubuntu 11.10, Ubuntu 12.04
ROS Electric EmysAugust 30, 2011--Ubuntu 10.04, Ubuntu 10.10, Ubuntu 11.04, Ubuntu 11.10
ROS DiamondbackMarch 2, 2011--Ubuntu 10.04, Ubuntu 10.10, Ubuntu 11.04
ROS C TurtleAugust 2, 2010--Ubuntu 9.04, Ubuntu 9.10, Ubuntu 10.04, Ubuntu 10.10
ROS Box TurtleMarch 2, 2010--Ubuntu 8.04, Ubuntu 9.04, Ubuntu 9.10, Ubuntu 10.04

 

docker container to install ROS using accessories
ROS installation

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
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文