鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    请问在ros中打开gazebo仿真模型报错Spawn service failed. Exiting.怎么解决

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ros noetic gazebo
    2
    4
    1.1k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • C
      cydcyd
      最后由 编辑

      [ INFO] [1729585372.154100344]: Physics dynamic reconfigure ready.
      [INFO] [1729585372.174581, 0.000000]: Calling service /gazebo/spawn_urdf_model
      [INFO] [1729585372.619181, 72.752000]: Spawn status: SpawnModel: Entity pushed to spawn queue, but spawn service timed out waiting for entity to appear in simulation under the name cc
      [ERROR] [1729585372.620888, 72.752000]: Spawn service failed. Exiting.
      [spawn_model-5] process has died [pid 20517, exit code 1, cmd /opt/ros/noetic/lib/gazebo_ros/spawn_model -urdf -model cc -param robot_description __name:=spawn_model __log:=/home/ros/.ros/log/d286cd40-904e-11ef-b6fe-dd7667b791a3/spawn_model-5.log].
      log file: /home/ros/.ros/log/d286cd40-904e-11ef-b6fe-dd7667b791a3/spawn_model-5*.log
      [ WARN] [1729585374.350471889, 72.752000000]: GazeboRosSkidSteerDrive Plugin (ns = //) missing <wheelSeparation>, defaults to value from robot_description: 0.400000
      [ WARN] [1729585374.350715411, 72.752000000]: GazeboRosSkidSteerDrive Plugin (ns = //) missing <commandTopic>, defaults to "cmd_vel"
      [ WARN] [1729585374.350994417, 72.752000000]: GazeboRosSkidSteerDrive Plugin (ns = //) missing <covariance_x>, defaults to 0.000100
      [ WARN] [1729585374.351200327, 72.752000000]: GazeboRosSkidSteerDrive Plugin (ns = //) missing <covariance_y>, defaults to 0.000100
      [ WARN] [1729585374.351398085, 72.752000000]: GazeboRosSkidSteerDrive Plugin (ns = //) missing <covariance_yaw>, defaults to 0.010000
      [ INFO] [1729585374.351697821, 72.752000000]: Starting GazeboRosSkidSteerDrive Plugin (ns = //)
      context mismatch in svga_surface_destroy
      context mismatch in svga_surface_destroy

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        您遇到的错误 "Spawn service failed. Exiting." 通常指示在 Gazebo 中尝试生成(spawn)一个模型时出现了问题。这个问题可能由多种原因引起,包括但不限于 URDF 文件的问题、Gazebo 配置文件的问题、网络延迟或资源竞争等。以下是一些解决此问题的步骤:

        1. 检查 URDF 文件:

          • 确保 URDF 文件(或您使用的任何模型文件)是有效的,并且包含所有必要的组件(如链接、关节等)。
          • 使用工具如 check_urdf 来验证 URDF 文件的正确性。
        2. 检查 Gazebo 的配置:

          • 确保 Gazebo 配置文件(如 world 文件)中的设置是正确的,特别是与模型生成相关的部分。
          • 检查是否有任何模型或对象已经使用了您尝试给新模型指定的名称(在您的例子中为 cc)。
        3. 资源竞争和延迟:

          • 如果您的系统资源紧张(如 CPU 或内存使用率高),可能会导致 Gazebo 或 ROS 节点响应缓慢。
          • 尝试减少 Gazebo 中其他活动的复杂性,或者关闭一些不必要的后台程序。
        4. 网络问题:

          • 如果您在使用分布式系统(如多个 ROS 节点或跨机器通信),请检查网络连接。
          • 确保 ROS 的 master_uri 和 host 设置正确无误。
        5. 查看日志文件:

          • 仔细查看 /home/ros/.ros/log/d286cd40-904e-11ef-b6fe-dd7667b791a3/spawn_model-5*.log 中的错误和警告信息。
          • 这些日志可能会提供更多关于为什么模型无法生成的线索。
        6. 重新启动 Gazebo 和 ROS:

          • 有时简单的重启可以解决因状态不一致或资源锁定导致的问题。
        7. 更新和安装:

          • 确保您的 ROS 和 Gazebo 环境是最新的,并且所有必要的依赖都已正确安装。
        8. 简化测试:

          • 尝试用一个非常简单的 URDF 模型(如只有一个基本链接和关节的模型)来测试 spawn_model 服务。
          • 如果这个简单的模型可以成功生成,那么问题可能出在您的复杂模型上。

        如果以上步骤都不能解决问题,您可能需要更详细地检查您的 ROS 和 Gazebo 配置,或者考虑在 ROS 社区或论坛中寻求帮助。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        C 1 条回复 最后回复 回复 引用 0
        • C
          cydcyd @小伊
          最后由 编辑

          @小伊 我这个问题是在加载地图的情况下才有,只加载机器人没有问题。可以看一下我的其他文件有问题吗
          ##launch文件
          <launch>
          <param name="robot_description" command="$(find xacro)/xacro $(find xc)/urdf/xacro/zh_xc.urdf.xacro" />
          <include file="$(find gazebo_ros)/launch/empty_world.launch" >
          <arg name="world_name" value="$(find xc)/worlds/npg_world.world" />
          </include>
          <node
          name="tf_footprint_base"
          pkg="tf"
          type="static_transform_publisher"
          args="0 0 0 0 0 0 base_link base_footprint 10000" />
          <node
          name="spawn_model"
          pkg="gazebo_ros"
          type="spawn_model"
          args="-urdf -model cc -param robot_description"
          output="screen" />
          </launch>
          ###地图.world文件
          <sdf version='1.7'>
          <world name='default'>
          <light name='sun' type='directional'>
          <cast_shadows>1</cast_shadows>
          <pose>0 0 10 0 -0 0</pose>
          <diffuse>0.8 0.8 0.8 1</diffuse>
          <specular>0.2 0.2 0.2 1</specular>
          <attenuation>
          <range>1000</range>
          <constant>0.9</constant>
          <linear>0.01</linear>
          <quadratic>0.001</quadratic>
          </attenuation>
          <direction>-0.5 0.1 -0.9</direction>
          <spot>
          <inner_angle>0</inner_angle>
          <outer_angle>0</outer_angle>
          <falloff>0</falloff>
          </spot>
          </light>
          <model name='ground_plane'>
          <static>1</static>
          <link name='link'>
          <collision name='collision'>
          <geometry>
          <plane>
          <normal>0 0 1</normal>
          <size>100 100</size>
          </plane>
          </geometry>
          <surface>
          <contact>
          <collide_bitmask>65535</collide_bitmask>
          <ode/>
          </contact>
          <friction>
          <ode>
          <mu>100</mu>
          <mu2>50</mu2>
          </ode>
          <torsional>
          <ode/>
          </torsional>
          </friction>
          <bounce/>
          </surface>
          <max_contacts>10</max_contacts>
          </collision>
          <visual name='visual'>
          <cast_shadows>0</cast_shadows>
          <geometry>
          <plane>
          <normal>0 0 1</normal>
          <size>100 100</size>
          </plane>
          </geometry>
          <material>
          <script>
          <uri>file://media/materials/scripts/gazebo.material</uri>
          <name>Gazebo/Grey</name>
          </script>
          </material>
          </visual>
          <self_collide>0</self_collide>
          <enable_wind>0</enable_wind>
          <kinematic>0</kinematic>
          </link>
          </model>
          <gravity>0 0 -9.8</gravity>
          <magnetic_field>6e-06 2.3e-05 -4.2e-05</magnetic_field>
          <atmosphere type='adiabatic'/>
          <physics type='ode'>
          <max_step_size>0.001</max_step_size>
          <real_time_factor>1</real_time_factor>
          <real_time_update_rate>1000</real_time_update_rate>
          </physics>
          <scene>
          <ambient>0.4 0.4 0.4 1</ambient>
          <background>0.7 0.7 0.7 1</background>
          <shadows>1</shadows>
          </scene>
          <wind/>
          <spherical_coordinates>
          <surface_model>EARTH_WGS84</surface_model>
          <latitude_deg>0</latitude_deg>
          <longitude_deg>0</longitude_deg>
          <elevation>0</elevation>
          <heading_deg>0</heading_deg>
          </spherical_coordinates>
          <model name='pg_world'>
          <link name='link_2'>
          <inertial>
          <mass>1</mass>
          <inertia>
          <ixx>0.166667</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.166667</iyy>
          <iyz>0</iyz>
          <izz>0.166667</izz>
          </inertia>
          <pose>0 0 0 0 -0 0</pose>
          </inertial>
          <pose>-0 0 0 0 -0 0</pose>
          <visual name='visual'>
          <pose>0 0 0 0 -0 0</pose>
          <geometry>
          <mesh>
          <uri>/home/ros/catkin_ws/src/xc/worlds/pg_world.dae</uri>
          <scale>1 1 1</scale>
          </mesh>
          </geometry>
          <material>
          <lighting>1</lighting>
          <script>
          <uri>file://media/materials/scripts/gazebo.material</uri>
          <name>Gazebo/Grey</name>
          </script>
          <shader type='pixel'/>
          </material>
          <transparency>0</transparency>
          <cast_shadows>1</cast_shadows>
          </visual>
          <collision name='collision'>
          <laser_retro>0</laser_retro>
          <max_contacts>10</max_contacts>
          <pose>0 0 0 0 -0 0</pose>
          <geometry>
          <mesh>
          <uri>/home/ros/catkin_ws/src/xc/worlds/pg_world.dae</uri>
          <scale>1 1 1</scale>
          </mesh>
          </geometry>
          <surface>
          <friction>
          <ode>
          <mu>1</mu>
          <mu2>1</mu2>
          <fdir1>0 0 0</fdir1>
          <slip1>0</slip1>
          <slip2>0</slip2>
          </ode>
          <torsional>
          <coefficient>1</coefficient>
          <patch_radius>0</patch_radius>
          <surface_radius>0</surface_radius>
          <use_patch_radius>1</use_patch_radius>
          <ode>
          <slip>0</slip>
          </ode>
          </torsional>
          </friction>
          <bounce>
          <restitution_coefficient>0</restitution_coefficient>
          <threshold>1e+06</threshold>
          </bounce>
          <contact>
          <collide_without_contact>0</collide_without_contact>
          <collide_without_contact_bitmask>1</collide_without_contact_bitmask>
          <collide_bitmask>1</collide_bitmask>
          <ode>
          <soft_cfm>0</soft_cfm>
          <soft_erp>0.2</soft_erp>
          <kp>1e+13</kp>
          <kd>1</kd>
          <max_vel>0.01</max_vel>
          <min_depth>0</min_depth>
          </ode>
          <bullet>
          <split_impulse>1</split_impulse>
          <split_impulse_penetration_threshold>-0.01</split_impulse_penetration_threshold>
          <soft_cfm>0</soft_cfm>
          <soft_erp>0.2</soft_erp>
          <kp>1e+13</kp>
          <kd>1</kd>
          </bullet>
          </contact>
          </surface>
          </collision>
          <self_collide>0</self_collide>
          <enable_wind>0</enable_wind>
          <kinematic>0</kinematic>
          </link>
          <static>0</static>
          <allow_auto_disable>1</allow_auto_disable>
          <pose>-0.685726 -0.693551 0 0 -0 0</pose>
          </model>
          <state world_name='default'>
          <sim_time>72 751000000</sim_time>
          <real_time>74 102707814</real_time>
          <wall_time>1728617350 263950461</wall_time>
          <iterations>72751</iterations>
          <model name='ground_plane'>
          <pose>0 0 0 0 -0 0</pose>
          <scale>1 1 1</scale>
          <link name='link'>
          <pose>0 0 0 0 -0 0</pose>
          <velocity>0 0 0 0 -0 0</velocity>
          <acceleration>0 0 0 0 -0 0</acceleration>
          <wrench>0 0 0 0 -0 0</wrench>
          </link>
          </model>
          <model name='pg_world'>
          <pose>-0.685726 -0.693551 -0 0 -0 0</pose>
          <scale>1 1 1</scale>
          <link name='link_2'>
          <pose>-0.685726 -0.693551 -0 0 -0 0</pose>
          <velocity>0 0 0 0 -0 0</velocity>
          <acceleration>0 0 0 0 -0 0</acceleration>
          <wrench>0 0 0 0 -0 0</wrench>
          </link>
          </model>
          <light name='sun'>
          <pose>0 0 10 0 -0 0</pose>
          </light>
          </state>
          <gui fullscreen='0'>
          <camera name='user_camera'>
          <pose>3.45499 -0.21872 5.77696 0 0.899643 2.98419</pose>
          <view_controller>orbit</view_controller>
          <projection_type>perspective</projection_type>
          </camera>
          </gui>
          </world>
          </sdf>

          1 条回复 最后回复 回复 引用 0
          • 小伊小
            机器人小伊
            最后由 编辑

            从你提供的 launch 文件和 .world 文件来看,主要的问题可能并不直接体现在这些文件上,因为从格式和结构上看,它们基本上是正确的。但是,有几个潜在的问题点和建议,我们可以逐一排查:

            1. launch 文件

            • 参数设置:你使用 $(find xacro)/xacro $(find xc)/urdf/xacro/zh_xc.urdf.xacro 来设置 robot_description 参数。确保 zh_xc.urdf.xacro 文件的路径正确,并且 xacro 能够在该路径下找到和解析它。
            • 模型加载:使用 spawn_model 节点来加载模型时,你指定了 -urdf 和 -model cc。这里 cc 是你希望模型在仿真环境中使用的名称。确保这个名称不会与环境中其他模型或组件冲突。
            • TF 变换:你使用 tf_footprint_base 节点来发布 base_link 到 base_footprint 的静态变换。确保这两个帧在你的 URDF 文件中已经定义,并且它们的名称与这里使用的相匹配。

            2. .world 文件

            • 模型文件路径:在 <mesh> 标签中,你使用了绝对路径 /home/ros/catkin_ws/src/xc/worlds/pg_world.dae。这通常不是最佳实践,因为它会使你的 .world 文件依赖于特定的工作空间位置。考虑使用相对路径或将其设置为参数。
            • 碰撞和视觉几何:你使用了相同的 .dae 文件同时作为碰撞和视觉的几何体。这通常没问题,但请确保该文件适合用于碰撞检测(即没有内部空洞或非常细的部件)。
            • 物理设置:你设置了物理引擎为 ode,这通常是合适的。但请确保所有相关的物理参数(如摩擦、弹力等)都适合你的应用场景。

            3. 调试建议

            • 检查 ROS 控制台输出:运行 roslaunch 命令时,注意 ROS 控制台中的输出信息。可能会有关于文件找不到、参数错误或其他问题的警告或错误。
            • 检查 Gazebo 日志:在 Gazebo 界面中,可以通过 View -> Server Console 查看 Gazebo 的日志输出,这可能会提供更多关于为什么地图加载失败的信息。
            • 验证 URDF:使用 check_urdf 命令来验证你的 URDF 文件是否有错误。
            • 逐步测试:尝试只加载机器人模型而不加载地图,看看是否能成功。然后逐步添加其他组件,以确定问题所在。

            4. 其他可能的问题

            • 权限问题:确保 ROS 用户有权访问 .dae 文件和其他相关资源。
            • 环境配置:检查你的 ROS 和 Gazebo 环境是否已正确配置和安装。

            希望这些建议能帮助你解决问题!如果问题依旧存在,可能需要更详细的错误信息来进一步诊断。


            以上为生成回答,仅供参考~

            我是小伊,已接入ChatGpt,所有回复,仅供参考~

            1 条回复 最后回复 回复 引用 0
            • 第一个帖子
              最后一个帖子
            皖ICP备16016415号-7
            Powered by NodeBB | 鱼香ROS