Skip to content

Commit 002e456

Browse files
feat(g1): added rerun visualization for G1 (#1334)
* rerun config g1 * fix: fillmode warning
1 parent 7461411 commit 002e456

File tree

1 file changed

+46
-2
lines changed

1 file changed

+46
-2
lines changed

dimos/robot/unitree/g1/blueprints/primitive/uintree_g1_primitive_no_nav.py

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from dimos_lcm.sensor_msgs import CameraInfo
1919

2020
from dimos.core.blueprints import autoconnect
21+
from dimos.core.global_config import global_config
2122
from dimos.core.transport import LCMTransport
2223
from dimos.hardware.sensors.camera import zed
2324
from dimos.hardware.sensors.camera.module import camera_module # type: ignore[attr-defined]
@@ -29,11 +30,55 @@
2930
from dimos.msgs.sensor_msgs import Image, PointCloud2
3031
from dimos.msgs.std_msgs import Bool
3132
from dimos.navigation.frontier_exploration import wavefront_frontier_explorer
32-
from dimos.robot.foxglove_bridge import foxglove_bridge
33+
from dimos.protocol.pubsub.impl.lcmpubsub import LCM
3334
from dimos.web.websocket_vis.websocket_vis_module import websocket_vis
3435

36+
rerun_config = {
37+
"pubsubs": [LCM(autoconf=True)],
38+
"visual_override": {
39+
"world/camera_info": lambda camera_info: camera_info.to_rerun(
40+
image_topic="/world/color_image",
41+
optical_frame="camera_optical",
42+
),
43+
"world/global_map": lambda grid: grid.to_rerun(voxel_size=0.1, mode="boxes"),
44+
"world/navigation_costmap": lambda grid: grid.to_rerun(
45+
colormap="Accent",
46+
z_offset=0.015,
47+
opacity=0.2,
48+
background="#484981",
49+
),
50+
},
51+
"static": {
52+
"world/tf/base_link": lambda rr: [
53+
rr.Boxes3D(
54+
half_sizes=[0.2, 0.15, 0.75],
55+
colors=[(0, 255, 127)],
56+
fill_mode="MajorWireframe",
57+
),
58+
rr.Transform3D(parent_frame="tf#/base_link"),
59+
]
60+
},
61+
}
62+
63+
match global_config.viewer_backend:
64+
case "foxglove":
65+
from dimos.robot.foxglove_bridge import foxglove_bridge
66+
67+
_with_vis = autoconnect(foxglove_bridge())
68+
case "rerun":
69+
from dimos.visualization.rerun.bridge import rerun_bridge
70+
71+
_with_vis = autoconnect(rerun_bridge(**rerun_config))
72+
case "rerun-web":
73+
from dimos.visualization.rerun.bridge import rerun_bridge
74+
75+
_with_vis = autoconnect(rerun_bridge(viewer_mode="web", **rerun_config))
76+
case _:
77+
_with_vis = autoconnect()
78+
3579
uintree_g1_primitive_no_nav = (
3680
autoconnect(
81+
_with_vis,
3782
camera_module(
3883
transform=Transform(
3984
translation=Vector3(0.05, 0.0, 0.6), # height of camera on G1 robot
@@ -53,7 +98,6 @@
5398
wavefront_frontier_explorer(),
5499
# Visualization
55100
websocket_vis(),
56-
foxglove_bridge(),
57101
)
58102
.global_config(n_dask_workers=4, robot_model="unitree_g1")
59103
.transports(

0 commit comments

Comments
 (0)