Cannot set the transformation error

Dear all,

I’m writing in reference to an error that I cannot understand, I follow the complete guide here: https://docs.nvidia.com/isaac/isaac/doc/simulation/unity3d.html to simulate the robot and use it for navigation.
It works very well but if I modify the navsim_navigate.app.json file by removing the edge that connects the laser scan with the localization part (in order to make the robot not able to localize itself) and I add an interactive marker connected to the world frame, when I try to move this interactive marker the application terminates with this error:

2020-09-18 10:29:00.068 PANIC engine/alice/components/PoseTree.cpp@84: Cannot set the transformation world_T_test_marker at time 52.327262

According to my understanding, this shouldn’t happen, why can’t I set a transform if the robot is not localized?

Thanks in advance,
Luca

Here is the modified code of my app:

{
“name”: “navigate”,
“modules”: [
“behavior_tree”,
“viewers”
],
“graph”: {
“nodes”: [
{
“name”: “simulation”,
“subgraph”: “packages/navsim/apps/navsim_navigation.subgraph.json”
},
{
“name”: “navigation”,
“subgraph”: “packages/navigation/apps/differential_base_navigation.subgraph.json”
},
{
“name”: “goals”,
“subgraph”: “packages/navigation/apps/goal_generators.subgraph.json”
},
{
“name”: “camera_viewer”,
“components”: [
{
“name”: “ledger”,
“type”: “isaac::alice::MessageLedger”
},
{
“name”: “color_viewer”,
“type”: “isaac::viewers::ColorCameraViewer”
},
{
“name”: “depth_viewer”,
“type”: “isaac::viewers::DepthCameraViewer”
}
]
},
{
“name”: “navigate_after_scenario_loads”,
“components”: [
{
“name”: “NodeGroup”,
“type”: “isaac::behavior_tree::NodeGroup”
},
{
“name”: “MemorySequenceBehavior”,
“type”: “isaac::behavior_tree::MemorySequenceBehavior”
}
]
},
{
“name”: “interactive_markers_bridge2”,
“components”: [
{
“name”: “message_ledger”,
“type”: “isaac::alice::MessageLedger”
},
{
“name”: “InteractiveMarkersBridge”,
“type”: “isaac::alice::InteractiveMarkersBridge”
},
{
“name”: “test_marker_initializer”,
“type”: “isaac::alice::PoseInitializer”
}
]
}
],
“edges”: [
{
“source”: “navigation.subgraph/interface/feedback”,
“target”: “goals.subgraph/interface/feedback”
},
{
“source”: “goals.subgraph/interface/goal”,
“target”: “navigation.subgraph/interface/goal”
},
{
“source”: “simulation.interface/noisy/flatscan”,
“target”: “navigation.subgraph/interface/flatscan_for_obstacles”
},
{
“source”: “simulation.interface/output/base_state”,
“target”: “navigation.subgraph/interface/state”
},
{
“source”: “simulation.interface/output/imu_raw”,
“target”: “navigation.subgraph/interface/imu_raw”
},
{
“source”: “navigation.subgraph/interface/command”,
“target”: “simulation.interface/input/base_command”
},
{
“source”: “simulation.interface/output/color”,
“target”: “camera_viewer/color_viewer/color_listener”
},
{
“source”: “simulation.interface/output/depth”,
“target”: “camera_viewer/depth_viewer/depth_listener”
},
{
“source”: “navigation.planner.global_plan_smoother/smoother/smooth_plan”,
“target”: “simulation.interface/sight/global_plan”
},
{
“source”: “navigation.control.lqr/isaac.planner.DifferentialBaseLqrPlanner/plan”,
“target”: “simulation.interface/sight/local_plan”
},
{
“source”: “websight/WebsightServer/interactive_markers”,
“target”: “interactive_markers_bridge2/InteractiveMarkersBridge/request”
},
{
“source”: “interactive_markers_bridge2/InteractiveMarkersBridge/reply”,
“target”: “websight/WebsightServer/interactive_markers_reply”
}
]
},
“config”: {
“interactive_markers_bridge2”: {
“InteractiveMarkersBridge”: {
“tick_period”: “0.4”
},
“test_marker_initializer”: {
“lhs_frame”: “world”,
“rhs_frame”: “test_marker”,
“pose”: [0, 0.0, 0.0, 0.0, 0, 0.0, 0.0],
“attach_interactive_marker”: true
}
},
“navigate_after_scenario_loads”: {
“NodeGroup”: {
“node_names”: [
“simulation.scenario_manager”,
“navigation.localization.localization_behavior”
]
}
},
“navigation.localization.localization_behavior”: {
“disable_automatic_start”: true
},
“goals.goal_behavior”: {
“isaac.navigation.SelectorBehavior”: {
“desired_behavior”: “pose”
}
},
“navigation.imu_odometry.odometry”: {
“DifferentialBaseWheelImuOdometry”: {
“use_imu”: false
}
},
“goals.pose_as_goal”: {
“isaac.navigation.PoseAsGoal”: {
“goal_frame”: “goal_from_sim”
}
},
“goals.patrol”: {
“FollowPath”: {
“stationary_wait_time”: 30.0,
“wait_time”: 0.0
}
},
“camera_viewer”: {
“color_viewer”: {
“target_fps”: 20,
“reduce_scale”: 4
},
“depth_viewer”: {
“colormap”: [
[ 128, 0, 0 ],
[ 255, 0, 0 ],
[ 255, 255, 0 ],
[ 0, 255, 255 ],
[ 0, 0, 255 ],
[ 0, 0, 128 ]
],
“min_visualization_depth”: 0.0,
“max_visualization_depth”: 20.0,
“target_fps”: 20,
“reduce_scale”: 4
}
}
}
}

1 Like

did u ever manage to figure that out?

That error usually indicates that there would be multiple paths between the world frame and the test_marker frame in the pose graph. There is a transform in the graph between some other frame and the test_marker frame which you should be able to see in Isaac Sight.