精华内容
下载资源
问答
  • UR5机械臂控制程序

    2020-12-03 09:40:17
    通过软件连接UR5机械臂(网络连接机械臂,设置好机械臂IP),可控制上电,启动,关闭,可以设置需要移动到的位置点,基于基座的坐标移动,获取当前位姿,可以自己定义发送的脚本命令
  • UR5机械臂MATLAB下轨迹规划,包含运动学、动力学,轨迹规划等等
  • UR5机械臂的TCP/IP控制

    千次阅读 多人点赞 2019-01-07 09:28:23
    最近研究了一下UR5机械臂的控制,由于供应商提供的实物是用自带的示教器来编程控制,感觉很不方便。于是我研究了一下UR5机械臂的资料,决定用Qt写个控制软件,将示教器上面的控制界面移植过来,这样就可以用电脑通过...

    最近研究了一下UR5机械臂的控制,由于供应商提供的实物是用自带的示教器来编程控制,感觉很不方便。于是我研究了一下UR5机械臂的资料,决定用Qt写个控制软件,将示教器上面的控制界面移植过来,这样就可以用电脑通过无线网络远程控制机械臂了,下面介绍本人做的控制软件。

    此图是示教器屏幕上的控制界面

    在这里插入图片描述

    此图为本人用Qt写的UR5机械臂控制软件
    在这里插入图片描述
    从上面两图对比中可以看出,我写的控制软件进行了功能扩展,示教器上面的控制按钮此软件都包含。不仅如此该软件还具有调试功能,左边的输入输出对话框可以收发数据。输入对话框右边竖排按钮可以添加程序,通过任意组合可以编出简单的控制程序,按发送按钮就可以控制机械臂运动了。中间的控制区域额外添加了一些按钮,比如上电,断电,关机,解除制动,进入示教模式,解除保护停止等功能。右边的区域主要是机械臂的状态显示,比如
    X,Y,Z,Rx,Ry,Rz,以及各关节角度信息,此区域中间位置还具有机械臂数据反馈信息,比如电压,电流,机器人模式,安全模式等,下面是细节介绍。
    在这里插入图片描述
    红框1:该区域是IP设置区域,输入机械臂IP联通后,“开始连接”按钮变为红色。
    红框2:该区域竖排按钮可以组合使用编写简单程序,如输入对话框里面程序。

    红框3:可以通过“打开文件”按钮找到需要打开的文件(.txt),并将内容显示在输入对话框。“写入文件”可以将写好的程序保存到指定的文件(.txt)。

    在这里插入图片描述
    此区域为控制按钮区域,带箭头的控制按钮和示教器的控制按钮一样,都是按压式的,只有按住不动的情况下机械臂才会运动,松开自动停止,每个按钮的控制方向完全和示教器上的一样。此外最底下还有进度条控制运动速度和加速度。点击“示教模式”可以手动推动机械臂到任意位置,点击任意其它按钮解除示教模式,如果出现机械臂保护停止状态,“解除保护停止”按钮变为红色,点击此按钮可解除报警继续控制。

    在这里插入图片描述
    此区域为机械臂状态信息显示,下方关节状态区域可以手动点击箭头按钮,对各关节进行控制。中间红色框区域也是机械臂的实时状态信息,如果机械臂出现断电,保护性停止等情况,都会有相应的报警提示,并且可以根据提示解除相关报警。如下图所示。

    在这里插入图片描述
    机器人出现保护性停止后,安全模式显示报警信息,“解除保护停止”按钮变为红色,点击此按钮,即可解除报警。

    在这里插入图片描述
    机械臂断电后机器模式显示报警,上电按钮变为红色,点击此按钮可以上电。

    以上就是整个软件的介绍,此软件经过在实体UR机械臂上实测,稳定有效,也可以在URSim仿真器上测试运行。后续可以根据需要添加更多的功能。

    **

    **欢迎感兴趣的各位朋友一起交流学习,QQ:2284108152.

    **

    展开全文
  • [ROS] URDF 建模,UR5 机械臂 文章目录[ROS] URDF 建模,UR5 机械臂1. UR5 参数2. UR5 URDF 代码3. 调试验证*. 参考*. 问题解决*. rough 1. UR5 参数 2. UR5 URDF 代码 <?xml version="1.0" encoding="utf-8...

    [ROS] URDF 建模,UR5 机械臂



    UR5模型下载https://github.com/ros-industrial/universal_robot/blob/kinetic-devel/ur_description/urdf/ur5.urdf.xacro


    1. UR5 参数

    在这里插入图片描述

    urdf 文件中没有使用此参数。参数手动调试。


    2. UR5 URDF 代码

    <?xml version="1.0" encoding="utf-8" ?>
    
    <!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/base.dae"/>       -->
    <!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/forearm.dae"/>    -->
    <!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/shoulder.dae"/>   -->
    <!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/upperarm.dae"/>   -->
    <!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist1.dae"/>     -->
    <!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist2.dae"/>     -->
    <!--            <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist3.dae"/>     -->
    
    <robot name="ur5">
    
        <link name="base_link">
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <mesh filename="package://demo_urdf/meshes/ur5/visual/base.dae"/>
                </geometry>
            </visual>
        </link>
    
        <link name="shoulder_link">
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <mesh filename="package://demo_urdf/meshes/ur5/visual/shoulder.dae"/>
                </geometry>
            </visual>
        </link>
    
        <joint name="joint1" type="revolute">
            <!-- 0.089159 -->
            <origin xyz="0 0 0.0862" rpy="0 0 0"></origin>
            <axis xyz="0 0 1"/>
            <parent link="base_link" />
            <child link="shoulder_link"/>
            <!-- -360 - 360 -->
            <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
        </joint>
    
        <link name="upperarm_link">
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <mesh filename="package://demo_urdf/meshes/ur5/visual/upperarm.dae"/>
                </geometry>
            </visual>
        </link>
    
        <joint name="joint2" type="revolute">
            <!-- 0.089159 -->
            <origin xyz="0 0.136 0" rpy="0 0 0"></origin>
            <axis xyz="0 1 0"/>
            <parent link="shoulder_link" />
            <child link="upperarm_link"/>
            <!-- -360 - 360 -->
            <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
        </joint>
    
        <link name="forearm_link">
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <mesh filename="package://demo_urdf/meshes/ur5/visual/forearm.dae"/>
                </geometry>
            </visual>
        </link>
    
        <joint name="joint3" type="revolute">
            <!-- 0.089159 -->
            <origin xyz="0 -0.12 0.425" rpy="0 0 0"></origin>
            <axis xyz="0 1 0"/>
            <parent link="upperarm_link" />
            <child link="forearm_link"/>
            <!-- -360 - 360 -->
            <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
        </joint>
    
        <link name="wrist1_link">
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist1.dae"/>
                </geometry>
            </visual>
        </link>
    
        <joint name="joint4" type="revolute">
            <!-- 0.089159 -->
            <origin xyz="0 0 0.3922" rpy="0 0 0"></origin>
            <axis xyz="0 1 0"/>
            <parent link="forearm_link" />
            <child link="wrist1_link"/>
            <!-- -360 - 360 -->
            <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
        </joint>
    
        <link name="wrist2_link">
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist2.dae"/>
                </geometry>
            </visual>
        </link>
    
        <joint name="joint5" type="revolute">
            <!-- 0.089159 -->
            <origin xyz="0 0.093 -0.0015" rpy="0 0 0"></origin>
            <axis xyz="0 0 1"/>
            <parent link="wrist1_link" />
            <child link="wrist2_link"/>
            <!-- -360 - 360 -->
            <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
        </joint>
    
        <link name="wrist3_link">
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0"/>
                <geometry>
                    <mesh filename="package://demo_urdf/meshes/ur5/visual/wrist3.dae"/>
                </geometry>
            </visual>
        </link>
    
        <joint name="joint6" type="revolute">
            <!-- 0.089159 -->
            <origin xyz="0 0 0.0948" rpy="0 0 0"></origin>
            <axis xyz="0 1 0"/>
            <parent link="wrist2_link" />
            <child link="wrist3_link"/>
            <!-- -360 - 360 -->
            <limit effort="30" velocity="1.0" lower="-6.28" upper="6.28" />
        </joint>
    
    </robot>
    
    

    3. 调试验证

    在这里插入图片描述

    *. 参考


    *. 问题解决


    *. rough

    展开全文
  • UR5机械臂仿真环境搭建

    万次阅读 2017-05-31 19:41:44
    UR5机械臂仿真环境搭建 重要参考: ROS官网教程 前段时间,实验室采购了一台UR5机械臂,今天花了一下午,对照官网教程,完成了仿真环境搭建,期间遇到了一些问题,好在最后都解决了。机械臂的运动规划和运动控制是一...

    UR5机械臂仿真环境搭建

    • 重要参考: ROS官网教程

    • 前段时间,实验室采购了一台UR5机械臂,今天花了一下午,对照官网教程,完成了仿真环境搭建,期间遇到了一些问题,好在最后都解决了。机械臂的运动规划和运动控制是一个很火的内容,同时也可以作为很多人工智能算法验证的实验平台,由于发现这一块国内网站的相关博客很少,为了方便后续学者开发,现把搭建过程整理如下:

    1 系统配置: Ubuntu 14.04 & ROS Indigo

    2 完整安装 ROS moveit

        sudo apt-get install ros-indigo-moveit-full
    • 此处与官网介绍略有不同,官网说需要安装moveit_simple_controller_manager package,但是实际操作中总是报错,考虑到以后可能还需要用moveit的其它包,索性进行了完全安装。

    3 安装UR5的gazebo模型,配置文件和动力学模型

        $ sudo apt-get install \
          ros-indigo-ur-gazebo \
          ros-indigo-ur5-moveit-config \
          ros-indigo-ur-kinematics

    4 测试

    • 启动仿真程序
        $ roslaunch ur_gazebo ur5.launch
    • 另外打开一个终端,并输入
        $ roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true

    UR5 gazebo仿真模型

    • 利用RViz控制仿真机械臂
      在Rviz中拖动机械臂到某个位置,并选择“planned and excute”就可以观察到机械臂在Rviz和Gazebo中同时运动。
        $ roslaunch ur5_moveit_config moveit_rviz.launch config:=true

    UR5 RViz控制界面

    欢迎同行批评指教~

    展开全文
  • VREP与MATALB联合仿真,针对UR5机械臂进行PD加重力补偿控制。
  • 利用ur5_ros_control实现基于速度的位置控制UR5机械臂

    千次阅读 热门讨论 2020-07-24 11:21:24
    相比于老的ur5_bringup.launch来控制机械臂可以更加柔顺的控制UR5机械臂。但是也存在规划时出现失败的情况,需要多次plan。具体怎么柔顺我会具体说明一下: 那末怎么使用呢? 1,安装驱动包 印象中我的下载方式: git...

    结论:

    相比于老的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
    

    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
    

    然后看到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
    

    在这里插入图片描述
    只好改回了follow_joint_trajectory进行控制
    在这里插入图片描述

    2,控制对比
    ur5_ros_control控制视频:
    比较柔顺,爱了。。
    在这里插入图片描述

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

    在这里插入图片描述

    结论:
    利用新的控制可以实现相对柔顺的动作,不过相比于完全的速度控制还是有些差距,会出现规划失败的情况。

    展开全文
  • Ubuntu20.04下moveit+ROS noetic控制UR5机械臂 环境配置 noetic下利用moveit控制UR5环境配置Ubuntu20.04下moveit+ROS noetic控制UR5机械臂 环境配置1.安装ROS noetic+moveit2.安装ur机器人相关驱动3.测试 1.安装ROS ...
  • UR5机械臂--ROS系统通信建立与实时控制

    万次阅读 热门讨论 2017-10-02 13:31:02
    实验室近期购置了一台UR5机械臂,需要给机械臂上ROS系统。于是查询各种资料、博客,以及翻墙到谷歌找到了一些资料。花了足足一个月时间终于在ROS系统上与UR5本体建立通信,并在RVIZ上控制UR5,记录安装调试过程以备...
  • 问题描述:UR5机械臂仿真环境搭建重要参考: ROS官网教程前段时间,实验室采购了一台UR5机械臂,今天花了一下午,对照官网教程,完成了仿真环境搭建,期间遇到了一些问题,好在最后都解决了。机械臂的运动规划和运动...
  • VREP与MATLAB进行联合仿真时,需要针对机械臂的参数进行设置,才能通信成功。
  • 蓝色块为仿真的工件,图示机械臂为UR5机械臂,移动到目标工件位置,对工件进行操作。 参考 ROS Industrial 仿真工件下载 sudo apt install ros-indigo-calibration-msgs cd ~/catkin_ws/src git clone ...
  • UR5机械臂装拆说明

    2015-11-18 09:07:36
    Universal Robots recommends that you do not attempt repair, adjustment or other intervention in the mechanical or electrical systems of the robot unless a problem has arisen. Any unauthorized ...
  • 最近想用ros来搭建ur机械臂的双臂平台,想先在gazebo中测试一下如何用自己手写的程序来控制ur机械臂运动,但网上的教程都局限在用moveit控制gazebo仿真环境下的ur运动,考虑到后期肯定会自己进行轨迹算法规划,用...
  • ROS上的UR5机械臂仿真

    千次阅读 热门讨论 2019-04-19 16:01:21
    UR5介绍 Universal Robots(优傲机器人)公司是一家引领协作机器人全新细分市场的先驱企业,该公司成立于2005年,关注机器人的用户可操作性和灵活度,总部位于丹麦的欧登塞市,主要的机器人产品有:UR3、UR5和UR10...
  • 任务描述:机器人操作系统ros通过网线连接ur5,实现二者通信,在ros下控制ur5运动,为后续基于ros开发机械臂视觉抓取/避障等应用打下基础。 目录 1 ur5机器人端的设置 1.1 在ur5上安装urcap 1.2 编程序 1.3 ...
  • ros ur5机械臂(二)

    2019-06-16 20:31:35
    #关于规划时的碰撞检测  由于电爪部分的udrf是我自己添加的,并不完善,虽然在仿真界面能显示出来,但moveit 规划时并没有将电爪纳入碰撞检测的范围内,所以规划有时会出现电爪碰到机械臂本身,很不安全。...
  • ROS下如何使用moveit驱动UR5机械臂

    万次阅读 多人点赞 2017-01-23 15:31:21
    配置助手对UR5机械臂进行配置 #打开setup_assistant roslaunch moveit_setup_assistant setup_assistant.launch     MoveIt! Setup Assistant 是一个图形界面,可以让我们不用写代码看代码,直接用鼠标...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 161
精华内容 64
关键字:

ur5机械臂