fix
This commit is contained in:
+40
-19
@@ -248,22 +248,23 @@ bash scripts/launch.sh pubsub_launch 30
|
||||
# 第 2 个参数是运行时长(秒);空着 = 一直跑
|
||||
```
|
||||
|
||||
**预期输出**:
|
||||
**预期输出**(节点名是 `bringup/launch/pubsub_launch.py` 里 `name=` 字段决定的):
|
||||
```
|
||||
[INFO] [launch]: All log files can be found below /root/.ros/log/2026-08-03-...
|
||||
[INFO] [launch]: All log files can be found below /root/.ros/log/...
|
||||
[INFO] [launch]: Default logging verbosity is set to INFO
|
||||
[INFO] [talker-1]: process started with pid [56]
|
||||
[INFO] [listener-2]: process started with pid [58]
|
||||
[INFO] [talker-3]: process started with pid [60]
|
||||
[INFO] [listener-4]: process started with pid [62]
|
||||
[talker-1] [INFO] [...] talker_py started -> topic=chatter, period=500ms
|
||||
[listener-2] [INFO] [...] listener_py subscribed <- chatter
|
||||
[talker-3] [INFO] [...] talker_cpp started -> topic=chatter, period=500ms
|
||||
[listener-4] [INFO] [...] listener_cpp subscribed <- chatter
|
||||
[listener-2] [INFO] [...] recv: "Hello from PY, seq=0"
|
||||
[listener-4] [INFO] [...] recv: "Hello from C++, seq=0"
|
||||
[listener-4] [INFO] [...] recv: "Hello from PY, seq=0" ← **跨语言互通!**
|
||||
[listener-2] [INFO] [...] recv: "Hello from C++, seq=0" ← **跨语言互通!**
|
||||
[INFO] [chatter_publisher-1]: process started with pid [2656]
|
||||
[INFO] [chatter_publisher_cpp-2]: process started with pid [2658]
|
||||
[INFO] [chatter_subscriber-3]: process started with pid [2660]
|
||||
[INFO] [chatter_subscriber_cpp-4]: process started with pid [2662]
|
||||
[chatter_publisher_cpp-2] [INFO] [...] ChatterPublisher started: rate=2.00 Hz, topic="chatter"
|
||||
[chatter_publisher-1] [INFO] [...] ChatterPublisher started: rate=2.00 Hz, topic="chatter"
|
||||
[chatter_subscriber-3] [INFO] [...] ChatterSubscriber subscribed: topic="chatter"
|
||||
[chatter_subscriber_cpp-4] [INFO] [...] ChatterSubscriber subscribed: topic="chatter"
|
||||
[chatter_subscriber-3] [INFO] [...] recv #0: "Hello from PY, seq=0"
|
||||
[chatter_subscriber_cpp-4] [INFO] [...] recv #0: "Hello from C++, seq=0"
|
||||
[chatter_subscriber-3] [INFO] [...] recv #1: "Hello from C++, seq=0" ← 跨语言互通
|
||||
[chatter_subscriber_cpp-4] [INFO] [...] recv #1: "Hello from PY, seq=1" ← 跨语言互通
|
||||
...
|
||||
```
|
||||
|
||||
按 **Ctrl+C** 退出。
|
||||
@@ -278,15 +279,13 @@ docker exec ros2_dev bash -lc "source /opt/ros/humble/setup.bash && source /root
|
||||
**预期输出**:
|
||||
```
|
||||
/chatter
|
||||
/joint_states
|
||||
/parameter_events
|
||||
/rosout
|
||||
/tf
|
||||
```
|
||||
|
||||
**看 chatter 频率**:
|
||||
```bash
|
||||
docker exec ros2_dev bash -lc "source /opt/ros/humble/setup.bash && source /root/ros2_ws/install/setup.bash && ros2 topic hz /chatter --no-daemon"
|
||||
docker exec ros2_dev bash -lc "source /opt/ros/humble/setup.bash && source /root/ros2_ws/install/setup.bash && ros2 topic hz /chatter"
|
||||
```
|
||||
|
||||
**预期**:
|
||||
@@ -295,7 +294,7 @@ average rate: 4.000
|
||||
min: 0.250s max: 0.260s std dev: 0.00302s window: 10
|
||||
```
|
||||
|
||||
(4Hz = 2 talker × 2Hz)
|
||||
(4Hz = 2 publisher × 2Hz)
|
||||
|
||||
### 5.3 看通信拓扑(可视化)
|
||||
|
||||
@@ -380,7 +379,7 @@ source .venv/bin/activate
|
||||
- [ ] `docker ps` 看到 `ros2_dev` 容器 `Up`
|
||||
- [ ] `docker exec ros2_dev echo hello` 输出 `hello`
|
||||
- [ ] `bash scripts/build.sh` 12 packages 全 build 成功
|
||||
- [ ] `bash scripts/test.sh` 全过(12 packages / 78 tests, 0 failed)
|
||||
- [ ] `bash scripts/test.sh` 全过(12 packages / 82 tests, 0 failed)
|
||||
- [ ] `bash scripts/launch.sh pubsub_launch 30` 启动 4 节点
|
||||
- [ ] `docker exec ros2_dev bash -c "ros2 topic list"` 看到 `/chatter`
|
||||
- [ ] `docker exec ros2_dev bash -c "ros2 topic hz /chatter --no-daemon"` 显示 ~4Hz
|
||||
@@ -399,6 +398,28 @@ source .venv/bin/activate
|
||||
- Win/macOS:启动 Docker Desktop,等右下角图标稳定
|
||||
- Linux:`sudo systemctl start docker`
|
||||
|
||||
### Q1.4: `ros2 topic info` 显示 Publisher count: 4(应该是 2)
|
||||
**原因**:`bash scripts/launch.sh pubsub_launch forever` 或多次调试后,launch fork 出的 `chatter_publisher_*` 子进程 reparent 到容器 PID 1,下次启动 launch 又起 2 个,累计 4 个。
|
||||
**解决**:
|
||||
```bash
|
||||
docker exec ros2_dev bash /root/ros2_ws/scripts/clean_ros.sh
|
||||
```
|
||||
|
||||
### Q1.5: `docker compose up` 报 `Pool overlaps with other one on this address space`
|
||||
```
|
||||
Network ros2_ros2_net Error Error response from daemon:
|
||||
invalid pool request: Pool overlaps with other one on this address space
|
||||
failed to create network ros2_ros2_net
|
||||
```
|
||||
**原因**:compose project 名 `ros2` 让网络名前缀成 `ros2_ros2_net`,但仓库里手动(或上次启动)已经创建了 `ros2_net`,子网重叠 daemon 拒绝。
|
||||
**解决 1(推荐)**:绕过 compose,直接走 docker run(参考 Step 3)。
|
||||
**解决 2**:
|
||||
```bash
|
||||
docker rm -f ros2_dev
|
||||
docker network rm ros2_net
|
||||
docker compose -p ros2 -f docker/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
### Q2: 构建镜像很慢,卡在 `pulling image`
|
||||
**原因**: 网络慢 / 在国内
|
||||
**解决**:
|
||||
|
||||
Reference in New Issue
Block a user