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

    gazebo导入自己的机械臂,未作操作,机械臂缓慢移动

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

      最近打算做一个机械臂的末端识别,用的solidworks to urdf把我在solideworks的模型转换成urdf格式,并成功导入到了gazebo中,显示、关节运动都没问题。但前阵子发现机械臂会缓慢运动,影响到了我末端识别的工作。

      环境是跟着小鱼的书搭的,ros2 humble和gazebo

      试过改动link的质量,但是机械臂还是在移动

      大概像这样,机械臂初始位置在(0,0,0)
      e45e77f8-282b-4496-adaa-29660fa1c001-81e13e589ccf3d8dfe1d82d0a0a36bb.jpg
      但是会缓慢移动,这是我未作任何操作,过一会的机械臂位置,可以看到已经明显偏离原点
      0a303485-8c0c-4e77-8c69-745bbc203e72-fb2f408e8d849ead7b9824f8b7525df.jpg ```

      我的模型代码如下:

      <?xml version="1.0" ?>
      <robot name="gangway" xmlns:xacro="http://www.ros.org/wiki/xacro">
      
       <link name="base_footprint"/>
      
        <joint name="base_footprint_joint" type="fixed">
            <parent link="base_footprint"/>
            <child link="base_link" />
        </joint>
        <link
          name="base_link">
          <inertial>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <mass
              value="40.471" />
            <inertia
              ixx="3.6204"
              ixy="1.2643E-05"
              ixz="-3.4745E-17"
              iyy="3.6256"
              iyz="1.4051E-16"
              izz="7.0264" />
          </inertial>
          <visual>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/base_link.STL" />
            </geometry>
            <material
              name="base">
              <color
                rgba="0.79216 0.81961 0.93333 1" />
            </material>
          </visual>
          <collision>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/base_link.STL" />
            </geometry>
          </collision>
        </link>
        <link
          name="frame_link">
          <inertial>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <mass
              value="11.463" />
            <inertia
              ixx="0.07659"
              ixy="-3.5094E-12"
              ixz="0.00047682"
              iyy="0.03119"
              iyz="-1.916E-06"
              izz="0.087669" />
          </inertial>
          <visual>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/frame_link.STL" />
            </geometry>
            <material
              name="frame">
              <color
                rgba="0.79216 0.81961 0.93333 1" />
            </material>
          </visual>
          <collision>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/frame_link.STL" />
            </geometry>
          </collision>
        </link>
        <joint
          name="slew_joint"
          type="revolute">
          <origin
            xyz="0 0 0"
            rpy="0 0 0" />
          <parent
            link="base_link" />
          <child
            link="frame_link" />
          <axis
            xyz="0 0 1" />
          <limit
            lower="-2.0944"
            upper="2.0944"
            effort="100"
            velocity="1.0" />
        </joint>
        <link
          name="mb_link">
          <inertial>
            <origin
              xyz="0.80877 0.1638 0"
              rpy="0 0 0" />
            <mass
              value="19.952" />
            <inertia
              ixx="0.22716"
              ixy="-1.4872E-11"
              ixz="-1.01E-11"
              iyy="3.2823"
              iyz="-3.3077E-12"
              izz="3.0969" />
          </inertial>
          <visual>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/mb_link.STL" />
            </geometry>
            <material
              name="mb">
              <color
                rgba="0.79216 0.81961 0.93333 1" />
            </material>
          </visual>
          <collision>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/mb_link.STL" />
            </geometry>
          </collision>
        </link>
        <joint
          name="luff_joint"
          type="revolute">
          <origin
            xyz="0 0 1.045"
            rpy="1.5708 0 0" />
          <parent
            link="frame_link" />
          <child
            link="mb_link" />
          <axis
            xyz="0 0 1" />
          <limit
            lower="-0.5236"
            upper="0.5236"
            effort="100"
            velocity="1.0" />
        </joint>
        <link
          name="tb_link">
          <inertial>
            <origin
              xyz="-0.91109 -1.1102E-16 0.035776"
              rpy="0 0 0" />
            <mass
              value="8.7091" />
            <inertia
              ixx="0.020519"
              ixy="5.4535E-16"
              ixz="5.4212E-17"
              iyy="1.9514"
              iyz="3.3569E-18"
              izz="1.9652" />
          </inertial>
          <visual>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/tb_link.STL" />
            </geometry>
            <material
              name="tb">
              <color
                rgba="0.79216 0.81961 0.93333 1" />
            </material>
          </visual>
          <collision>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/tb_link.STL" />
            </geometry>
          </collision>
        </link>
        <joint
          name="telescopic_joint"
          type="prismatic">
          <origin
            xyz="1.772 0.204 0"
            rpy="-1.5708 0 0" />
          <parent
            link="mb_link" />
          <child
            link="tb_link" />
          <axis
            xyz="1 0 0" />
          <limit
            lower="0"
            upper="1.2"
            effort="100"
            velocity="1.0" />
        </joint>
        <link
          name="camera_link">
          <inertial>
            <origin
              xyz="-0.04 0 0"
              rpy="0 0 0" />
            <mass
              value="0.512" />
            <inertia
              ixx="0.00054613"
              ixy="1.4989E-20"
              ixz="-1.7765E-20"
              iyy="0.00054613"
              iyz="-6.5913E-21"
              izz="0.00054613" />
          </inertial>
          <visual>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/camera_link.STL" />
            </geometry>
            <material
              name="camera">
              <color
                rgba="0.79216 0.81961 0.93333 1" />
            </material>
          </visual>
          <collision>
            <origin
              xyz="0 0 0"
              rpy="0 0 0" />
            <geometry>
              <mesh
                filename="package://gangway_urdf/meshes/camera_link.STL" />
            </geometry>
          </collision>
        </link>
        <joint
          name="camera_joint"
          type="fixed">
          <origin
            xyz="0.08 0 0"
            rpy="0 0 0" />
          <parent
            link="tb_link" />
          <child
            link="camera_link" />
          <axis
            xyz="0 0 0" />
        </joint>
      
      </robot>
      
      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        机械臂在Gazebo中缓慢移动的问题可能由多种因素引起,包括但不限于物理仿真参数设置不当、浮点数精度问题、或者URDF文件中配置错误等。以下是一些排查和解决这个问题的步骤:

        1. 检查关节摩擦和阻尼:

          • 在你的URDF文件中,每个关节(joint)的<dynamics>标签可以设置摩擦(friction)和阻尼(damping)系数。这些参数会影响关节在没有外部控制力时的行为。虽然你的URDF中没有明确显示这些参数,但你可以在<joint>标签内添加它们来尝试解决问题。例如:
            <dynamics damping="0.01 0.01 0.01" friction="0.01"/>
            
          • 这里damping的三个值分别对应线性和角阻尼在X、Y、Z轴上的分量,friction则对应摩擦系数。
        2. 验证物理属性:

          • 确保所有<inertial>标签中的质量和惯性矩阵是正确的。错误的惯性矩阵可能导致不稳定的仿真。
          • 检查<collision>和<visual>标签中的几何体是否正确对齐和缩放。
        3. 检查外部力和干扰:

          • 确认是否有任何外部力(如重力以外的力)作用于机械臂。这可以通过检查Gazebo中的物理世界设置来完成。
          • 如果使用了物理引擎的默认重力设置,确保它与你的机械臂模型兼容。
        4. 浮点数精度问题:

          • 数值计算中的浮点数精度问题可能导致微小但可见的漂移。虽然这通常很难完全消除,但可以通过调整仿真步长或增加数值稳定性来改善。
        5. 仿真步长和物理引擎设置:

          • 在Gazebo中,你可以调整仿真步长(real_time_factor和sim_time_step)。尝试调整这些设置看是否能改善机械臂的稳定性。
          • 检查Gazebo的物理引擎设置,如ODE或Bullet,看看是否有针对特定行为的调整选项。
        6. 使用固定关节测试:

          • 暂时将所有活动关节设置为固定(fixed)类型,看看机械臂是否仍然移动。这可以帮助确定问题是否源于关节控制或物理仿真。
        7. 查看日志和调试信息:

          • 检查Gazebo和ROS的日志文件,看是否有关于物理仿真错误的警告或错误信息。
        8. 更新和兼容性检查:

          • 确保你使用的Gazebo和ROS2版本兼容,并且所有相关软件包都是最新的。有时候,软件更新可以解决已知的bug或问题。

        通过上述步骤,你应该能够定位问题的原因,并找到相应的解决方案。如果问题仍然存在,可能需要更深入地分析机械臂的模型和Gazebo的物理仿真设置。


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

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

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