背景
在ROS2中自定义node时,有时候需要增加一些能够被launch文件设置的参数。
步骤
1. 创建功能包
新建目录dev_ws/src,在该目录下输入以下命令
1 | ros2 pkg create --build-type ament_cmake cpp_parameters --dependencies rclcpp |
–dependencies参数将必要的依赖添加到package.xml和CMakeList.txt中。
2. 编写C++节点
在dev_ws/src/cpp_parameters/src
目录中,创建一个名为的新文件cpp_parameters_node.cpp
并将以下代码粘贴到其中:
1 | #include <rclcpp/rclcpp.hpp> |
3. 修改CMakeList.txt
添加以下内容
1 | add_executable(parameter_node src/cpp_parameters_node.cpp) |
4. 编译运行
1 | colcon build --packages-select cpp_parameters |
5. 修改参数
通过命令行来修改
确保节点正在运行
1
ros2 run cpp_parameters parameter_node
在新终端中查看当前的参数列表(会看到自定义参数my_parameter)
1
ros2 param list
修改参数为earth
1
ros2 param set /parameter_node my_parameter earth
通过launch文件修改
在dev_ws/src/cpp_parameters/目录下创建launch目录,新建文件cpp_parameters_launch.py,填写以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(
package="cpp_parameters",
executable="parameter_node",
name="custom_parameter_node",
output="screen",
emulate_tty=True,
parameters=[
{"my_parameter": "earth"}
]
)
])在CMakeList中添加
1
2
3
4install(
DIRECTORY launch
DESTINATION share/${PROJECT_NAME}
)编译运行省略
通过源代码修改(专门细说)