> For the complete documentation index, see [llms.txt](https://carec.gitbook.io/carec-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://carec.gitbook.io/carec-docs/documentation/simulation/robot-description-and-tf-tree.md).

# Robot Description and TF Tree

CAREC needs one robot description that can be parameterized for simulation and hardware without changing frame names or navigation semantics.

```mermaid
flowchart TD
    map --> odom
    odom --> base_footprint
    base_footprint --> base_link
    base_link --> sensors["Sensor frames"]
    base_link --> wheels["Wheel and caster frames"]
```

## Required frames

| Frame            | Responsibility                   | Publisher                                 |
| ---------------- | -------------------------------- | ----------------------------------------- |
| `map`            | Globally stable navigation frame | SLAM or localization                      |
| `odom`           | Locally continuous motion frame  | State estimator or odometry               |
| `base_footprint` | Ground-projected wheelchair pose | Robot state/localization stack            |
| `base_link`      | Main body reference              | Robot description                         |
| Sensor frames    | Optical or measurement origins   | Static transforms / robot state publisher |
| Wheel joints     | Drive and steering/caster state  | Joint state broadcaster                   |

Follow REP-103 axis conventions and use optical-frame conventions for cameras. Do not publish the same transform from two nodes.

## Description model

* Use Xacro for dimensions, variants, and sensor options.
* Separate visual meshes from simplified collision geometry.
* Model the occupied envelope and protruding components conservatively.
* Represent drive wheels with measured radius and separation.
* Include caster geometry when it materially affects collision or dynamics.
* Keep inertial values physically plausible; zero or near-zero inertia produces unstable simulation.

## TF acceptance checks

The tree must be connected, free of loops, free of duplicate publishers, timestamp-consistent with `/clock`, and available before navigation activates. CI should render the frame graph and fail on missing required frames.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://carec.gitbook.io/carec-docs/documentation/simulation/robot-description-and-tf-tree.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
