1 AGV系统概述

1.1AGV原理

AGV行走控制系统由控制面板、导向传感器、方向电位器、状态指示灯、避障传感器、光电控制信号传感器、驱动单元、导引磁条、电源组成。

AGV的导引(Guidance)是指根据AGV导向传感器(Navigation)所得到的位置信息,按AGV的路径所提供的目标值计算出AGV的实际控制命令值,即给出AGV的设定速度和转向角,这是AGV 控制技术的关键。简而言之,AGV的导引控制就是AGV轨迹跟踪。

AGV导引有多种方法,比如说利用导向传感器的中心点作为参考点,追踪引导磁条上的虚拟点就是其中的一种。AGV的控制目标就是通过检测参考点与虚拟点的相对位置,修正驱动轮的转速以改变AGV的行进方向,尽力让参考点位于虚拟点的上方。这样AGV就能始终跟踪引导线运行。

AGV大体上用于以下三个方面:
  1.物料搬运
  在工业现场AGV常用于工位间或自动仓库与工位间的物料搬运作业。例如在组装线上,AGV从自动仓库取出机器零件并送到相应的组装工位。又如在柔性加工系统中,AGV依照加工工序顺次将被加工工件送到相应自动机床进行加工,加工好的零件由AGV送到质检站测,最后合格品送到半成品库。
  2.移动工作台
  在组装或柔性加工系统中AGV常作为移动工作台使用。以欧美一些汽车厂为例,在轿车组装过程中从汽车底盘焊装组立、安装悬挂系统、车轮和制动系统、安装发动机、变速箱、离合器、安装转向系统、安装汽车外壳、安装风档玻璃和座椅到整车配电等一系列组装过程都是在一台AGV上进行的。又如在欧美一些柴油机厂中,柴油机一系列的组装过程也都是在一台AGV上完成的。
  3.与机器人或机器手配合在特殊工作环境下代替人工作业
  在AGV上可以安装机器人或机器手,在特殊工作环境下代替人工作业。例如在核电站中代替人在具有放射线的工作环境下进行遥控作业。

2、AGV上位机部分

以C++代码编写,通过RS232与AGV网关通讯,内置AGV调度控制逻辑以及算法,通过以太网连接至MES系统,达到对AGV定点控制,路径规划监控。

AGV的系统拓扑图大致如下:

3、AGV控制代码的编写和分析

串口通讯代码编写设置串口号,并选择波特率为115200

void CMainDlg::OnBtnSerialPort() // 左上角icon按钮

{

if (simpleCom->IsOpen())

{

simpleCom->Close();

}

else

{

SComboBox* pComboBox = FindChildByName2<SComboBox>(L"cbx_test");

int nItem = pComboBox->GetCurSel();

if (nItem == -1)

return;

int data = pComboBox->GetItemData(nItem);

simpleCom->Open(data, 115200);

}

bool bOpen = simpleCom->IsOpen();

SWindow *pButton = FindChildByName(L"btn_serialport");

if (bOpen)

{

pButton->SetWindowTextW(L"已连接");

}

else

{

pButton->SetWindowTextW(L"连接");

}

}

/**************************/

//判断串口是否连接

bool bOpen = simpleCom->IsOpen();

SWindow *pButton = FindChildByName(L"btn_serialport");

if (bOpen)

{

pButton->SetWindowTextW(L"已连接");

}

else

{

pButton->SetWindowTextW(L"连接");

}

m_bLayoutInited = TRUE;

return 0;

}

按键相应控制

/**************************/

//AGV前进响应函数

void CMainDlg::OnBtnMoveFront()

{

//判断串口是否已连接

bool bOpen = simpleCom->IsOpen();

if (bOpen == false)

{

ShowMessageBox(L"请连接串口");

return;

}

int flag = 1;

SEdit* pComboBox = FindChildByName2<SEdit>(L"edt_agvinfo");//找到控件

int agvid = _ttoi(pComboBox->GetWindowTextW());//转换为ID号

SSliderBar* pSliderBar = FindChildByName2<SSliderBar>(L"slider_test");//找到控件

int value = pSliderBar->GetValue();

int left = 0;

int right = 0;

switch (flag)

{

case 1:

left = right = value;

break;

case 2:

left = value;

break;

case 3:

right = value;

break;

case 4:

left = right = (value*-1);

break;

default:

break;

}

simpleRobot->cmdRemoteMode(agvid, left, right);

}

基于C++的AGV机器人无线控制相关推荐

  1. 基于C++的AGV机器人无线控制实现

    AGV系统概述 AGV原理 AGV行走控制系统由控制面板.导向传感器.方向电位器.状态指示灯.避障传感器.光电控制信号传感器.驱动单元.导引磁条.电源组成. AGV的导引(Guidance)是指根据A ...

  2. 基于单片机的地铁(公交)无线控制报站系统设计 地铁报站系统设计 公交报站系统设计

    系统设计前言 基于单片机的地铁(公交)无线控制报站系统设计是酷毕啦电子设计室报站系列的无线控制版本,无线控制的特点是布线少.控制方便等功能,体现出物联网控制的技术.介于大部分需求的群体都是本科设计,所 ...

  3. Android楼梯清扫机器人上位控制系统设计

    一.毕业设计(论文)的技术背景和设计依据: 机器人在社会生产和服务行业的应用非常广泛,极大提高了社会劳动生产率,极大改善人们的生活状况.它是在人为设定的可编程程序控制下,按照特定作业程序和作业规范,完 ...

  4. ​AGV机器人:基于视觉避障的理论基础

    来源丨新机器视觉 点击进入->3D视觉工坊学习交流群 AGV(Automated Guided Vehicle)简介: 美国供应链管理专业协会对AGV的定义:自动导引小车,是指装备有电磁或光学等 ...

  5. android 两足机器人,基于Android的双足机器人语音控制系统研究

    摘要: 随着智能终端的快速普及和移动互联网的高速发展,人们通过一部手机连接整个世界的目标似乎已经实现.进入二十一世纪后,人工智能是科技领域绕不开的一个主题.虽然当下对于人工智能的研究或应用还都处于初级 ...

  6. 基于HC-05蓝牙模块的STM32无线控制智能系统硬件开发

    本文主要面向刚开始接触嵌入式开发的小白,详细介绍如何搭建基于蓝牙的STM32无线控制硬件平台,蓝牙模块使用淘宝上的HC-05串口转蓝牙模块,开发板使用基于STM32F407的航发RH407. 实验器材 ...

  7. [论文]基于强化学习的无模型水下机器人深度控制

    基于强化学习的无模型水下机器人深度控制 摘要 介绍 问题公式 A.水下机器人的坐标框架 B.深度控制问题 马尔科夫模型 A.马尔科夫决策 B.恒定深度控制MDP C.弯曲深度控制MDP D.海底追踪的 ...

  8. 深度学习机器臂控制_基于深度强化学习的机器人手臂控制

    基于深度强化学习的机器人手臂控制 杨淑珍 ; 韩建宇 ; 梁盼 ; 古彭 ; 杨发展 ; 吕萍丽 [期刊名称] <福建电脑> [年 ( 卷 ), 期] 2019(035)001 [摘要] ...

  9. 巡线机器人 - PID控制 - 安卓设置

    巡线机器人 - PID控制 - 安卓设置 原文 该项目的目的是构建具有PID控制的巡线机器人.我们还将使用Android设备轻松设置主要控制参数,以便更好,更快地进行调谐.项目中用到的舵机也可用MG9 ...

最新文章

  1. 云原生安全的一种新方法!
  2. python 打印异常内容_python打印异常信息的两种实现方式
  3. pycharm如何放大字体和缩小字体
  4. css设置title字体_CSS中简写属性要注意TRouBLe的顺序,避免踩坑
  5. java request获取文件_request获取路径方式
  6. 在应用程序中加一个控制台
  7. JavaScript 基本类型的装箱与拆箱
  8. JVM GC调优参数说明
  9. Java中的LinkedHashSet
  10. 关于layui的日期和时间组件LayData时间选择器使用时一闪而过
  11. CH341A编程器驱动下载地址及P751dm2模具设置方法截图
  12. Neokylin基础命令
  13. GROW GM65 条码二维码扫描识别模块 兼容大部分条码和二维码
  14. 【雷达与对抗】【2011.07】穿墙超宽带雷达成像
  15. CodeForces Round #554 Div.2
  16. 大数据学习笔记七(云数据库)
  17. 产品周报第29期|创作中心优化:发文助手新增质量分检测功能,博文增加内容历史版本
  18. 理解裸机部署过程ironic
  19. java位运算符和位运算表达式
  20. day12_继承(继承-抽象类-代码块)

热门文章

  1. 调试抖音App(教程)
  2. AU软件导出mp3为pcm文件
  3. ACM学习:例题完成总结与期中心得
  4. Java 绘制带圆角头像的二维码
  5. JAVA面向对象(OOP)-类和对象
  6. MySQL组件和数据结构
  7. 必修三计算机选修三知识点总结,高二必修三物理知识点总结
  8. Windows 11和安全启动
  9. 安装win11电脑必须支持TPM2.0和必须支持安全启动的解决方法
  10. 打开xshell一直没反应,xshell打开失败的问题