如何给机械臂添加hande机械爪并应用于moveit

  • 1、从源码下载hande机械爪文件:
  • 2、更改srv文件
  • 3、更改gripper_node.py
  • 4、通过clien和service控制机械爪:

首先需要利用moveit的初始启动软件生成带有机械臂的URDF文件,此时打开moveit会发现机械爪为红色,无法控制机械臂。因为机械爪的话题没有发给moveit,提示没有 hande_left_finger_joint。按照如下步骤解决:

1、从源码下载hande机械爪文件:

cd ~/your_ws/src
git clone https://github.com/macs-lab/robotiq_hande_ros_driver.git
cd …
catkin_make

2、更改srv文件

进入文件夹 robotiq_hande_ros_driver/srv/gripper_service.srv
将内容更改为:

int32 position
int32 speed
int32 force
---
int32 response`

3、更改gripper_node.py

主要解决问题:moveit无法接收hande的关节状态信息
接收moveit发出的joint_state话题,将其增加hande_left_finger_joint信息后重新发出。
我这里将机械臂启动launch文件发布的机械臂关节话题名称改为joint_states_ur,重新以joint_states话题发布出去
源码如下:

#!/usr/bin/env pythonimport rospy
from std_msgs.msg import Int32
import robotiq_gripper
from robotiq_hande_ros_driver.srv import gripper_service, gripper_serviceResponse
from sensor_msgs.msg import JointState
import threading
import timeclass HandEGripper:def __init__(self):rospy.init_node("hand_e_gripper_node", anonymous=False)# get the IPip = rospy.get_param('~robot_ip')# initialize the gripperself.gripper = robotiq_gripper.RobotiqGripper()rospy.loginfo("Connecting to the gripper.....")self.gripper.connect(ip, 63352)rospy.loginfo("Activating the gripper.....")self.gripper.activate(auto_calibrate=False)# set up server# add_thread = threading.Thread(target = thread_job)# add_thread.start()self.gripper_server = rospy.Service('gripper_service', gripper_service, self.serverCallback)rospy.loginfo("Gripper ready to receive service request...")def jointStateCallback(self, msg):js = msg# js.name[7] = 'hande_left_finger_joint'js.name = ['shoulder_pan_joint', 'shoulder_lift_joint', 'elbow_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint','hande_left_finger_joint']xpos=gripper_obj.gripper.get_current_position()xpos=xpos*0.0001js.position = [msg.position[0],msg.position[1],msg.position[2],msg.position[3],msg.position[4],msg.position[5],xpos]# js.name[7]="hande_left_finger_joint"# js.postion[7]=xpos# print jsself.joint_state_pub.publish(js)def serverCallback(self, request):pos = request.positionspeed = request.speedforce = request.forceif speed > 255 or speed <=0:return(gripper_serviceResponse('invalid speed value. Valid in range (0,255]'))if force > 255 or force <=0:return(gripper_serviceResponse('invalid force value. Valid in range (0,255]'))if pos > 255 or pos < 0:return(gripper_serviceResponse('invalid position value. Valid in range [0,255]'))rospy.loginfo("moving the gripper. positino = {}, speed={}, force={}".format(pos, speed, force))self.gripper.move_and_wait_for_pos(pos, speed, force)return(gripper_serviceResponse(1))if __name__ == '__main__':gripper_obj = HandEGripper()rospy.spin()

4、通过clien和service控制机械爪:

在终端执行:
rosservice call /gripper_service “position: 10
speed: 10
force: 10”
可以看到机械爪运动

如何给机械臂添加hande机械爪并应用于moveit相关推荐

  1. ROS - UR3机械臂添加robotiq FT sensor和robotiq 140 2指夹爪

    UR3机械臂添加robotiq FT sensor和robotiq 140 2指夹爪 ```建议参考这篇```,[ur机械臂 + robotiq gripper + robotiq ft sensor ...

  2. 强化学习UR机械臂仿真环境搭建(一) - 为UR3机械臂添加robotiq ft300力传感器

    为UR3机械臂添加robotiq ft300力传感器 ```建议参考这篇```,[ur机械臂 + robotiq gripper + robotiq ft sensor + gazebo + 连接真实 ...

  3. 给自己的机械臂添加一个夹爪

    我感觉大多数用moveit做机械臂控制的,在一开始,都是控制一个光杆机械臂,但是随着自己对ros和moveit学习的深入,会发现只控制一个光杆机械臂好像没什么意思嘛.最起码要给自己的机械臂加一个夹爪让 ...

  4. ros kinetic-moveit驱动ur3机械臂------控制真实机械臂并且能动

    ros kinetic-moveit驱动ur3机械臂------控制真实机械臂并且能动 本文工作环境配置: ubuntu16.04.6 ros-kinetic ur3 已验证本教程代码在Ubuntu1 ...

  5. 机械臂——六轴机械臂操作空间运动分析

    机械臂建模分析:https://blog.csdn.net/Kalenee/article/details/81990130 MoveIt规划下的关节空间运动分析:http://www.guyueho ...

  6. 计算机指示机械臂 什么知识,机械臂

    机械臂是指高精度,多输入多输出.高度非线性.强耦合的复杂系统.因其独特的操作灵活性, 已在工业装配, 安全防爆等领域得到广泛应用. 机械臂是一个复杂系统, 存在着参数摄动.外界干扰及未建模动态等不确定 ...

  7. ur机械臂 控制器_UR机械臂 tcp/ip 远程控制编程实现详解 c++ UR script

    最近在使用c++对UR3和UR5进行控制,发现网上内容不太好找,并且有的编程的一些点没有点清楚,现在记录在这里,方便后人使用. copyright (c) 2020 余晨 in HITSZ, 协议CP ...

  8. 【从零开始的ROS四轴机械臂控制】(三) - 为机械臂添加摄像头和夹爪、解决gazebo模型抖动、使用gazebo建立sdf模型

    [从零开始的ROS四轴机械臂控制(三)] 五.在gazebo中添加摄像头 1.修改arm1.gazebo.xacro文件 2.修改arm1.urdf.xacro文件 3.查看摄像头图像 六.为模型添加 ...

  9. 给自己的机械臂添加夹爪

    一.引言 上一节中已经构建了一个可以动的机械臂模型,但是没有夹爪并不可以去执行后续的抓取动作 这一节主要是添加机械臂的夹具到已有的模型上 因为前面已经做好了铺垫,这里就可以简述一下,然后再进一步说下m ...

最新文章

  1. 数据结构与算法(2)——栈和队列
  2. html多重边框,中间空白,CSS揭秘之多重边框的实现
  3. 老男孩IT教育在线3期新学员司毅第一期作业
  4. java nio 强制关闭_Java NIO服务器:远程主机强迫关闭了一个现有的连接
  5. java long 1 000_Java-基本数据类型
  6. 看单片机原理图-外部FLASHW25Q64
  7. excel计算机快捷键大全,常用的Excel快捷键大全
  8. 数据库实验——T-SQL编程
  9. 机器学习中的数学基础--特征函数与中心极限定理,统计学基本概念,极大似然估计,最大后验估计
  10. android swap 大小,android 手机内存SWAP经验
  11. linux非yum安装svn,linux安装svn(yum安装)
  12. 各个领域中的经典论文,看看你都读过哪些 - 易智编译EaseEditing
  13. 用matlab求二重积分例题_matlab计算二重积分
  14. Win 10 任务栏中Google开启时出现两个Google图标
  15. MY云顶之奕上分阵容
  16. 九度oj 题目1080:进制转换
  17. [语义分割]SPP、空洞卷积与ASPP总结
  18. java zgc_现在该关注ZGC和昏暗的Nashorn的明星了:Java影响者参与其中
  19. c语言中“函数的定义不可以嵌套,但函数的调用可以嵌套
  20. 【高德地图进阶】--- 添加城市版块纹理

热门文章

  1. CSS3 - 设置渐变颜色背景,线性/放射性/循环
  2. 10000个微信红包封面,免费领取,人人有份
  3. RecyclerView选中Item滚动到屏幕中间 / 指定位置
  4. Mac真正免费的PDF阅读器 - PDF Guru
  5. 一套很好的C++学习课件
  6. 商场购物英语对话-shopping dialog
  7. Android使用Tesseract-ocr进行文字识别
  8. px,em,rem,%,vmin,vmax,vh ,vw
  9. java 仿 苹果_苹果的最强模仿者soPhone 完全拆卸(多图,大图)
  10. imx6q 音频芯片驱动开发--相关设备树以及代码中的对应设置