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

    6.4.2章节启动rvzi时,显示[ERROR] [robot_state_publisher-1]: process has died [pid 12124, exit code -6, cmd '/opt/ros/humble/lib/robot_state_publisher/robot_state_publisher --ros-args --params-file /tmp/launch_params_06nznk6j']

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

      问题描述:

      在本小节的最后一步去启动rvzi时,终端报错:

      [ERROR] [robot_state_publisher-1]: process has died [pid 12124, exit code -6, cmd '/opt/ros/humble/lib/robot_state_publisher/robot_state_publisher --ros-args --params-file /tmp/launch_params_06nznk6j'].

      具体细节和上下文:

      1.base.urdf.xacro
      <?xml version="1.0"?>
      <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
      <xacro:macro name="base_xacro" params="length radius">
      <!-- 机器人的身体部分 -->
      <link name="base_link">
      <!--部件的外观描述-->
      <visual>
      <!--沿着自己几何中心的偏移和旋转量-->
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <!--几何形状-->
      <geometry>
      <cylinder radius="${radius}" length="${length}"/>
      </geometry>
      <!--材质颜色-->
      <material name="white">
      <color rgba="1.0 1.0 1.0 0.5"/>
      </material>
      </visual>
      </link>
      </xacro:macro>
      </robot>

      2.laser.urdf.xacro:
      <?xml version="1.0"?>
      <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
      <xacro:macro name="laser_xacro" params="xyz">
      <!--雷达支撑杆-->
      <link name="laser_cylinder_link">
      <!--部件的外观描述-->
      <visual>
      <!--沿着自己几何中心的偏移和旋转量-->
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <!--几何形状-->
      <geometry>
      <cylinder radius="0.01" length="0.10"/>
      </geometry>
      <!--材质颜色-->
      <material name="black">
      <color rgba="0.0 0.0 0.0 1.0"/>
      </material>
      </visual>
      </link>

      <!--雷达-->
      <link name="laser_link">
          <!--部件的外观描述-->
          <visual>
              <!--沿着自己几何中心的偏移和旋转量-->
              <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
              <!--几何形状-->
              <geometry>
                  <cylinder radius="0.02" length="0.02"/>
              </geometry>
              <!--材质颜色-->
              <material name="black">
                  <color rgba="0.0 0.0 0.0 1.0"/>
              </material>
          </visual>
      </link>
      
      <!--机器人的关节:用于组合机器人的部件(即上述的雷达和支撑杆)-->
      <joint name="laser_joint" type="fixed">
          <parent link="laser_cylinder_link"/>
          <child link="laser_link"/>
          <origin xyz="0.0 0.0 0.05" rpy="0.0 0.0 0.0"/>
      </joint>
      
      <joint name="laser_cylinder_joint" type="fixed">
          <parent link="base_link"/>
          <child link="laser_cylinder_link"/>
          <origin xyz="${xyz}" rpy="0.0 0.0 0.0"/>
      </joint>
      

      </xacro:macro>

      </robot>

      3.imu.urdf.xacro:
      <?xml version="1.0"?>
      <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
      <xacro:macro name="imu_xacro" params="xyz">
      <!--机器人的IMU部件,惯性测量传感器-->
      <link name="imu__link">
      <!--部件的外观描述-->
      <visual>
      <!--沿着自己几何中心的偏移和旋转量-->
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <!--几何形状-->
      <geometry>
      <box size="0.02 0.02 0.02"/>
      </geometry>
      <!--材质颜色-->
      <material name="black">
      <color rgba="0.0 0.0 0.0 0.5"/>
      </material>
      </visual>
      </link>

      <!--机器人的关节:用于组合机器人的部件(即上述的机器人的身体和其传感器)-->
      <joint name="imu_joint" type="fixed">
          <parent link="base_link"/>
          <child link="imu_link"/>
          <origin xyz="${xyz}" rpy="0.0 0.0 0.0"/>
      </joint>
      

      </xacro:macro>

      </robot>
      4.camera.urdf.xacro:
      <?xml version="1.0"?>
      <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
      <xacro:macro name="camera_xacro" params="xyz">
      <!--机器人的IMU部件,惯性测量传感器-->
      <link name="camera_link">
      <!--部件的外观描述-->
      <visual>
      <!--沿着自己几何中心的偏移和旋转量-->
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <!--几何形状-->
      <geometry>
      <box size="0.02 0.02 0.02"/>
      </geometry>
      <!--材质颜色-->
      <material name="black">
      <color rgba="0.0 0.0 0.0 0.5"/>
      </material>
      </visual>
      </link>

      <!--机器人的关节:用于组合机器人的部件(即上述的机器人的身体和其传感器)-->
      <joint name="camera_joint" type="fixed">
          <parent link="base_link"/>
          <child link="camera_link"/>
          <origin xyz="${xyz}" rpy="0.0 0.0 0.0"/>
      </joint>
      

      </xacro:macro>

      </robot>
      5.fishbot.urdf.xacro:
      <?xml version="1.0"?>
      <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firstbot">
      <!-- 基础部分 base_link -->
      <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/camera.urdf.xacro"/>
      <xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/laser.urdf.xacro"/>

      <xacro:base_xacro length="0.12" radius="0.10" />
      <xacro:imu_xacro xyz="0.0 0.0 0.02" />
      <xacro:camera_xacro xyz="0.10 0.0 0.075" />
      <xacro:laser_xacro xyz="0.0 0.0 0.10" />

      </robot>

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

        在您遇到的问题中,robot_state_publisher 进程在尝试启动时崩溃,并返回了错误代码 -6。错误代码 -6 通常与 "Aborted" 状态相关,这可能是由于多种原因引起的,包括但不限于内存不足、非法内存访问、或者程序内部的某些错误。

        针对您的具体情况,这里有几个可能的解决步骤和检查点:

        1. 检查 URDF 文件:

          • 确保所有的 URDF 文件(包括 .xacro 文件)都正确无误,特别是链接(link)和关节(joint)的定义。错误的链接或关节定义可能导致 robot_state_publisher 无法正确解析 URDF 并初始化。
          • 检查 fishbot.urdf.xacro 文件中宏的调用参数是否正确传递。例如,xacro:base_xacro 宏的调用是否传递了正确的 length 和 radius 参数。
        2. 检查 ROS 环境:

          • 确保 ROS 环境(在这里是 ROS Humble)已正确安装,并且所有依赖都已满足。
          • 尝试重新编译您的 ROS 包,确保没有编译错误。
        3. 运行参数:

          • 检查启动 robot_state_publisher 时使用的参数文件(/tmp/launch_params_06nznk6j)。这个文件应该包含正确的机器人描述文件路径和其他相关参数。
          • 确保参数文件中引用的 URDF 文件路径正确无误。
        4. 资源限制:

          • 检查系统的资源使用情况,如内存和 CPU。robot_state_publisher 可能因为资源不足而崩溃。
          • 尝试在资源使用较低的时候运行您的 ROS 节点。
        5. 调试和日志:

          • 查看 robot_state_publisher 的详细日志,可能会有更具体的错误信息。
          • 使用 gdb 或其他调试工具来调试 robot_state_publisher,以获取更深入的崩溃原因。
        6. ROS 社区和文档:

          • 搜索 ROS 社区论坛和文档,看看是否有其他人遇到并解决了类似的问题。
        7. 简化问题:

          • 尝试使用一个更简单的 URDF 文件来启动 robot_state_publisher,看看是否能成功运行。这有助于确定问题是否与特定的 URDF 定义有关。
        8. 更新和修复:

          • 确保您的 ROS 系统和所有相关包都已更新到最新版本。
          • 如果可能,尝试在不同的计算机或环境中重现问题,以排除特定环境配置的问题。

        通过上述步骤,您应该能够更接近问题的根源,并找到解决问题的方法。如果问题仍然存在,可能需要更详细的调试信息来进一步分析。


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

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

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