# ROS Gazebo 多机器人 MAVProxy 连接异常

> 原文链接：https://robotics.hellobike.com/pitfalls/2017-06-05-robotics-se-10898
> 频道：pitfalls | 更新日期：2017-06-05 | 标签：auto, stackexchange, quadcopter, ros, software, simulation
> 核心摘要：在同一仿真中启动两台机器人时需为各机器人管理独立命名空间和 tf_prefix，共享 robot_description。

# ROS Gazebo 多机器人 MAVProxy 连接异常

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Multiple robots in ROS Gazebo SITL with separate MAVlink/MAVproxy codes](https://robotics.stackexchange.com/questions/10898/multiple-robots-in-ros-gazebo-sitl-with-separate-mavlink-mavproxy-codes)（Robotics Stack Exchange #10898）

**状态**：已解决

## 问题

同时仿真一个 ErleCopter 和一个 ErleRover 时，启动第二个机器人会终止第一个 `MAVProxy` 实例，或第二个机器人无法连接到第二个 `MAVProxy` 实例。

## 环境

Lenovo-y50-70，Ubuntu 14.04，ROS Indigo，Gazebo，MAVProxy，MAVROS；机器人为 ErleCopter 和 ErleRover。

## 解决办法

1. 不要在同一命名空间里重复使用同名 `model` 参数；为每个机器人使用独立命名空间。
2. 为单机器人启动文件设置 `robot_name` 和 `init_pose` 参数，用 `spawn_model` 按名称和初始位姿生成机器人。
3. 在多机器人主启动文件中全局设置共享的 `/robot_description`。
4. 对每个机器人用 `<group ns="robot1">` 这类分组，并分别设置 `tf_prefix`。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #10898：Multiple robots in ROS Gazebo SITL with separate MAVlink/MAVproxy codes](https://robotics.stackexchange.com/questions/10898/multiple-robots-in-ros-gazebo-sitl-with-separate-mavlink-mavproxy-codes)