zoukankan      html  css  js  c++  java
  • 配置 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/文件夹下

  • 相关阅读:
    std thread
    windows更新包发布地址
    How to set up logging level for Spark application in IntelliJ IDEA?
    spark 错误 How to set heap size in spark within the Eclipse environment?
    hadoop 常用命令
    windows 安装hadoop 3.2.1
    windows JAVA_HOME 路径有空格,执行软连接
    day01MyBatisPlus条件构造器(04)
    day01MyBatisPlus的CRUD 接口(03)
    day01MyBatisPlus入门(02)
  • 原文地址:https://www.cnblogs.com/CZM-/p/6275068.html
Copyright © 2011-2022 走看看