先把Parameters玩熟更改 turtlesim 顏色/速度步驟 1用 turtlesim 練習參數命令不用寫程式終端 1启动乌龟ros2 run turtlesim turtlesim_node終端 2看所有參數ros2 param list /turtlesim# 會看到 background_r / background_g / background_b / pen_width 等終端 3改顏色馬上看到畫面變化ros2 paramset/turtlesim background_r200ros2 paramset/turtlesim background_g100ros2 paramset/turtlesim background_b50存档ros2 param dump /turtlesimmy_turtle_params.yaml下次启动时直接载入ros2 run turtlesim turtlesim_node --ros-args --params-file my_turtle_params.yaml步驟 2自己写一个带参数的 nodePython 版新建param_node.pyimportrclpyfromrclpy.nodeimportNodeclassParamNode(Node):def__init__(self):super().__init__(my_param_node)# 宣告參數 預設值Humble 推薦這樣寫安全self.declare_parameter(speed,1.1)self.declare_parameter(enable,True)self.declare_parameter(name,robot1)# 正確讀取參數值統一用 .valueself.speedself.get_parameter(speed).value self.enableself.get_parameter(enable).value self.nameself.get_parameter(name).value# 如果擔心參數沒宣告或沒值可以加防呆可選# self.speed self.get_parameter_or(speed, 1.0).valueself.get_logger().info(f[{self.name}] speed{self.speed}, enable{self.enable})# 定時器每秒印一次模擬使用參數self.timerself.create_timer(1.0,self.timer_callback)deftimer_callback(self):# 每次 callback 都重新讀取最新參數值self.speedself.get_parameter(speed).value self.enableself.get_parameter(enable).valueifself.enable:self.get_logger().info(f正在以{self.speed}的速度前進...)else:self.get_logger().info(已暫停)defmain(argsNone):rclpy.init(argsargs)nodeParamNode()rclpy.spin(node)rclpy.shutdown()if__name____main__:main()修改setup.py的 entry_pointsconsole_scripts:[hello_exe my_first_pkg.hello_node:main,param_node my_first_pkg.param_node:main,],编译cd~/ros2_ws colcon build --packages-select my_first_pkgsourceinstall/setup.bash ros2 run my_first_pkg param_node新終端改参数看 log 是否变化ros2 paramset/my_param_node speed2.5ros2 paramset/my_param_nodeenablefalse