Skip to content

Commit 5a0374a

Browse files
committed
feat: add foxglove bridge to moveit demo
- Install ros-jazzy-foxglove-bridge in Dockerfile - Add foxglove_bridge node to both launch files (demo.launch.py, demo_gazebo.launch.py) - Expose port 8765 in Dockerfile and docker-compose.yml (cpu + nvidia profiles) - Add foxglove_bridge exec_depend to package.xml - Bridge binds to 0.0.0.0:8765 with use_sim_time enabled Connect Foxglove Studio via ws://localhost:8765 to visualize all ROS 2 topics, TF, and joint states from the running demo.
1 parent de26c75 commit 5a0374a

5 files changed

Lines changed: 39 additions & 1 deletion

File tree

demos/moveit_pick_place/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ RUN apt-get update && apt-get install -y \
3030
nlohmann-json3-dev \
3131
libcpp-httplib-dev \
3232
ros-jazzy-rosbag2-storage-mcap \
33+
ros-jazzy-foxglove-bridge \
3334
sqlite3 libsqlite3-dev git curl \
3435
&& rm -rf /var/lib/apt/lists/*
3536

@@ -78,6 +79,6 @@ RUN mkdir -p ${DEMO_SCRIPTS} && \
7879
ln -sf ${COLCON_WS}/install/moveit_medkit_demo/lib/moveit_medkit_demo/restore-normal.sh ${DEMO_SCRIPTS}/restore-normal.sh
7980
ENV PATH="${DEMO_SCRIPTS}:${PATH}"
8081

81-
EXPOSE 8080
82+
EXPOSE 8080 8765
8283

8384
CMD ["bash"]

demos/moveit_pick_place/docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ services:
1616
- /tmp/.X11-unix:/tmp/.X11-unix:rw
1717
ports:
1818
- "8080:8080"
19+
- "8765:8765"
1920
stdin_open: true
2021
tty: true
2122
command: >
@@ -45,6 +46,7 @@ services:
4546
- /tmp/.X11-unix:/tmp/.X11-unix:rw
4647
ports:
4748
- "8080:8080"
49+
- "8765:8765"
4850
deploy:
4951
resources:
5052
reservations:

demos/moveit_pick_place/launch/demo.launch.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,22 @@ def generate_launch_description():
130130
},
131131
],
132132
),
133+
# === Foxglove Bridge (WebSocket on port 8765) ===
134+
Node(
135+
package="foxglove_bridge",
136+
executable="foxglove_bridge",
137+
name="foxglove_bridge",
138+
output="screen",
139+
parameters=[
140+
{
141+
"use_sim_time": use_sim_time,
142+
"port": 8765,
143+
"address": "0.0.0.0",
144+
"send_buffer_limit": 10000000,
145+
"num_threads": 0,
146+
}
147+
],
148+
),
133149
# === Demo scripts ===
134150
# Pick-and-place loop
135151
Node(

demos/moveit_pick_place/launch/demo_gazebo.launch.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,24 @@ def generate_launch_description():
475475
],
476476
),
477477
# ═════════════════════════════════════════════════════════
478+
# Foxglove Bridge (WebSocket on port 8765)
479+
# ═════════════════════════════════════════════════════════
480+
Node(
481+
package="foxglove_bridge",
482+
executable="foxglove_bridge",
483+
name="foxglove_bridge",
484+
output="screen",
485+
parameters=[
486+
{
487+
"use_sim_time": True,
488+
"port": 8765,
489+
"address": "0.0.0.0",
490+
"send_buffer_limit": 10000000,
491+
"num_threads": 0,
492+
}
493+
],
494+
),
495+
# ═════════════════════════════════════════════════════════
478496
# Demo scripts
479497
# ═════════════════════════════════════════════════════════
480498
TimerAction(

demos/moveit_pick_place/package.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<exec_depend>ros2_medkit_gateway</exec_depend>
2828
<exec_depend>ros2_medkit_fault_manager</exec_depend>
2929
<exec_depend>ros2_medkit_diagnostic_bridge</exec_depend>
30+
<exec_depend>foxglove_bridge</exec_depend>
3031

3132
<export>
3233
<build_type>ament_cmake</build_type>

0 commit comments

Comments
 (0)