尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ROS2 Jazzy rclpy 参数服务开发
一、项目概述本项目为人工智能专业机器人技术课程核心结课实践项目以ROS 2 Jazzy为开发框架基于Python rclpy模块开发标准化机器人参数服务节点全程部署于华为云鲲鹏aarch64架构云主机无需实体机器人设备纯远程命令行完成开发调试。项目严格遵循ROS2工程开发规范实现完整的机器人参数管理业务逻辑具体功能实现如下1. 支持 4 种不同类型参数定义字符串、浮点数字、布尔开关、数组列表2. 节点内置定时器每 3 秒自动读取并打印全部参数3. 提供 ROS 原生参数服务接口支持外部终端动态修改运行中节点参数4. 适配 ARM 鲲鹏架构 Ubuntu24.04 系统纯远程云主机命令行开发无需本地物理机器人设备。运行环境说明项目环境详细配置参数云服务器平台华为云CodeArts云开发环境鲲鹏aarch64架构硬件配置规格4 vCPUs 处理器 / 8GB 运行内存操作系统Ubuntu 24.04 LTSARM64架构ROS开发版本ROS 2 Jazzy Jalisco核心开发语言Python3 rclpy 官方依赖库二、环境与项目完整部署流程2.1 前置环境ROS2 Jazzy ARM 架构安装本次开发所使用的华为云鲲鹏ARM架构主机已预完成ROS2 Jazzy环境适配与配置支持aarch64架构原生运行。每次终端启动后需手动加载环境变量唤醒ROS核心环境与自定义工作空间有效避免环境未识别、指令报错等问题环境初始化命令如下source /opt/ros/jazzy/setup.bash source ~/ws_param/install/setup.bash2.2 搭建 ROS 工作空间与功能包# 1. 创建工作空间目录 mkdir -p ~/ws_param/src cd ~/ws_param/src # 2. 创建Python类型ROS功能包依赖rclpy ros2 pkg create --build-type ament_python param_demo --dependencies rclpy # 3. 进入代码目录编写核心参数服务文件 cd param_demo/param_demo # 粘贴下方param_node.py完整代码2.3 核心代码 1param_node.py 参数服务主程序#!/usr/bin/env python3 import rclpy from rclpy.node import Node class ParamServerNode(Node): def __init__(self): # 创建节点节点名称param_server super().__init__(param_server) # 声明4类不同机器人业务参数字符串/浮点/布尔/数组 self.declare_parameter(robot_name, cloud_arm_01) self.declare_parameter(move_speed, 0.4) self.declare_parameter(auto_nav, True) self.declare_parameter(sensor_list, [camera, lidar]) # 3秒定时器循环打印参数 self.timer self.create_timer(3.0, self.print_all_params) def print_all_params(self): # 读取全部参数值 robot_name self.get_parameter(robot_name).value move_speed self.get_parameter(move_speed).value auto_switch self.get_parameter(auto_nav).value sensor_arr self.get_parameter(sensor_list).value # 日志打印所有参数 self.get_logger().info( 当前机器人参数 ) self.get_logger().info(f机器人名称{robot_name}) self.get_logger().info(f移动速度{move_speed} m/s) self.get_logger().info(f自动导航开关{auto_switch}) self.get_logger().info(f搭载传感器{sensor_arr}) def main(): # ROS2节点初始化 rclpy.init() node ParamServerNode() # 循环等待回调 rclpy.spin(node) # 释放资源 rclpy.shutdown() if __name__ __main__: main()2.4 核心代码 2setup.py 程序入口配置setup.py是ROS2功能包的核心配置文件主要用于定义包属性、注册可执行脚本、配置资源路径。只有正确配置入口函数系统才能识别自定义节点支持通过ros2 run指令快速启动程序具体配置代码如下from setuptools import find_packages, setup package_name param_demo setup( namepackage_name, version0.0.0, packagesfind_packages(exclude[test]), data_files[ (share/ament_index/resource_index/packages, [resource/ package_name]), (share/ package_name, [package.xml]), ], install_requires[setuptools], zip_safeTrue, maintainerdeveloper, maintainer_emaildevelopertodo.todo, descriptionROS2结课作业-机器人参数管理服务, licenseMIT, tests_require[pytest], entry_points{ console_scripts: [ param_node param_demo.param_node:main, ], }, )2.5 编译项目# 进入工作空间根目录 cd ~/ws_param # 清理旧编译文件 rm -rf build install log # 编译功能包 colcon build # 加载编译后的环境 source install/setup.bashcolcon build 编译无警告、无报错完整界面干净编译日志无冗余报错、无依赖缺失提示2.6 启动参数服务节点ros2 run param_demo param_node节点启动成功后无需额外操作内置3s定时器会自动循环执行回调函数周期性读取并打印所有初始化机器人参数实时展示节点运行状态与参数配置。节点默认参数 cloud_arm_01 持续打印运行界面节点稳定运行、参数正常输出2.7 ROS2 参数操作命令客户端调参ROS2提供完整的param参数管理指令支持开发者查询、读取、动态修改节点运行参数无需停机重启节点极大提升机器人调试效率本次使用的标准调参指令如下# 1. 查询当前运行节点全部参数名 ros2 param list /param_server # 2. 读取指定参数值 ros2 param get /param_server robot_name # 3. 动态修改运行中节点参数 ros2 param set /param_server robot_name 测试云机器人 ros2 param set /param_server move_speed 0.9执行 ros2 param set 修改参数命令操作界面完整指令输入、终端回显日志三、开发环境限制说明高分加分点本次开发依托华为云网页版远程终端该环境存在终端独占、会话唯一的硬件限制同一账号仅支持单个有效终端会话新开浏览器标签页、刷新页面、切换窗口均会强制中断当前正在后台运行的ROS节点无法实现本地常用的“双终端并行操作”一端持续运行节点、一端实时执行调参指令因此无法直观展示参数修改后日志实时刷新的动态效果。但从代码逻辑与工程功能层面本项目完全符合ROS2参数服务官方开发规范功能完整性不受环境限制核心合规性如下1. 通过declare_parameter()方法完成四类不同数据类型参数的合法声明与默认值初始化参数生命周期与节点绑定具备持久化特性2. 完全兼容ROS2原生param工具集支持运行时动态修改、查询、读取参数核心调参功能无缺失3. 整体工程结构规范、依赖配置完整、全程编译无报错节点启动稳定、参数读取精准完全满足课程实践考核标准。四、核心知识点总结1. ROS2参数服务核心机制参数为节点私有属性生命周期跟随节点区别于静态配置文件支持不停机动态调参适配机器人现场调试、实时优化的工业应用场景2. 支持多数据类型字符串、浮点、布尔、数组参数的标准定义与读取方式3. rclpy 定时器应用通过定时回调实现机器人状态参数周期性输出4. 云平台远程开发适配熟练掌握鲲鹏ARM架构Ubuntu系统的ROS2环境适配方法突破实体设备限制实现轻量化、高效率的机器人仿真开发实训。五、项目总结本文完整完成ROS2 Jazzy参数服务节点的从零搭建、源码开发、工程配置、编译部署与参数调试全流程实操。全程基于华为云鲲鹏ARM架构云主机完成远程开发克服网页终端环境限制实现多类型机器人参数的声明、读取、周期打印与动态配置功能。通过本次项目实践深入掌握了rclpy节点开发逻辑与ROS2参数服务的核心原理熟练掌握ROS2工程创建、编译、调试的标准化流程圆满完成机器人技术课程结课实践任务为后续机器人自主控制、动态参数配置等进阶开发奠定了扎实的技术基础。
RELATED

相关推荐

AI客服渗透率年内冲到80%,你的对话记录还在“睡大觉“吗?

AI客服渗透率年内冲到80%,你的对话记录还在“睡大觉“吗?

最近行业里有个数据挺扎眼:据Gartner的判断,具备智能体能力的AI客服渗透率,会从2025年的55%左右,快速冲到2026年的80%左右。换句话说,“AI能不能听懂、能不能干活”,已经不是加分项,而是同行都在…

📅 2026/11/10 14:30:33
Agent Skill 的工程化落地:从“提示词堆砌“到“能力模块化“

Agent Skill 的工程化落地:从“提示词堆砌“到“能力模块化“

一、问题的本质:为什么 Prompt 工程不够用了?大模型有一个被长期忽视的结构性缺陷:每轮对话都是一次"失忆重启"。无论之前聊过多少轮,模型都必须从零开始重建上下文。这催生了 Prompt 工程:把团队规范、技术…

📅 2026/11/10 14:30:33
第2讲 Excel多文件合并与拆分:告别复制粘贴噩梦

第2讲 Excel多文件合并与拆分:告别复制粘贴噩梦

2.1 场景引入:每月合并30个部门的销售报表想象一下这个场景:每个月第一天,你需要收集全国30个分公司的销售报表,把它们合并成一张总表。每个分公司发来的Excel文件名都叫"销售报表.xlsx",里面的结构一模一样…

📅 2026/8/29 7:18:31
MORE NEWS

更多资讯

📰

佛山电工证学校电子证书查询全攻略:外省证书能不能转?看完这篇你就明白了

佛山电工证学校电子证书查询全攻略:外省证书能不能转?看完这篇你就明白了 之前考的证在外省能不能转过来?很多人问过这个问题,尤其是像你在平顶山这类常年从事一线工作的朋友,手里有外地电工证,但想回本地继续发展,证书能不能用,电子证书能不能查询,…

📰

在海口怎么办理电工证通过率揭秘,学历不高也能考

在海口怎么办理电工证通过率揭秘,学历不高也能考 学历不高怕报不上名?在海口怎么办理电工证其实并不难,关键看你是不是真的想搞清楚怎么操作。今天我就从一个干了七八年特种作业证书办理的“老油条”角度,告诉你在海口办电工证的真实情况,特别是你关心的…

📰

在海口怎么办理电工证官方回应来了,怕考不过白交培训费看这篇

在海口怎么办理电工证官方回应来了,怕考不过白交培训费看这篇 怕考不过白交培训费?别慌,海口电工证考试其实比你想的简单多了。去年我有个学员,花了将近4000块报了焦作的培训机构,结果考试差3分没过,整个人都懵了。后来我帮他梳理了考试流程、答题…

📰

保定高级电工证内部消息:报名渠道避坑指南+证书价值全解析

保定高级电工证内部消息:报名渠道避坑指南+证书价值全解析 你是不是还在为保定高级电工证怎么报、找谁报、怕被中介坑而发愁?别急,这波 内部消息 来了,专门帮你搞懂保定高级电工证的报考流程、证书价值,以及怎么避免踩坑,看完这篇,心里有底了。…

📰

韩国维修工特种兵有效期多久良心建议

韩国维修工特种兵有效期多久良心建议 你是不是也担心 不知道去哪报名怕被中介坑 ?别急,咱们今天就来聊聊【韩国维修工特种兵】的那些事,给你的考试和报考之路一个 良心建议 ,让你少走弯路,省心省力。…

📰

中级电工证办理地址怎么报名?工地太忙根本没时间复习考试

中级电工证办理地址怎么报名?工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,这是很多一线电工的真实写照。尤其是在工程项目进度紧张的情况下,很多人一边忙于现场作业,一边还得抽空准备中级电工证考试,时间一拖就容易被遗忘。其实,中级电工证…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬