为机械臂安装自己的机械手

为任意一机械臂安装自己的机械手

1、修改URDF文件

为下面一篇的延续:

https://blog.csdn.net/qq_40569926/article/details/111791313

对于市面上的一些机械臂安装自制的机械手,首先要得到机械手和机械臂的URDF文件。

我是通过SW2019直接导出 robot gripper describe file

在导出URDF文件的时候,1、注意旋转轴自己添加;2、word 坐标系和 end 坐标系自己添加。(建议生成文件后自己修改)

好了,我们得到了两个URDF文件了我定义为gripper.urdf 和 robot.urdf ,下一步就应该把这两个文件合并起来。对于一般正规的机械臂的URDF文件中都会预留一个joint 和Link 用来安装机械手爪。(没有的话可以自己建一个)废话不多说,开始分析代码:

<!--添加机械夹爪-->
  <link 
    name="elfin_dummy_gripper">
    <inertial>
      <origin
        xyz=" 0.000489398642395972 -0.0494574311241469 -0.0673400835885924"
        rpy="0 0 0" />
      <mass
        value="0.350473997197119" />

Link 标签就是定义的连杆,elfin_dummy_gripper 就是机器人提供的连杆,我就是直接把gripper.urdf 文件中的复制到 robot.urdf 中,把机械手第一个Link的名称改成elfin_dummy_gripper。(这样子就不用更改后面的 joint了省去了很多麻烦)
Link 后面跟着的就是它的Join:

<joint name="elfin_dummy_joint" type="fixed">
    <origin
      xyz=" 0  -0.06  -0  "
      rpy="${PI} 0 ${PI/2}" />
    <parent
      link="elfin_link6" />
    <child
      link="elfin_dummy_gripper" />
  </joint>

更改origin标签里的xyz 和rpy参数,调整机械臂末端和自己的手爪的位置。xyz 坐标位置,rpy 姿态。自己慢慢调,直到爪子位置和机械臂末位置达到理想。

自己导入的模型要添加最大和最小力:
effort=“” 、 velocity=“” 标签,要不然在gazebo中动不了。
mesh 标签 要对应好,以至于能找到自己模型。
不要忘了为自己的爪子选择一个自己喜欢的颜色。SW导出来灰不溜秋的很难看。

2、添加电机-

 <transmission name = "jointx_trans">
      <type>transmission_interface/SimpleTransmission</type>
      <joint name="jointx">
        <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
      </joint>
      <actuator name = "jointx_motor">
        <mechanicalReduction>1</mechanicalReduction>
      </actuator>
    </transmission>

elfin_dummy_joint 并不是一个真正的joint,因为它就是把我们的手爪和机械臂末端连接起来,不需要动。因此只添加你自己爪子上的transmission就行。

3、moveit

参考古月居的教程:

1、添加末端执行器

在这里插入图片描述
在这里插入图片描述

4、gazebo

不同的地方:

1、添加爪子的控制器
  probot_elfin:
  arm_joint_controller:
    type: "position_controllers/JointTrajectoryController"
    joints:

      - elfin_joint1
      - elfin_joint2
      - elfin_joint3
      - elfin_joint4
      - elfin_joint5
      - elfin_joint6

    gains:
      elfin_joint1:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
      elfin_joint2:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
      elfin_joint3:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
      elfin_joint4:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
      elfin_joint5:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
      elfin_joint6:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}

  gripper_controller:
    type: "position_controllers/JointTrajectoryController"
    joints:
      - jointx
      # - elfin_dummy_joint
      
    gains:
      jointx:                {p: 50.0, i: 0.0, d: 0.1, i_clamp: 0.0}
      #   elfin_dummy_joint :    {p: 50.0, i: 0.0, d: 0.1, i_clamp: 0.0}

2、添加爪子的控制器
 <node name="arm_controller_spawner" pkg="controller_manager" type="spawner" output="screen" ns="/probot_elfin" args="arm_joint_controller gripper_controller"/>
controller_manager_ns:  controller_manager
controller_list: 
  - name: probot_elfin/arm_joint_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - elfin_joint1
      - elfin_joint2
      - elfin_joint3
      - elfin_joint4
      - elfin_joint5
      - elfin_joint6

  - name: probot_elfin/gripper_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      #- elfin_dummy_joint
      - jointx
  action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      #- elfin_dummy_joint
      - jointx
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值