yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
RDK S600 Developer Kit📖
1.RDK S600 board introduction
  • 1.1 RDK S600 board introduction
  • 1.2 System Flashing
  • 1.3 Hardware Interface Description
  • 1.4 Accessory Installation
  • 1.5 Camera Expansion Board
  • 1.6 MCU Interface Expansion Board
  • 1.7 Precautions for Using the 15.6-inch Screen
  • 1.8 System Boot Modes
2.RDK S600 basic course
  • 2.1 Network Configuration
  • 2.2 Remote Login
  • 2.3 System Update
  • 2.4 Boot Auto-Start Configuration
  • 2.5 RDK Exclusive Command Usage
  • 2.6 Linux Command Usage
  • 2.7 Examples of GPIO Read and Write Operations
  • 2.8 Using the USB Camera
  • 2.9 Solid-state mounting
  • 2.10 SSD expansionnew
3.TogetheROS.Bot Vision Applications
  • 1. About TogetheROS. Bot
  • 2. System Installation
  • 3. Object Detection(YOLO)
  • 4. Image Classification(mobilenetv2)
  • 5. Image Segmentation(mobilenet_unet)
  • 6. Perception Algorithm(BEV)
  • 7. Human Detection and Tracking (Ultralytics YOLO Pose)
4. Offline AI Large Model Development
Offline large model (Text Interaction)
  • 1. AI large model environment deployment
  • 2. Install large model dialogue platform
  • 3. Meta AI Llama 3.2 model
  • 4. Alibaba Cloud Qwen3 model
  • 5. Microsoft Phi-4 mini model
  • 6. DeepSeek - DeepSeek-R1 model
  • 7. Alibaba Cloud Qwen2.5vl Visual Multimodal Large Model
  • 8. Google Gemma3 Visual Multimodal Large Model
  • 9. Lava Visual Multimodal Large Model
  • 10. MiniCPM-V Visual Multimodal Large Model
  • 11. Multimodal visual understand application
  • 12. Multimodal text image application
  • 13. Multimodal visual localization application
  • 14. Multimodal table scanning application
  • 15. Multimodal Autonomous Agent Applications
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 voice interaction
  • 5. Multimodal Text-to-Image application
  • 6. Multimodal video analytics application
  • 7. Multimodal visual localization application
  • 8. Multimodal table scanning application
  • 9. Multimodal autonomous agent application
  • 10. AI Large Model Offline Voice Assistant
5. Online AI Large Model Development
Online large model (Text Interaction)
  • 1.OpenRouter large model API aggregation platform
  • 2.Multimodal visual understand application
  • 3.Multimodal visual localization application
  • 4.Multimodal table scanning application
  • 5.Multimodal autonomous proxy application
Online large model (Voice Interaction)
  • 0.Voice interaction hardware connection (ReadMe)
  • 1.Online speech to text (ASR)
  • 2.Online text to speech (TTS)
  • 3.AI large model voice interaction
  • 4.Multimodal visual understand speech interaction
  • 5.Multimodal visual localization application
  • 6.Multimodal table scanning application
  • 7.Multimodal autonomous proxy application
  • 8.AI large model online voice assistant
6.YOLO26 tutorials
  • 01.YOLO26 environment
  • 02.CLI use
  • 03.Object detection
  • 04.Instance segmentation
  • 05.Pose estimation
  • 06.Image classification
  • 07.Oriented object detection
  • 08.Model conversion
  • 09.Dataset annotation
  • 10.Model training - conversion
  • 11.Model prediction
7.OpenClaw Advanced Development
  • 1. OpenClaw Deployment
  • 2. OpenClaw and WhatsApp Plugin Application
  • 3. OpenClaw TUI Interaction
  • 4. OpenClaw WebChat Interaction
  • 5. OpenClaw Gate Gateway Operation Manual
  • 6. OpenClaw Plugin Function Introduction
  • 7. OpenClaw Tools Introduction
  • 8. OpenClaw ClawHub Introduction (skill Installation)
  • 9.OpenClaw Application - File Management
  • 10.OpenClaw Application - Browser Control
  • 11.OpenClaw Application - Camera
  • 12.OpenClaw Application - Script Execution
  • 13.OpenClaw Application - AI Programming (Peripheral & GPIO Control)
  • 14. OpenClaw Application - Dedicated AI Assistant
  • 15. OpenClaw Configure Web Search Capability
8.ROS2 basic course
  • 1.Introduction to ROS2
  • 2.ROS2 install Jazzy
  • 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
  • System_File
  • Code
  • 3D_Model_File
  • Tools_Software
Download ZIP

Welcome to RDK S600 Developer Kit repository

11.ROS2 parameter service case

11. ROS2 Parameter Service Case

Note: The accompanying reference video uses the ROS Humble version, for reference only

1. Parameter Overview

Similar to global variables in C++ programming, parameters can facilitate sharing certain data across multiple programs. Parameters are a global dictionary in the ROS robot system that allows data sharing across multiple nodes.

In the ROS system, parameters exist as a global dictionary. What is a dictionary? Just like a real dictionary, it consists of a name and a value, also called key and value, combined as key-value pairs. Alternatively, we can understand it as being similar to parameters in programming. There is a parameter name, followed by an equals sign, and then the parameter value. When using it, you just access the parameter name.

Parameters have rich features. For example, if a node shares a parameter, other nodes can all access it. If a node modifies a parameter, other nodes can immediately detect the change and get the latest value.

 

2. Parameters in TurtleSim Example

In the turtlesim example, the simulator also provides several parameters. Let's familiarize ourselves with the meaning of parameters and command-line usage through this example.

Since this requires displaying a GUI, for convenience, the following examples are demonstrated in the virtual machine that comes with this course.

  1. Start two terminals in the virtual machine and run the turtlesim simulator and keyboard control node respectively:

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

image-20231030182608893

 

  1. Start a terminal in the virtual machine and use the following command to view the parameter list:

xxxxxxxxxx
ros2 param list

image-20231030182640039

  1. Parameter Query and Modification

If you want to query or modify a parameter's value, you can follow the param command with get or set subcommands:

xxxxxxxxxx
ros2 param describe turtlesim background_b   # View description of a parameter
ros2 param get turtlesim background_b        # Query a parameter's value
ros2 param set turtlesim background_b 10     # Modify a parameter's value
  1. Parameter File Save and Load

It's troublesome to query/modify parameters one by one. Let's try parameter files. Parameter files in ROS use YAML format. You can follow the param command with the dump subcommand to save all parameters of a node to a file, or use the load command to load all content from a parameter file at once:

xxxxxxxxxx
ros2 param dump turtlesim >> turtlesim.yaml  # Save a node's parameters to a parameter file
ros2 param load turtlesim turtlesim.yaml     # Load all parameters from a file at once

 

3. Parameter Example

3.1. Create New Package

  • Create a new package in the workspace src directory:

xxxxxxxxxx
ros2 pkg create pkg_param --build-type ament_python --dependencies rclpy --node-name param_demo

After executing the above command, the pkg_param package will be created, along with a param_demo node, and the related configuration files will already be set up.

image-20231030185328553

 

3.2. Code Implementation

Next, edit [param_demo.py] to implement the functionality. Add the following code:

​x
import rclpy                                     # ROS2 Python interface library
from rclpy.node import Node                    # ROS2 Node class

class ParameterNode(Node):
    def __init__(self, name):
        super().__init__(name)                                    # ROS2 node parent class initialization
        self.timer = self.create_timer(2, self.timer_callback)    # Create a timer (periodic callback in seconds)
        self.declare_parameter('robot_name', 'muto')              # Create a parameter and set its default value

    def timer_callback(self):                                      # Create timer periodic callback function
        robot_name_param = self.get_parameter('robot_name').get_parameter_value().string_value   # Read parameter value from ROS2 system
        self.get_logger().info('Hello %s!' % robot_name_param)     # Output log info, print the read parameter value

def main(args=None):                                 # ROS2 node main entry point
    rclpy.init(args=args)                            # ROS2 Python interface initialization
    node = ParameterNode("param_declare")            # Create ROS2 node object and initialize
    rclpy.spin(node)                                 # Loop waiting for ROS2 exit
    node.destroy_node()                              # Destroy node object
    rclpy.shutdown()                                 # Shutdown ROS2 Python interface

 

3.3. Build Package

xxxxxxxxxx
colcon build --packages-select pkg_param

image-20250905150404041

 

3.4. Run Program

  • First, refresh environment variables, then run the node:

xxxxxxxxxx
ros2 run pkg_param param_demo

image-20250905150438440

 

Open another terminal and set robot_name to robot:

xxxxxxxxxx
ros2 param set param_declare robot_name robot

In the terminal, you can see the continuously printed log information. The "muto" is the default parameter value we set. The parameter name is "robot_name". After modifying this parameter via command line, you can see the terminal output has changed accordingly.

image-20231030190533095

ROS2 custom interface message
ROS2 meta-function package

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