# RViz中base_link/odom与底盘模型偏移

> 原文链接：https://robotics.hellobike.com/pitfalls/2016-01-12-robotics-se-8866
> 频道：pitfalls | 更新日期：2016-01-12 | 标签：auto, stackexchange, mobile-robot, ros, navigation, odometry
> 核心摘要：SolidWorks装配体未与原点基准面配合，导致URDF导出后TF偏移；将底盘原点与装配体原点配合后重导出。

# RViz中base_link/odom与底盘模型偏移

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Tf frame origin is offset from the actual base_link](https://robotics.stackexchange.com/questions/8866/tf-frame-origin-is-offset-from-the-actual-base-link)（Robotics Stack Exchange #8866）

**状态**：已解决

## 问题

差速移动机器人由SolidWorks经`solidworks2urdf`导出URDF后，在RViz查看TF时，`Base_plate`的TF和`odom`显示在模型外，偏离实际底盘链接位置。

## 环境

URDF / Xacro 机器人建模

## 解决办法

1. 打开`Base_plate`零件文件，检查原点基准面是否穿过期望的零件原点；若不合适，用`Reference Feature`里的`Plane`创建期望的参考基准面并保存零件。
2. 打开装配体，检查底部是否为`underdefined`；在零件树中右键顶部固定零件，将其从`fixed`改为`float`。
3. 在`Mates`中展开`Base_plate`，把底盘的原点或参考基准面与装配体空间的原点基准面配合。
4. 如仍未完全定义，还需约束轮子避免旋转，直到SolidWorks显示`fully defined`，再重新导出URDF。

原问题作者：user3725099；采纳答案作者：Chuck。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #8866：Tf frame origin is offset from the actual base_link](https://robotics.stackexchange.com/questions/8866/tf-frame-origin-is-offset-from-the-actual-base-link)