This commit is contained in:
2026-08-05 18:17:25 +08:00
parent 61796dfa9f
commit b52cee9e39
34 changed files with 866 additions and 309 deletions
+18 -12
View File
@@ -97,6 +97,10 @@ msg.data = bgr_array.tobytes() # numpy → bytes
## 3. Publisher API(Python / C++)
> ⚠️ **本节用教学简化命名**(Talker/Listener/talker_py/listener_py),只是为了讲解 API。
> 仓库真实节点是 `chatter_publisher` / `chatter_subscriber`,launch 重命名为 `chatter_publisher_py` / `chatter_publisher_cpp` 等。
> 看真实代码:`src/py_pubsub/py_pubsub/publisher_node.py` 的 `ChatterPublisher`。
### 3.1 Python
```python
@@ -201,6 +205,8 @@ int main(int argc, char * argv[]) {
## 4. Subscriber API(Python / C++)
> 同 §3,本节用教学简化命名。真实代码:`src/py_pubsub/py_pubsub/subscriber_node.py` 的 `ChatterSubscriber`。
### 4.1 Python
```python
@@ -337,21 +343,21 @@ ros2 launch bringup pubsub_launch.py
ros2 topic info /chatter -v
```
**预期**:
**预期**(实际节点名是 `bringup/launch/pubsub_launch.py``name=` 字段定的):
```
Publication count: 2
Subscription count: 2
Node name: listener_py Node namespace: /
Node name: chatter_publisher_py Node namespace: /
Publisher count: 0
Node name: talker_py Node namespace: /
Node name: chatter_subscriber_py Node namespace: /
Publisher count: 1
Node name: listener_cpp Node namespace: /
Node name: chatter_publisher_cpp Node namespace: /
Publisher count: 0
Node name: talker_cpp Node namespace: /
Node name: chatter_subscriber_cpp Node namespace: /
Publisher count: 1
```
看到 **talker_py + talker_cpp** 两个 publisher, **listener_py + listener_cpp** 两个 subscriber。
看到 **chatter_publisher_py + chatter_publisher_cpp** 两个 publisher,**chatter_subscriber_py + chatter_subscriber_cpp** 两个 subscriber。
### 6.4 看跨语言消息流
@@ -475,8 +481,8 @@ ros2 bag play my_bag
# 看当前所有节点
ros2 node list
# 看节点发布的 topic
ros2 node info /talker_py
# 看节点发布的 topic(实际节点名 chatter_publisher_py / chatter_publisher_cpp)
ros2 node info /chatter_publisher_py
```
---
@@ -563,10 +569,10 @@ docker exec ros2_dev bash -lc "cd /root/ros2_ws && source install/setup.bash &&
```
### 10.2 源码位置
- Python pub: [`src/py_pubsub/py_pubsub/publisher_member_function.py`](../src/py_pubsub/py_pubsub/publisher_member_function.py)
- Python sub: [`src/py_pubsub/py_pubsub/subscriber_member_function.py`](../src/py_pubsub/py_pubsub/subscriber_member_function.py)
- C++ pub: [`src/cpp_pubsub/src/publisher_member_function.cpp`](../src/cpp_pubsub/src/publisher_member_function.cpp)
- C++ sub: [`src/cpp_pubsub/src/subscriber_member_function.cpp`](../src/cpp_pubsub/src/subscriber_member_function.cpp)
- Python pub: [`src/py_pubsub/py_pubsub/publisher_node.py`](../src/py_pubsub/py_pubsub/publisher_node.py)
- Python sub: [`src/py_pubsub/py_pubsub/subscriber_node.py`](../src/py_pubsub/py_pubsub/subscriber_node.py)
- C++ pub: [`src/cpp_pubsub/src/chatter_publisher.cpp`](../src/cpp_pubsub/src/chatter_publisher.cpp)
- C++ sub: [`src/cpp_pubsub/src/chatter_subscriber.cpp`](../src/cpp_pubsub/src/chatter_subscriber.cpp)
- launch: [`src/bringup/launch/pubsub_launch.py`](../src/bringup/launch/pubsub_launch.py)
### 10.3 端到端日志