• 自主移动机器人模型制作


        AGV搭载机械手的复合型机器人,主要用于将物流按要求输送至指定工位,可用于加工工件的抓取、组装、搬运、装卸等作业。此外,复合机器人也可快速布局于工厂、仓储分拣、自动化货物超市等诸多场景,为物料的自动搬运、物品的上下料,以及物料的分拣提供自动化、柔性化的作业支持,使厂内可以实现真正的无人搬运。

        现有的产品多是AGV+UR机械臂,在plant里面怎么去处理这个呢,接下来我们就针对这个问题进一步展开说明。

    接下来自然会想到以下几个问题:

    1. 机械臂如何移载到AGV上?

    2. 机械臂怎么运动?

    针对以上问题,我们逐一剖析。

    玩过plant的都知道,我们可以通过替换数模的方式,将我们所需要的自定义模型导入到基本模型里面,然后再定制动画对象,在写入定义相关动作。

    如果把模型导入到Station、Buffer这些是不是可以呢,答案是否定的,因为这些对象无法生成到Transporter上,那么就只能使用Part、Container了,这些都是可以产生在Transporter上面。

    如果使用part是否可以呢,答案是否定的,因为Part没有容量,无法容纳物料,所以我们选用Container来作为机械手。

    复制一个Container,采用交换对象的方式,导入默认的PickAndPlaceKUKA.s3d作为机械臂,其实我们也可以找一个UR的模型来作为机械臂数模,也是没问题的,如果需要,波哥也可以另一篇单独讲如何制作。

    这样的话,机械手就做好了。

    然后只需要将agv的容量设置为2,一个放托盘,一个放机械手,AGV创建时,自动create托盘和机械手即可,位置根据需要调整一下,代码插入一下。

    -- param onCreate3D: boolean@.robot := .Models.objects.robot.create(@)@.container := .Models.objects.Container.create(@)

    这样自主移动机器人就做好啦!是不是很简单!生成一个试一试。

    接下来是第二个问题,机械臂怎么运动?

    这里就需要使用moveToCoordinate了。

    robot._3D.Poses.moveToCoordinate(Coordinate:length[3], Rotation:real/real[4][, TimeSpan:time]) -> time 

    输入要移动的坐标点给机械臂就可以了。为了方便操作,在agv上面封装两个method来进行上下料,分别是loadPart、unloadPart。这两个method会根据物料和工台的情况自动计算位置点,需要机械臂运行的时候,调用就可以了。

    具体的封装可以看模型。这里贴一下unloadPart的代码,loadPart也类似。

    param des:objectvar offsetdis := 0.5mvar agv:= self.~agv.ocuupied := trueif agv.robot._3D.Poses.isMovingTo("homepos")  agv.robot._3D.Poses.cancelMovement("homepos")endvar d := agv.getpos(agv.container.cont)var offset_d := d + [0, 0, offsetdis]wait agv.robot._3D.Poses.moveToCoordinate(offset_d ,0)wait agv.robot._3D.Poses.moveToCoordinate(d ,0)agv.container.cont.move(agv.robot)d := agv.getpos(des)offset_d := d + [0, 0, offsetdis]wait agv.robot._3D.Poses.moveToCoordinate(offset_d, 0)wait agv.robot._3D.Poses.moveToCoordinate(d, 0)agv.robot.cont.move(des)agv.ocuupied := falseagv.robot._3D.Poses.moveTo(["homepos"])

    波哥定义了一个homepos作为机械臂的默认位置点,方便机械臂恢复默认位置。

    查看一下效果

    Plant Simulation 自主移动机器人

  • 相关阅读:
    矩阵分析与应用
    阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)
    【IDEA】使用idea调试时查看对象集合的值
    2022杭电多校第三场题解
    深度之眼(十七)——Python标准库
    04. JAVA注解机制
    VoLTE基础自学系列 | IMS网络概述
    关于vue的Layout跳转
    在 IntelliJ IDEA 中远程部署 Java 程序
    stm32_标准库_中断_按键点灯|蜂鸣器
  • 原文地址:https://blog.csdn.net/cqzhaodaxio/article/details/125540279