0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器人控制器的制作教程

454398 来源:网络整理 作者:佚名 2019-11-07 17:33 次阅读

步骤1:添加抓取器

机器人控制器的制作教程

一开始添加抓手有点让人困惑,所以我在上一篇文章中跳过了这一部分。事实证明,这毕竟不是那么困难。

您将需要修改URDF文件以添加抓手链接和关节。

为我的机器人修改的URDF文件已附加到此步骤。基本上,它遵循与手臂零件相同的逻辑,我只添加了三个新链接(claw_base,claw_r和claw_l)和三个新关节(joint5是固定的,joint6,joint7是旋转关节)。

修改URDF文件后,还需要使用MoveIt安装助手来更新MoveIt生成的软件包和xacro文件。

使用以下命令启动安装助手

roslaunch moveit_setup_assistant setup_assistant.launch

单击“编辑现有MoveIt配置”,然后选择包含MoveIt包的文件夹。

添加新的计划组夹持器(带有夹持器的链接和接头)以及末端执行器。我的设置在下面的屏幕截图中。注意,您没有为夹具选择运动学求解器,这不是必需的。生成软件包并覆盖文件。

在catkin工作区中运行

catkin make

命令。

好吧,现在我们有了一条带有抓爪的手臂!

步骤2:构建手臂

正如我在提到Juergenlessner创建手臂3D模型之前提到的那样,感谢您所做的出色工作。如果您单击链接,则可以找到详细的组装说明。

我不得不修改控制系统。我使用带有传感器护罩的Arduino Uno来控制伺服器。传感器屏蔽层在简化布线方面有很大帮助,并且还易于为伺服器提供外部电源。我使用通过降压模块(6V)连接到Sensor Shield的12V 6A电源适配器。

关于伺服器的注释。我使用从淘宝购买的MG 996 HR伺服器,但是质量真的很差。绝对是便宜的中国仿冒品。用于肘关节的那个没有提供足够的扭矩,甚至在重载下也开始发烟。我不得不用质量更好的制造商的MG 946 HR替换肘关节伺服器。

长话短说-购买优质的伺服器。如果魔术烟雾从您的伺服器中冒出,请使用更好的伺服器。 6V是非常安全的电压,请不要增加它。不会增加扭矩,但会损坏伺服器。

伺服器接线如下:

基座2

shoulder2 4

shoulder1 3

肘部6

抓爪8

手腕11

随意更改它,只要您还记得要更改Arduino草图即可。

使用完硬件后,让我们看一看!

步骤3:MoveIt RobotCommander界面

那么,现在呢?为什么仍然需要MoveIt和ROS?是不是可以直接通过Arduino代码控制手臂?

是的。

好吧,现在如何使用GUI或Python/C ++代码提供机器人姿势至? Arduino可以做到吗?

排序。为此,您将需要编写一个反向运动学求解器,它将采用机器人姿势(3D空间中的平移和旋转坐标)并将其转换为伺服的关节角度消息。

尽管您可以自己做,但要做的工作却很艰巨。因此,MoveIt和ROS为IK(逆运动学)求解器提供了一个不错的接口,可以为您完成所有繁重的三角提升。

简短的回答:是的,您可以做一个简单的机械臂,它将执行一个硬编码的Arduino草图,从一个姿势变为另一个姿势。但是,如果您想使机器人更加智能并增加计算机视觉功能,则必须使用MoveIt和ROS。

我制作了一个非常简化的图表,说明MoveIt框架的工作原理。在我们的情况下,它将变得更加简单,因为我们没有来自伺服器的反馈,而是要使用/joint_states主题为机器人控制器提供伺服器的角度。我们只缺少一个组件,那就是机器人控制器。

我们还等什么呢?让我们写一些机器人控制器,以便我们的机器人可以……更加可控。

第4步:机器人控制器的Arduino代码

在我们的情况下,使用rosserial运行ROS节点的Arduino Uno将成为机器人控制器。 Arduino草图代码已附加到此步骤,也可以在GitHub上使用。从弧度到度,然后使用标准Servo.h库将其传递给舵机。

该解决方案有点笨拙,而不是工业机器人的解决方案。理想情况下,应该在/FollowJointState主题上发布运动轨迹,然后接收关于/JointState主题的反馈。但是在我们的手臂上,业余伺服器无法提供反馈,因此我们将直接订阅由FakeRobotController节点发布的/JointState主题。基本上,我们将假设传递给伺服器的任何角度都可以理想地执行。

有关rosserial如何工作的更多信息,请查阅以下教程

http://wiki .ros.org/rosserial_arduino/Tutorials

将草图上传到Arduino Uno之后,您需要使用串行电缆将其连接到运行ROS安装的计算机。

要启动整个系统,请执行以下命令

roslaunch my_arm_xacro demo.launch rviz_tutorial:=true sudo chmod -R 777 /dev/ttyUSB0 rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB0 _baud:=115200

现在,您可以在RVIZ中使用交互式标记将机器人手臂移动到一个姿势,然后按计划并执行,使其实际移至该位置。

魔术!

现在,我们可以编写用于斜坡测试的Python代码了。好吧,差不多。..

第5步:(可选)生成IKfast插件

默认情况下,MoveIt建议使用KDL运动学求解器,它不会少于6个自由度臂真的可以工作。如果您紧跟本教程,那么您会注意到RVIZ中的手臂模型无法达到某些手臂配置应支持的姿势。

推荐的解决方案是使用OpenRave创建自定义运动学求解器。并不是那么困难,但是您必须构建它,并且它是来自源的依赖项,或者使用docker容器(无论您喜欢哪个)。

该过程在本教程中有很好的记录。确认可以在运行Ubuntu 16.04和ROS Kinetic的VM上运行。

我使用以下命令生成了求解器

openrave.py --database inversekinematics --robot=arm.xml --iktype=translation3d --iktests=1000

然后运行

rosrun moveit_kinematics create_ikfast_moveit_plugin.py test_robot arm my_arm_xacro ikfast0x1000004a.Translation3D.0_1_2_f3.cpp

生成MoveIt IKfast插件。

整个过程比较耗时,但是如果您仔细阅读本教程,并不是很困难。如果您对此部分有疑问,请在评论或PM中与我联系。

第6步:斜坡测试!

现在我们可以尝试进行渐变测试了,我们将使用ROS MoveIt Python API执行该测试。

该步骤附带了Python代码,该代码也可以在github存储库中找到。如果您没有坡道或想尝试其他测试,则需要在代码中更改机器人的姿势。为此,在已经运行RVIZ和MoveIt的情况下,首先在终端中执行

rostopic echo /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback

。然后将带有交互式标记的机器人移动到所需位置。位置和方向值将显示在终端中。只需将它们复制到Python代码即可。

要在运行RVIZ和rosserial节点的情况下执行

rosrun my_arm_xacro pick/pick_2.py

进行斜坡测试。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16316

    浏览量

    177788
  • 机器人
    +关注

    关注

    211

    文章

    28373

    浏览量

    206893
收藏 人收藏

    评论

    相关推荐

    工业机器人控制器的主要功能有哪些

    工业机器人控制器是工业机器人系统的大脑,负责接收指令、处理数据、控制机器人的运动和操作。控制器
    的头像 发表于 09-04 09:18 594次阅读

    伺服控制机器人控制方式有哪些

    。 开环控制 : 定义 :开环控制是一种没有反馈机制的控制方式,控制器根据预设的指令直接驱动机器人执行动作。 特点 :简单、成本低,但无法自
    的头像 发表于 09-04 09:16 415次阅读

    开源项目!用ESP32做一个可爱的无用机器人

    简介 作者在完成硕士论文答辩后,利用空闲时间制作了一个他一直想做的机器人——可爱无用机器人。 无用机器人原理是一个连接到开关的电机,通过逻辑门
    发表于 09-03 09:34

    开源项目!用ESP32做一个可爱的无用机器人

    简介 作者在完成硕士论文答辩后,利用空闲时间制作了一个他一直想做的机器人——可爱无用机器人。 无用机器人原理是一个连接到开关的电机,通过逻辑门
    发表于 08-30 14:50

    人形机器人控制器之MCU、DSP、AI芯片

    电子发烧友网报道(文/李弯弯)人形机器人控制器是人形机器人中的核心神经系统,负责对机器人的运动进行细致规划和控制,是
    的头像 发表于 08-26 07:57 5452次阅读

    ROS让机器人开发更便捷,基于RK3568J+Debian系统发布!

    的快速发展,智能机器人设备已成为工业自动化体系的佼佼者,而智能机器人设备核心—ROS系统,是机器人领域的集大成者,主要应用于机器人控制领域,
    发表于 07-09 11:38

    如何使用PLC控制机器人

    随着工业自动化技术的飞速发展,机器人技术作为其中的重要组成部分,其应用范围日益广泛。在机器人控制系统中,PLC(Programmable Logic Controller,可编程逻辑控制器
    的头像 发表于 06-17 10:50 1674次阅读

    简述工业机器人控制系统的特点

    机器人控制系统的特点,包括其组成、功能、性能、可靠性、灵活性、智能化、安全性、人机交互等方面。 一、组成 工业机器人控制系统主要由以下几个部分组成:
    的头像 发表于 06-16 15:38 1538次阅读

    机器人控制系统的基本单元有哪些

    的自主控制机器人控制系统的基本单元包括传感、执行控制器、驱动
    的头像 发表于 06-16 15:36 1549次阅读

    恩智浦MCX微控制器增强移动机器人电机控制能力

    移动机器人的卓越性能、平稳运动和可靠运行离不开高效精确的电机控制机器人的自主性和复杂性不断提高,非常需要能够处理复杂电机控制和其他任务的高级微控制
    的头像 发表于 05-24 09:15 1207次阅读
    恩智浦MCX微<b class='flag-5'>控制器</b>增强移动<b class='flag-5'>机器人</b>电机<b class='flag-5'>控制</b>能力

    基于飞凌嵌入式RK3568J核心板的工业机器人控制器应用方案

    控制系统当中。那么今天,我们就通过多轴工业机器人来聊聊机器人控制系统以及控制器的实现。 1 机器人
    发表于 05-11 09:40

    基于OpenVINO™的诺达佳机器人控制器实战

    诺达佳机器人控制器,搭载英特尔处理,以其强大的性能和稳定性,为AI机器人长期无故障运行提供了坚实的基础。
    的头像 发表于 04-20 10:34 829次阅读
    基于OpenVINO™的诺达佳<b class='flag-5'>机器人</b><b class='flag-5'>控制器</b>实战

    工业机器人应用中的AI边缘控制器:技术创新与效率提升的双重驱动

    工业机器人应用中的AI边缘控制器:技术创新与效率提升的双重驱动 随着科技的不断进步,AI边缘控制器在工业机器人领域的应用越来越广泛。这种创新技术不仅推动了工业
    的头像 发表于 03-08 10:45 775次阅读

    开源项目!教你如何复刻自平衡赛车机器人、智能家居中控、竞技机器人先进模糊控制器

    ;gt;>点此查看全文 3.全志XR806基于FreeRTOS下部署竞技机器人先进模糊控制器 前言 很荣幸参与到由全志在线举办的XR806开发板试用活动。本人热衷于各种的开发板的开发,同时
    发表于 12-26 09:17

    LabVIEW的六轴工业机器人运动控制系统

    LabVIEW开发六轴工业机器人运动控制系统 本项目开发了一个高效的工业机器人控制系统,重点关注于运动学算法和轨迹规划算法的实现和测试。LabVIEW作为一个关键技术,在项目中扮演了核
    发表于 12-21 20:03