zoukankan      html  css  js  c++  java
  • 利用ur5_ros_control实现基于速度的位置控制UR5机械臂

    结论:

    相比于老的ur5_bringup.launch来控制机械臂可以更加柔顺的控制UR5机械臂。但是也存在规划时出现失败的情况,需要多次plan。具体怎么柔顺我会具体说明一下:

    那末怎么使用呢?
    1,安装驱动包

    印象中我的下载方式:

    git clone https://github.com/beta-robots/ur_modern_driver.git

    首先需要下载带有ur5_ros_control.launch的ur_modern_driver驱动包

    打开ur5_ros_control.launch看一下包,发现这里已经很明确的指出了它可以用什么样的控制器进行机械臂控制。原来的ur5_bringup.launch包是没有这麽明确的。
    很显然这里我们可以用到
    joint_state_controller
    force_torque_sensor_controller
    vel_based_pos_traj_controller
    pos_based_pos_traj_controller

    这里的vel_based_pos_traj_controller是非常具有诱惑力的,虽然不同于完全的速度控制,但是也是在基于速度基础上的位置控制。

    2,修改moveit下控制器说明

    找到
    ~/catkin_ws/src/universal_robot/ur5_moveit_config/config/controllers.yaml
    修改成基于速度的位置控制器

    controller_list:
    # - name: ""
    - name: "vel_based_pos_traj_controller"
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    joints:
    - shoulder_pan_joint
    - shoulder_lift_joint
    - elbow_joint
    - wrist_1_joint
    - wrist_2_joint
    - wrist_3_joint
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    3,运行语句

    roslaunch ur_modern_driver ur5_ros_control.launch robot_ip:=192.168.1.107(自己的链接IP)
    roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch
    roslaunch ur5_moveit_config moveit_rviz.launch config:=true
    1
    2
    3
    然后看到moveit下RVIZ界面(这里我添加了底座模型):

    4,对比实验

    没有对比没有伤害

    1,用原来的包是很难用到基于速度的位置控制的,根本链接不上

    roslaunch ur_modern_driver ur5_bringup.launch robot_ip:=192.168.1.107
    roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch
    1
    2

    只好改回了follow_joint_trajectory进行控制


    2,控制对比
    ur5_ros_control控制视频:
    比较柔顺,爱了。。


    ur5_bringup控制视频:
    速度变化大,冲击力强,要打架的节奏

    结论:
    利用新的控制可以实现相对柔顺的动作,不过相比于完全的速度控制还是有些差距,会出现规划失败的情况。
    ————————————————
    版权声明:本文为CSDN博主「光头明明」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/harrycomeon/article/details/107556141

  • 相关阅读:
    设计模式
    包装类
    php 闭包的理解
    is_null empty isset等的判定
    PHP基础一 $this ,static 和 self的区别
    lumen安装踩过得坑
    composer的使用和安装
    使用submine来写c++
    php 和 thinkphp中的常量一览
    路径问题 ./ / ../ 空 的区别
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/15620750.html
Copyright © 2011-2022 走看看