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

    gazebo启动一直显示有实体,日志里很多功能没加载出来

    已定时 已固定 已锁定 已移动
    ROS2机器人开发:从入门到实践
    gazebo 仿真 gazebo
    2
    2
    142
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • R
      rcy1111
      最后由 编辑

      我的gazebo启动时一直说已经有实体,但是我都已经关闭了,
      rcy@rcy-virtual-machine:~/chapt6/chapt6_ws$ ros2 launch fishbot_description gazebo_sim.launch.py
      [INFO] [launch]: All log files can be found below /home/rcy/.ros/log/2025-01-24-19-40-11-766850-rcy-virtual-machine-11533
      [INFO] [launch]: Default logging verbosity is set to INFO
      [INFO] [robot_state_publisher-1]: process started with pid [11552]
      [INFO] [gzserver-2]: process started with pid [11554]
      [INFO] [gzclient-3]: process started with pid [11556]
      [INFO] [spawn_entity.py-4]: process started with pid [11558]
      [robot_state_publisher-1] [INFO] [1737718813.932818485] [robot_state_publisher]: got segment back_caster_link
      [robot_state_publisher-1] [INFO] [1737718813.933088014] [robot_state_publisher]: got segment base_footprint
      [robot_state_publisher-1] [INFO] [1737718813.933116555] [robot_state_publisher]: got segment base_link
      [robot_state_publisher-1] [INFO] [1737718813.933135822] [robot_state_publisher]: got segment camera_link
      [robot_state_publisher-1] [INFO] [1737718813.933153335] [robot_state_publisher]: got segment front_caster_link
      [robot_state_publisher-1] [INFO] [1737718813.933170837] [robot_state_publisher]: got segment imu_link
      [robot_state_publisher-1] [INFO] [1737718813.933187460] [robot_state_publisher]: got segment laser_cylinder_link
      [robot_state_publisher-1] [INFO] [1737718813.933204555] [robot_state_publisher]: got segment laser_link
      [robot_state_publisher-1] [INFO] [1737718813.933222793] [robot_state_publisher]: got segment left_wheel_link
      [robot_state_publisher-1] [INFO] [1737718813.933239346] [robot_state_publisher]: got segment right_wheel_link
      [gzclient-3] Gazebo multi-robot simulator, version 11.10.2
      [gzclient-3] Copyright (C) 2012 Open Source Robotics Foundation.
      [gzclient-3] Released under the Apache 2 License.
      [gzclient-3] http://gazebosim.org
      [gzclient-3]
      [gzserver-2] Gazebo multi-robot simulator, version 11.10.2
      [gzserver-2] Copyright (C) 2012 Open Source Robotics Foundation.
      [gzserver-2] Released under the Apache 2 License.
      [gzserver-2] http://gazebosim.org
      [gzserver-2]
      [spawn_entity.py-4] [INFO] [1737718815.307000169] [spawn_entity]: Spawn Entity started
      [spawn_entity.py-4] [INFO] [1737718815.310744357] [spawn_entity]: Loading entity published on topic /robot_description
      [spawn_entity.py-4] /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/qos.py:307: UserWarning: DurabilityPolicy.RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL is deprecated. Use DurabilityPolicy.TRANSIENT_LOCAL instead.
      [spawn_entity.py-4] warnings.warn(
      [spawn_entity.py-4] [INFO] [1737718815.318692517] [spawn_entity]: Waiting for entity xml on /robot_description
      [spawn_entity.py-4] [INFO] [1737718815.337565018] [spawn_entity]: Waiting for service /spawn_entity, timeout = 30
      [spawn_entity.py-4] [INFO] [1737718815.338827251] [spawn_entity]: Waiting for service /spawn_entity
      [spawn_entity.py-4] [INFO] [1737718817.614090479] [spawn_entity]: Calling service /spawn_entity
      [spawn_entity.py-4] [INFO] [1737718817.799042258] [spawn_entity]: Spawn status: Entity [fishbot] already exists.
      [spawn_entity.py-4] [ERROR] [1737718817.801088800] [spawn_entity]: Spawn service failed. Exiting.
      [ERROR] [spawn_entity.py-4]: process has died [pid 11558, exit code 1, cmd '/opt/ros/humble/lib/gazebo_ros/spawn_entity.py -topic /robot_description -entity fishbot --ros-args'].
      [gzclient-3] [Msg] Waiting for master.
      [gzclient-3] [Msg] Connected to gazebo master @ http://127.0.0.1:11345这是我的launch运行的日志,我有很多功能都没加载出来,
      你可以看下我的fishbot.urdf.xacro文件
      <?xml version="1.0"?>
      <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="fishbot">
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/base.urdf.xacro" />
      <!-- 传感器组件 -->
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/imu.urdf.xacro" />
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/laser.urdf.xacro" />
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/camera.urdf.xacro" />
      <!-- 执行器组件 -->
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/actuator/wheel.urdf.xacro" />
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/actuator/caster.urdf.xacro" />

      <xacro:base_xacro length="0.12" radius="0.1" />
      <!-- 传感器 -->
      <xacro:imu_xacro xyz="0 0 0.02" />
      <xacro:laser_xacro xyz="0 0 0.10" />
      <xacro:camera_xacro xyz="0.10 0 0.075" />
      <!-- 执行器主动轮+从动轮 -->
      <xacro:wheel_xacro wheel_name="left" xyz="0 0.10 -0.06" />
      <xacro:wheel_xacro wheel_name="right" xyz="0 -0.10 -0.06" />
      <xacro:caster_xacro caster_name="front" xyz="0.08 0.0 -0.076" />
      <xacro:caster_xacro caster_name="back" xyz="-0.08 0.0 -0.076" />
      <!-- Gazebo 插件 -->
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/plugins/gazebo_control_plugin.xacro" />
      <!-- <xacro:gazebo_control_plugin /> -->
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/fishbot.ros2_control.xacro" />
      <xacro:fishbot_ros2_control />
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/plugins/gazebo_sensor_plugin.xacro" />
      <xacro:gazebo_sensor_plugin />
      

      </robot>
      还有我的这些启动日志显示很多我fishbot.urdf.xacro里面的很多功能都没加载出来<?xml version="1.0"?>
      <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="fishbot">
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/base.urdf.xacro" />
      <!-- 传感器组件 -->
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/imu.urdf.xacro" />
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/laser.urdf.xacro" />
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/camera.urdf.xacro" />
      <!-- 执行器组件 -->
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/actuator/wheel.urdf.xacro" />
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/actuator/caster.urdf.xacro" />

      <xacro:base_xacro length="0.12" radius="0.1" />
      <!-- 传感器 -->
      <xacro:imu_xacro xyz="0 0 0.02" />
      <xacro:laser_xacro xyz="0 0 0.10" />
      <xacro:camera_xacro xyz="0.10 0 0.075" />
      <!-- 执行器主动轮+从动轮 -->
      <xacro:wheel_xacro wheel_name="left" xyz="0 0.10 -0.06" />
      <xacro:wheel_xacro wheel_name="right" xyz="0 -0.10 -0.06" />
      <xacro:caster_xacro caster_name="front" xyz="0.08 0.0 -0.076" />
      <xacro:caster_xacro caster_name="back" xyz="-0.08 0.0 -0.076" />
      <!-- Gazebo 插件 -->
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/plugins/gazebo_control_plugin.xacro" />
      <!-- <xacro:gazebo_control_plugin /> -->
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/fishbot.ros2_control.xacro" />
      <xacro:fishbot_ros2_control />
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/plugins/gazebo_sensor_plugin.xacro" />
      <xacro:gazebo_sensor_plugin />
      

      </robot>

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

        从您提供的日志和URDF文件来看,有几个关键点需要注意来解决您遇到的问题:

        1. 实体已存在错误:
          日志中显示 "Spawn status: Entity [fishbot] already exists." 这意味着当您尝试启动仿真时,Gazebo中已有一个名为 fishbot 的实体存在。这通常发生在之前启动的Gazebo实例没有正确关闭,或者某个进程仍在后台运行。

          解决方案:

          • 确保在重新启动仿真前关闭所有Gazebo相关的进程。您可以使用命令如 pkill gzserver 和 pkill gzclient 来强制关闭这些进程。
          • 检查是否有任何残留的ROS节点或话题可能仍在发布 /robot_description。您可以使用 ros2 node list 和 ros2 topic list 来查看当前活动的节点和话题。
        2. URDF文件加载:
          从您的URDF文件来看,您包含了多个组件和插件。如果Gazebo正确加载了URDF,它应该能够识别并模拟这些组件。但是,由于出现了实体已存在的错误,可能URDF文件根本没有被完整加载。

          解决方案:

          • 确保您的URDF文件路径和包含的文件路径都是正确的。
          • 使用 xacro 工具检查URDF文件是否有语法错误。您可以在命令行中运行 xacro fishbot.urdf.xacro 来查看解析后的URDF,确保它看起来正确无误。
        3. 插件和功能未加载:
          如果URDF文件正确加载,但某些功能(如传感器或控制插件)未显示,可能是因为相关的Gazebo插件没有正确配置或加载。

          解决方案:

          • 检查您的Gazebo插件是否正确安装,并且它们的路径在环境变量中正确设置。
          • 查看Gazebo的日志文件(通常位于 ~/.gazebo/logs/),可能会有更详细的错误信息关于为什么插件没有加载。
        4. 重新启动和清理:
          在解决了上述问题后,尝试完全重新启动您的ROS2和Gazebo环境,以确保所有设置都是最新的,并且没有残留的状态影响新的仿真。

        5. 检查ROS2参数和服务:
          确保 /spawn_entity 服务可用,并且没有其他节点正在尝试同时使用该服务。您可以使用 ros2 service list 查看当前可用的服务。

        通过上述步骤,您应该能够诊断并解决问题。如果问题仍然存在,可能需要更详细地检查您的ROS2包和Gazebo配置。


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

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

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