# Gazebo网球反弹不一致或陷入地面，调整world物理参数解决

> 原文链接：https://robotics.hellobike.com/pitfalls/2024-08-13-robotics-se-111859
> 频道：pitfalls | 更新日期：2024-08-13 | 标签：auto, stackexchange, urdf
> 核心摘要：Gazebo中网球同高度释放反弹次数随机甚至陷地，通过减小max_step_size并增大real_time_update_rate解决。

# Gazebo网球反弹不一致或陷入地面，调整world物理参数解决

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[inconsistent bounce behaviour of ball in gazebo](https://robotics.stackexchange.com/questions/111859/inconsistent-bounce-behaviour-of-ball-in-gazebo)（Robotics Stack Exchange #111859）

**状态**：已解决

## 问题

在Gazebo仿真网球时，从相同高度多次释放小球，反弹次数不一致（4次、2次或直接陷入地面无反弹），导致无法准确预测受力后的运动轨迹。此前尝试修改求解器迭代次数无效，URDF中已设置kp=1e8、kd=1及正确球体惯量。

## 环境

Gazebo仿真环境，使用xacro定义的网球模型（半径0.05m，质量0.001kg），通过.world文件配置物理引擎参数。

## 解决办法

1. 打开仿真使用的 `.world` 文件，定位 `<physics>` 标签下的物理引擎参数。
2. 将 `<max_step_size>` 从默认值（如 `0.001`）减小至 `0.0001`，提高碰撞检测与积分精度。
3. 将 `<real_time_update_rate>` 从默认值（如 `1000`）增加至 `10000`，确保高频物理更新匹配小步长。
4. 保持 `<real_time_factor>` 为 `1` 以维持实时仿真比例。
5. 验证URDF中 `<inertial>` 标签的惯量矩阵计算正确，避免因质量分布错误引发数值不稳定。
6. 若仍不稳定，可尝试组合调整求解器迭代次数或其他 `<physics>` 子参数，该问题无通用解法需针对性调优。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #111859：inconsistent bounce behaviour of ball in gazebo](https://robotics.stackexchange.com/questions/111859/inconsistent-bounce-behaviour-of-ball-in-gazebo)