机械臂urdf模型修改及功能包配置

目录

一、前清提要

二、操作过程

1、转夹爪stl为urdf模型,得到夹爪包命名为GripperURDF

2、将夹爪包移到工作空间下,查看其是否完整,符合要求

3、将夹爪urdf包和机械臂urdf包合并得到新的含爪机械臂的urdf模型

4、moveit setup assistance修改原有配置包gluon_moveit_config

 修改.setup_assistant 的内容

在终端运行moveit_setup_assistant 

 选择edit existing moveit configuration package,选择原先机械臂的配置包gluon_moveit_config,再load files则可看到如下图

self-collisions中,需要点击generate重新生成碰撞矩阵,否则在后续运动规划中很容易有路径但规划不出来

 planning groups里,可以添加一个夹爪的关节组Gripper,原有的组可以不变。

 其他列都不动就可,最后生成新的配置文件时,把列出来文件的不管黑的橙的红的都勾上,点击generate生成即可完成修改。

5、在生成的gluon_moveit_config中找到demo.launch 加入操控真实机械臂运动的节点


原标题:将夹爪stl模型加入机械臂urdf模型中,并在Moveit Setup Assistance中修改更新原有的配置文件

一、前清提要

新购入了夹爪,要将夹爪模型加入原来的机械臂中,修改功能包可以防止碰撞等等。

现有条件:

夹爪stl模型

机械臂urdf模型

由原先机械臂urdf模型得到的gluon(或其他机械臂名字)_moveit_config功能包

需求:

将夹爪stl模型转换成urdf模型

与原先的机械臂urdf模型合并得到新的含爪机械臂的urdf模型

并在moveit setup assistance中修改现有配置文件,得到新的功能包。

ps:由于原先的功能包中具有连接真实机械臂的节点,需要在新的功能包中补充内容以实现操作真实机械臂的功能。

二、操作过程

1、转夹爪stl为urdf模型,得到夹爪包命名为GripperURDF

利用soildworks中的stl转urdf插件,转夹爪stl为urdf模型,得到夹爪包命名为GripperURDF

<暂时省略,csdn里其他博主的介绍有很多>

2、将夹爪包移到工作空间下,查看其是否完整,符合要求

生成的夹爪包目录与内容如下:

        重要的就是meshes目录底下的base_link0.stl以及urdf目录底下的GripperURDF.urdf,若要将其合并到机械臂模型,则需要转移这两个文件。

        至于launch底下的display.launch与gazebo.launch是作展示使用的,可以通过roslaunch运行在rviz或者gazebo查看导出的urdf包是否完整。

以display.launch为例

  • 将夹爪包移到catkin_ws下catkin_make一下
  • 输入命令roslaunch GripperURDF display.launch 可看到界面

  • 点击左下方add 找到RobotModel 即可在rviz里查看夹爪模型

 

 确认生成的模型无误,继续下一步

3、将夹爪urdf包和机械臂urdf包合并得到新的含爪机械臂的urdf模型

夹爪urdf包上述已知为GripperURDF,机械臂包名为gluon_2l6_4l3,目录如下。

(mesher目录下的base_link0.stl是后面加进去的)

ps:我们需要知道urdf的书写规则是 link-joint-link,了解一些书写规范。

以我的机械臂最后一个关节grasp_frame_joint在urdf的描述为例

    <joint name="grasp_frame_joint" type="fixed">
        <origin rpy="-1.57 -1.57 0" xyz="0 0 0.09" />
        <parent link="6_Link" />
        <child link="grasp_frame" />
        <axis xyz="0 0 0" />
    </joint>

        关节grasp_frame_joint的母坐标为6_link,子坐标是grasp_frame,而grasp_frame也是原机械臂包最后一个坐标系

        而我们的夹爪基坐标在夹爪包的命名为base_link0,所以我们需要命名一个连接grasp_frame与base_link0的关节点,在这里起名为arm_hand_joint

  • 添加连接机械臂最后一个坐标grasp_frame与夹爪基坐标base_link0的关节点arm_hand_joint,添加内容如下
<joint name="arm_hand_joint" type="revolute">
<origin xyz="-0.01 0 0" rpy="0 0 0" />
<parent link="grasp_frame" />
<child link="base_link0" />
<axis xyz="-1 0 0" />
<limit lower="-2.79" upper="2.79" effort="30" velocity="3.14" />
</joint>

       origin xyz rpy的大小,则要根据你设置的两个坐标系间的关系自己对照调节。可以通过机械臂包里的display.launch 查看调整(xyz ,分别对应tf中红绿蓝,rpy,对应沿着xyz旋转角度)

  • 加入夹爪包中的GripperURDF.urdf中base_link0的内容至机械臂gluon_2l6_4l3.urdf文件中,可放在上一步骤的关节点arm_hand_joint之后,注意书写规范
 <link
    name="base_link0">
    <inertial>
      <origin xyz="0.040745 0.0045076 -0.0046969" rpy="0 0 0" />
      <mass value="0.080435" />
      <inertia
        ixx="1.3945E-05"
        ixy="-3.2513E-08"
        ixz="-7.1325E-09"
        iyy="1.3972E-05"
        iyz="4.6346E-10"
        izz="1.7599E-05" />
    </inertial>
    <visual>
      <origin
        xyz="0.05 0.056 -0.013"
        rpy="0 1.57 0" />
      <geometry>
        <mesh
          filename="package://gluon_2l6_4l3/meshes/base_link0.STL"  />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://gluon_2l6_4l3/meshes/base_link0.STL" />
      </geometry>
    </collision>
  </link> 
  • 修改baselink0中指定meshes的路径 filename="package://gluon_2l6_4l3/meshes/base_link0.STL,并把夹爪包中的base_link0.STL移动到对应的路径下。

最后通过display.launch 即可观察到,修改好的含爪机械臂模型

4、moveit setup assistance修改原有配置包gluon_moveit_config

        原有gluon_moveit_config包目录如下

  •  修改.setup_assistant 的内容

        点击目录下的.setup_assistant 将文件内容中urdf下属的package与relative_path改为你对应的新机械臂包的名字与相对路径(我的功能包名字后来有修改,变成的gluon,按理照着来填的就是gluon_2l6_4l3)

  • 在终端运行moveit_setup_assistant 

        运行命令 roslaunch moveit_setup_assistant setup_assistant.launch即可看到熟悉的页面

  •  选择edit existing moveit configuration package,选择原先机械臂的配置包gluon_moveit_config,再load files则可看到如下图

  • self-collisions中,需要点击generate重新生成碰撞矩阵,否则在后续运动规划中很容易有路径但规划不出来

  •  planning groups里,可以添加一个夹爪的关节组Gripper,原有的组可以不变。

  •  其他列都不动就可,最后生成新的配置文件时,把列出来文件的不管黑的橙的红的都勾上,点击generate生成即可完成修改。

5、在生成的gluon_moveit_config中找到demo.launch 加入操控真实机械臂运动的节点

        在得到新的含爪机械臂配置包 gluon_moveit_config之后,demo.launch只是针对虚拟机械臂操控的,可以在rviz里进行仿真

        但是若原先有操控真实机械臂的节点,加入再运行demo.launch即可同时实现操控机械臂的真实运动和仿真,博主加入的为

 <!-- Real robot connected -->
  <include file="$(find gluon_control)/launch/gluon_control.launch">
  </include>

自此,整个流程结束。

  • 9
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值