Skip to content
Closed
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions dimos/agents/skills/navigation.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def tag_location(self, location_name: str) -> str:

if not self._skill_started:
raise ValueError(f"{self} has not been started.")
tf = self.tf.get("map", "base_link", time_tolerance=2.0)
tf = self.tf.get("world", "base_link", time_tolerance=2.0)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: frame mismatch: tagging uses world frame but navigation to tagged locations uses map frame (line 165). In the TF tree, map is parent to world (rosnav.py:231-232). When retrieving a tagged location, the stored coordinates will be in world frame but the navigation goal is created with frame_id="map", causing incorrect positioning.

Suggested change
tf = self.tf.get("world", "base_link", time_tolerance=2.0)
tf = self.tf.get("map", "base_link", time_tolerance=2.0)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sinha7y is this true

Copy link
Copy Markdown
Contributor Author

@sinha7y sinha7y Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it was fixed with the previous commit

if not tf:
return "Could not get the robot's current transform."

Expand Down Expand Up @@ -162,7 +162,7 @@ def _navigate_by_tagged_location(self, query: str) -> str | None:
goal_pose = PoseStamped(
position=make_vector3(*robot_location.position),
orientation=Quaternion.from_euler(Vector3(*robot_location.rotation)),
frame_id="map",
frame_id="world",
)

result = self._navigate_to(goal_pose)
Expand Down Expand Up @@ -393,7 +393,7 @@ def _get_goal_pose_from_result(self, result: dict[str, Any]) -> PoseStamped | No
return PoseStamped(
position=make_vector3(pos_x, pos_y, 0),
orientation=Quaternion.from_euler(make_vector3(0, 0, theta)),
frame_id="map",
frame_id="world",
)


Expand Down
Loading