• 配置 jaco机械臂 ros环境


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

    终于有机械臂了,

    首先先下载包

    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/10-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 --   0 0 0 10 0 0    

      -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 0 0 0 10 10

      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 50 50 50

     

    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/文件夹下

  • 相关阅读:
    二级菜单
    eclipse高版本中EasyExplore的替换插件OpenExplore
    Python学习一
    原型编程的基本规则
    【CF671D】 Roads in Yusland(对偶问题,左偏树)
    【洛谷4542】 [ZJOI2011]营救皮卡丘(最小费用最大流)
    【洛谷4313】 文理分科(最小割)
    【洛谷4001】 [ICPC-Beijing 2006]狼抓兔子(最小割)
    【洛谷2057】 [SHOI2007]善意的投票(最小割)
    【洛谷2053】 [SCOI2007]修车(费用流)
  • 原文地址:https://www.cnblogs.com/CZM-/p/6275068.html
Copyright © 2020-2023  润新知