fix
This commit is contained in:
+25
-24
@@ -161,8 +161,8 @@ rclpy.shutdown() ── 清理
|
||||
```
|
||||
|
||||
### 2.6 本仓库对照
|
||||
- Python:[`src/py_pubsub/py_pubsub/publisher_member_function.py`](../src/py_pubsub/py_pubsub/publisher_member_function.py)
|
||||
- C++:[`src/cpp_pubsub/src/publisher_member_function.cpp`](../src/cpp_pubsub/src/publisher_member_function.cpp)
|
||||
- Python:[`src/py_pubsub/py_pubsub/publisher_node.py`](../src/py_pubsub/py_pubsub/publisher_node.py)(类名 `ChatterPublisher`)
|
||||
- C++:[`src/cpp_pubsub/src/chatter_publisher.cpp`](../src/cpp_pubsub/src/chatter_publisher.cpp)(类名 `ChatterPublisher`)
|
||||
|
||||
---
|
||||
|
||||
@@ -486,21 +486,21 @@ executor.spin()
|
||||
### 6.2 声明 / 读取 / 写
|
||||
|
||||
```python
|
||||
class Talker(Node):
|
||||
def __init__(self):
|
||||
super().__init__('talker_py')
|
||||
# 声明参数 + 默认值
|
||||
self.declare_parameter('period_ms', 500)
|
||||
self.declare_parameter('topic', 'chatter')
|
||||
class ChatterPublisher(Node):
|
||||
def __init__(self, *, node_name='chatter_publisher'):
|
||||
super().__init__(node_name)
|
||||
# 声明参数 + 默认值(实际类名 ChatterPublisher / 参数 publish_rate_hz)
|
||||
self.declare_parameter('publish_rate_hz', 2.0)
|
||||
self.declare_parameter('topic_name', 'chatter')
|
||||
|
||||
# 读取
|
||||
period = self.get_parameter('period_ms').value
|
||||
topic = self.get_parameter('topic').value
|
||||
rate = self.get_parameter('publish_rate_hz').value
|
||||
topic = self.get_parameter('topic_name').value
|
||||
|
||||
def change_param(self, new_period):
|
||||
def change_param(self, new_rate):
|
||||
# 运行时改
|
||||
param = rclpy.parameter.Parameter(
|
||||
'period_ms', rclpy.Parameter.Type.INTEGER, new_period
|
||||
'publish_rate_hz', rclpy.Parameter.Type.DOUBLE, new_rate
|
||||
)
|
||||
self.set_parameters([param])
|
||||
```
|
||||
@@ -508,12 +508,12 @@ class Talker(Node):
|
||||
### 6.3 CLI 改参数
|
||||
|
||||
```bash
|
||||
ros2 param list # 节点的所有参数
|
||||
ros2 param get /talker_py period_ms
|
||||
ros2 param set /talker_py period_ms 200
|
||||
ros2 param describe /talker_py period_ms
|
||||
ros2 param dump /talker_py > params.yaml # 导出
|
||||
ros2 param load /talker_py params.yaml # 加载
|
||||
ros2 param list # 节点的所有参数
|
||||
ros2 param get /chatter_publisher_py publish_rate_hz
|
||||
ros2 param set /chatter_publisher_py publish_rate_hz 5.0
|
||||
ros2 param describe /chatter_publisher_py publish_rate_hz
|
||||
ros2 param dump /chatter_publisher_py > params.yaml # 导出
|
||||
ros2 param load /chatter_publisher_py params.yaml # 加载
|
||||
```
|
||||
|
||||
### 6.4 launch 中覆盖
|
||||
@@ -521,24 +521,25 @@ ros2 param load /talker_py params.yaml # 加载
|
||||
```python
|
||||
Node(
|
||||
package='py_pubsub',
|
||||
executable='talker',
|
||||
parameters=[{'period_ms': 200, 'topic': 'chatter'}] # 覆盖
|
||||
executable='chatter_publisher',
|
||||
name='chatter_publisher_py',
|
||||
parameters=[{'publish_rate_hz': 5.0, 'topic_name': 'chatter'}], # 覆盖
|
||||
)
|
||||
```
|
||||
|
||||
CLI 启动:
|
||||
```bash
|
||||
ros2 run py_pubsub talker --ros-args -p period_ms:=200 -p topic:=hello
|
||||
ros2 run py_pubsub chatter_publisher --ros-args -p publish_rate_hz:=5.0 -p topic_name:=hello
|
||||
```
|
||||
|
||||
### 6.5 YAML 文件
|
||||
|
||||
```yaml
|
||||
# config/params.yaml
|
||||
talker_py:
|
||||
chatter_publisher_py:
|
||||
ros__parameters:
|
||||
period_ms: 200
|
||||
topic: chatter
|
||||
publish_rate_hz: 5.0
|
||||
topic_name: chatter
|
||||
```
|
||||
|
||||
```python
|
||||
|
||||
Reference in New Issue
Block a user