---恢复内容开始---

终于有机械臂了,

首先先下载包

cd ~/catkin_ws/src
git clone https://github.com/Kinovarobotics/kinova-ros.git kinova-ros
cd ~/catkin
catkin_make

To access the arm via usb copy the udev rule file 10-kinova-arm.rules from

~/catkin_ws/src/kinova-ros/kinova_driver/udev to /etc/udev/rules.d/:

绑定usb端口

sudo cp ~/catkin_ws/src/kinova-ros/kinova_driver/udev/-kinova-arm.rules /etc/udev/rules.d/

我的直接默认参数启动kinova_robot.launch文件即可

<launch>

  <arg name="use_urdf" default="true"/>
<arg name="kinova_robotType" default="j2n6a300" /> <node name="$(arg kinova_robotType)_driver" pkg="kinova_driver" type="kinova_arm_driver" output="screen" cwd="node" args="$(arg kinova_robotType)">
<!-- Set this parameter to use a specific arm on your system -->
<!-- <param name="serial_number" value="PJ00000001030703130" /> -->
</node> <group unless="$(arg use_urdf)">
<node name="$(arg kinova_robotType)_tf_updater" pkg="kinova_driver" type="kinova_tf_updater" output="screen" cwd="node" args="$(arg kinova_robotType)">
<remap from="/$(arg kinova_robotType)_tf_updater/in/joint_angles" to="/$(arg kinova_robotType)_driver/out/joint_angles"/>
</node>
</group> <group if="$(arg use_urdf)">
<param name="robot_description" command="$(find xacro)/xacro.py '$(find kinova_description)/urdf/$(arg kinova_robotType)_standalone.xacro'" />
<node name="$(arg kinova_robotType)_state_publisher"
pkg="robot_state_publisher"
type="robot_state_publisher">
<remap from="joint_states" to="/$(arg kinova_robotType)_driver/out/joint_state"/>
</node>
</group> </launch>

kinova为了支持不同的产品,利用8个字节的字符串kinova_robotType来配置参数,参数范围[{j|m|r|c}{1|2}{s|n}{4|6|7}{s|a}{2|3}{0}{0}]

{j|m|r|c} 代表产品 jaco, mico, roco and customized

{1|2}         版本号

{s|n}   wrist type 手腕类型

{4|6|7}  几自由度的机械臂

{s|a}  机器人模型

{2|3}  手指的个数

最后两位还没有被定义

默认参数j2n6a300 是jaco v2 6DOF assistive 3 fingers机械臂

根据自己的进行相应修改

然后运行

roslaunch kinova_bringup kinova_robot.launch 
rosrun rviz rviz

在rviz中添加机器人模型选项

然后在demo文件夹下有相应的测试程序

fingers_action_client.py  joints_action_client.py  pose_action_client.py

控制6个关节

 rosrun kinova_demo joints_action_client.py  -v -r j2n6a300 degree --            

  -v 代表输出显示所有关节的当前角度值

  -r代表修改关节位置使用相对原来位置加或减去对应值,一定要加上此参数

  j2n6a300 前面说的类型号

  后边为6个关节<Angle_J1> <Angle_J2> <Angle_J3> <Angle_J4> <Angle_J5> <Angle_J6>

六个关节的角度信息被发布到这个话题上:

/'${kinova_robotType}_driver'/out/joint_angles 

直接修改机械臂手的空间位置

rosrun kinova_demo pose_action_client.py -v -r j2n6a300 mdeg -- 0.01     

  mdeg   {mq | mdeg | mrad} mq代表米&四元数 mdeg米&角度 米&弧度

  <pos x> <pos y> <pos z> 三轴角度<Angle_x> <Angle_y> <Angle_z>或四元数<ori x> <ori y> <ori z> <ori w> 

当前笛卡尔坐标被发布到这个话题

/'${kinova_robotType}_driver'/out/tool_pose

末端力旋量也就是手爪的力

/'${kinova_robotType}_driver'/out/tool_wrench


机械臂也是靠力的数据来保护它不硬撞上东西

控制机械手

rosrun kinova_demo fingers_action_client.py -v  j2n6a300 percent   

 

percent  {turn | mm | percent}三种控制方式,turn [0, 6800]从张开到闭合 mm手指从张开移动距离[0,9.45] percent[0,100]闭合百分比

这几种控制方式都是控制手指的闭合度

手位置信息被发布到这个话题/'${kinova_robotType}_driver'/out/finger_position

机械臂也能通过控制每个关节的角速度,或坐标系的线速度来控制 就不一一写了

另外 kinova公司提供了API接口,可使用其库函数
库在kinova-ros/kinova_driver/lib/文件夹下

配置 jaco机械臂 ros环境的更多相关文章

  1. 通过actionlib控制jaco机械臂

    为了安全,先写一个简单控制三个手指的程序: 根据驱动包内kinova_fingers_action.cpp服务器写客户端程序 #include <ros/ros.h> #include & ...

  2. ROS机械臂 Movelt 学习笔记3 | kinect360相机(v1)相关配置

    目标是做一个机械臂视觉抓取的demo,在基地里翻箱倒柜,没有找到学长所说的 d435,倒是找到了一个老古董 kinect 360. 前几天就已经在旧电脑上配置好了,现在记录在新电脑上的配置过程. 1. ...

  3. OpenManipulator RM-X52 ROS 开源机械臂

    DYNAMIXEL PRO PH54-200-S500-R  简介

  4. ROS机械臂 Movelt 学习笔记1 | 基础准备

    环境:Ubuntu18.04 + ROS Melodic 1. 安装ROS 官网下载安装步骤:http://wiki.ros.org/melodic/Installation/Ubuntu 一键安装的 ...

  5. ROS连接ABB机械臂调试详细教程-ROS(indigo)和ABB RobotStudio 6.03.02-

    在ROS industrial介绍中,给出了ROS和常用机械臂的连接方式.具体信息可以参考:http://wiki.ros.org/Industrial ROS连接ABB机械臂调试详细教程-ROS(i ...

  6. 基于 Mathematica 的机器人仿真环境(机械臂篇)[转]

    完美的教程,没有之一,收藏学习. 目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些 ...

  7. ROS机械臂 Movelt 学习笔记2 | Move Group 接口 C++

    Movelt为使用者提供了一个最通用且简单的接口 MoveGroupInterface 类,这个接口提供了很多控制机器人的常用基本操作,如: 设置机械臂的位姿 进行运动规划 移动机器人本体 将物品添加 ...

  8. Ubuntu 16.04 ROS环境配置

    最近新入职一家公司,是搞智能无人驾驶的,用的操作系统是Ubuntu和ros,之前没接触过ros系统,既然公司用那就必须的学习啊,话不多说先装它一个ros玩玩... 1. Ubuntu 安装 ROS K ...

  9. ubuntu16.04 ROS环境下配置和运行SVO

    ubuntu16.04 ROS环境下配置和运行SVO https://blog.csdn.net/nnUyi/article/details/78005552

随机推荐

  1. 41-python基础-python3-字符串-转义字符

    转义字符包含一个倒斜杠(\),紧跟着是想要添加到字符串中的字符.(尽管它包含两个字符,但大家公认它是一个转义字符.) 实例1: Python 知道,因为 Bob\'s 中的单引号有一个倒斜杠,所以它不 ...

  2. C語言中資料結構(struct)的大小

    通常在PC上寫程式時,很少會去管struct會佔掉多少記憶體.當要使用到時,也不會想去用手算到底佔掉多少,大多是直接使用sizeof來做計算.然而sizeof計算出來的值往往不會如我們想的一樣.因為c ...

  3. JUnit中Assert简单介绍

    junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类.1.assertTrue/False([String message,]boolean condi ...

  4. Spring学习笔记(8)——依赖注入

    spring依赖注入使用构造器注入使用属性setter方法注入使用Field注入(用于注解方式) 注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发 ...

  5. echarts 给formatter文字添加不同颜色

    legend: { x : 'center', y : 'bottom', icon: "circle", itemWidth: 8, // 设置宽度 itemHeight: 8, ...

  6. node快速入门

    nodejs是一个方兴未艾的技术,近几年一直活跃在各大论坛.其实nodejs也只是新瓶装旧酒,只是它的一些激进的特性使她显得很神秘.nodejs使用的是JavaScript的语法,所以在学习nodej ...

  7. leetcode-12双周赛-1243-数组变换

    题目描述: 自己的提交: class Solution: def transformArray(self, arr: List[int]) -> List[int]: if len(arr) & ...

  8. CSV (逗号分隔值文件格式)

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序列,不 ...

  9. Mysql 创建bit类型字段

  10. jdk环境配置-windows 10

    近期由于云服务器到期,重新买了一个云服务器,这里顺便把jdk环境配置步骤做一个记录 1.下载自己需要的jdk 我这里是下的免安装版的  2.计算机(此电脑)->属性->高级系统设置-> ...