From 7b73c241c67c0dd8ef9d73d43b41b92822934241 Mon Sep 17 00:00:00 2001 From: Lucas Wohlhart Date: Thu, 30 Jan 2020 17:35:01 +0100 Subject: [PATCH 1/2] Add static transform (/tf_static) to 3DViz Panel Changelog: - Parse messages commonly published at the /tf_static topic to include them in the transform tree - Thereby correctly building tf tree for most robot descriptions (sensor placements, fixed joints, ...) --- .../src/panels/ThreeDimensionalViz/index.js | 3 ++- .../src/panels/ThreeDimensionalViz/withTransforms.js | 12 +++++++++++- packages/webviz-core/src/util/globalConstants.js | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/webviz-core/src/panels/ThreeDimensionalViz/index.js b/packages/webviz-core/src/panels/ThreeDimensionalViz/index.js index 880f4d034..16872a84a 100644 --- a/packages/webviz-core/src/panels/ThreeDimensionalViz/index.js +++ b/packages/webviz-core/src/panels/ThreeDimensionalViz/index.js @@ -34,7 +34,7 @@ import Transforms from "webviz-core/src/panels/ThreeDimensionalViz/Transforms"; import withTransforms from "webviz-core/src/panels/ThreeDimensionalViz/withTransforms"; import type { Frame, Topic } from "webviz-core/src/players/types"; import type { SaveConfig } from "webviz-core/src/types/panels"; -import { TRANSFORM_TOPIC } from "webviz-core/src/util/globalConstants"; +import { TRANSFORM_TOPIC, TRANSFORM_STATIC_TOPIC } from "webviz-core/src/util/globalConstants"; export type ThreeDimensionalVizConfig = { autoTextBackgroundColor?: boolean, @@ -245,6 +245,7 @@ export default hot( FrameCompatibility(withTransforms(Renderer), [ ...getGlobalHooks().perPanelHooks().ThreeDimensionalViz.topics, TRANSFORM_TOPIC, + TRANSFORM_STATIC_TOPIC, ]) ) ); diff --git a/packages/webviz-core/src/panels/ThreeDimensionalViz/withTransforms.js b/packages/webviz-core/src/panels/ThreeDimensionalViz/withTransforms.js index 348326acd..a89da2b79 100644 --- a/packages/webviz-core/src/panels/ThreeDimensionalViz/withTransforms.js +++ b/packages/webviz-core/src/panels/ThreeDimensionalViz/withTransforms.js @@ -12,7 +12,7 @@ import * as React from "react"; import { getGlobalHooks } from "../../loadWebviz"; import Transforms from "webviz-core/src/panels/ThreeDimensionalViz/Transforms"; import type { Frame } from "webviz-core/src/players/types"; -import { TRANSFORM_TOPIC } from "webviz-core/src/util/globalConstants"; +import { TRANSFORM_TOPIC, TRANSFORM_STATIC_TOPIC } from "webviz-core/src/util/globalConstants"; type State = {| transforms: Transforms |}; @@ -44,6 +44,16 @@ function withTransforms(ChildComponent: React.ComponentType) { } } } + const tfs_static = frame[TRANSFORM_STATIC_TOPIC]; + if (tfs_static) { + for (const msg of tfs_static) { + for (const tf of msg.message.transforms) { + if (tf.child_frame_id !== getGlobalHooks().perPanelHooks().ThreeDimensionalViz.skipTranformFrame) { + transforms.consume(tf); + } + } + } + } return { transforms }; } diff --git a/packages/webviz-core/src/util/globalConstants.js b/packages/webviz-core/src/util/globalConstants.js index cb9f159c7..565e427f2 100644 --- a/packages/webviz-core/src/util/globalConstants.js +++ b/packages/webviz-core/src/util/globalConstants.js @@ -24,6 +24,7 @@ export const GLOBAL_VARIABLES_QUERY_KEY = "global-variables"; export const DEFAULT_WEBVIZ_NODE_PREFIX = "/webviz_node/"; export const TRANSFORM_TOPIC = "/tf"; +export const TRANSFORM_STATIC_TOPIC = "/tf_static"; export const DIAGNOSTIC_TOPIC = "/diagnostics"; export const ROSOUT_TOPIC = "/rosout"; export const SOCKET_KEY = "dataSource.websocket"; From 96dc426d9a828ac05705681e1b983629fa33f66b Mon Sep 17 00:00:00 2001 From: Lucas Wohlhart Date: Fri, 31 Jan 2020 08:41:43 +0100 Subject: [PATCH 2/2] remove unnecessary skipTransformFrame check --- .../src/panels/ThreeDimensionalViz/withTransforms.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/webviz-core/src/panels/ThreeDimensionalViz/withTransforms.js b/packages/webviz-core/src/panels/ThreeDimensionalViz/withTransforms.js index a89da2b79..96d6b61a6 100644 --- a/packages/webviz-core/src/panels/ThreeDimensionalViz/withTransforms.js +++ b/packages/webviz-core/src/panels/ThreeDimensionalViz/withTransforms.js @@ -48,9 +48,7 @@ function withTransforms(ChildComponent: React.ComponentType) { if (tfs_static) { for (const msg of tfs_static) { for (const tf of msg.message.transforms) { - if (tf.child_frame_id !== getGlobalHooks().perPanelHooks().ThreeDimensionalViz.skipTranformFrame) { - transforms.consume(tf); - } + transforms.consume(tf); } } }