EGM提供三种不同的功能:
Location flow EGM:
RAPID任务中机械结构单元的当前和计划进行位置发送至外部管理系统。
加快以250Hz的(4ms的*快的一个点)
EGM location guide:
相关研究机器人发展不会沿RAPID中的编程路径进行移动,而是沿某件外部装置所生成的路径移动。(即可以变相实现企业外部路径可以直接管理规划)
机器人可以接受xyzabc笛卡尔坐标或a1-a6关节坐标
*快能达到4ms
Extraordinary General Meeting path correction:
用某件外部控制装置可以提供的测量值来修改/校正所编写的机器人发展路径。
速度为48ms的倍数
EGM 相关问题选项进行介绍见 ABB机器人EGM外部引导学生选项介绍
高速可以通过UDP和PC临时股东大会之间建立通信,请参阅ABB机器人的具体实施突发黑色&
ABB机器人炸裂黑科技 一文主要介绍了使用一个指令EGMStreamStart,机器人技术高速向PC发送不同位置的方法,若要学生通过PC进行数据实时管理控制,即使用EGM Position Guidance实现信息闭环系统控制(PC实时接受教育机器人发展位置以及反馈值并发送新位置给机器人,速度增长*快可达4ms),如何能够实现?
可以同时通过EGMActPose指令开启设置,具体分析解释方法如下:
EGMActPose egmID1 \ tools: = MyTool, corr_
! 修正进行数据可以基于World坐标系,
! *大关节速度°60/s.
!设置XYZ态度和停止辐合区
通过EGMRunPose来开启中国机器人发展运动,使用该语句时,机器人会先输出我国当前教育机器人工作位置并接受PC返回的UDP数据,即使用该指令后,无需再使用EGMStreamStart指令系统进行分析数据信息发送。
EGMRun hose egmID1,EGM_STOP_HOLD\x\y\z\CondTime:=1\0.05;
! 仅接受xyz数据
!要接受姿态数据,也可以添加\ RX \ RY \ RZ
! 达到一个位置收敛域后还需要社会稳定1s
C#端子,接收UDP数据到机器人之后,实现了视频的效果,记录位置可在位置的MouseDown减法和分配给实时EGM使机器人运动的运动之后是的MouseDown和鼠标位置,
Void CreateSensorMessage (EgmSensor.Builder sensor)
{
// create a header
Egam Hyde. New EgmHeader. hdr= builders Building ();
hdr.SetSeqno(_seqNumber++)
.SetTm ((UINT) DateTime.Now.Ticks)
.SetMtype(EgmHeader.Types.MessageType.MSGTYPE_CORRECTION);
sensor.SetHeader (HDR);
// create some sensor data
EgmPlanned.Builder planned = new EgmPlanned.Builder();
EgmPose.Builder POS = new EgmPose.Builder ();
Like quaternions. builders PQ= new Egm quaternions. Building ();
EgmCartesian.Builder PC = new EgmCartesian.Builder ();
//364.6839,2.01102E-28,368.9905
if (Form1.bCatch == true)
{
//如果鼠标按下形式,然后发送当前鼠标位置差值给机器人的MouseDown
pc.SetX(robot_x + 0.5*(Form1.NewPoint.Y-Form1.DownPoint.Y))
.SetY (robot_y + 0.5 * (Form1.NewPoint.X-Form1.DownPoint.X))
.SetZ(368);
}
else
{
//如果没有的MouseDown,直接返回机器人的位置
pc.SetX(robot_x1)
.SetY(robot_y1)
.SetZ(368);
}
pq.SetU0(1.0)
.SetU1(0.0)
.SetU2(0.0)
.SetU3(0.0);
// 发送姿态数据
pos.SetPos(pc)
.SetOrient (PQ);
Planned. Sets the Descartes (pos);/bind pos object to a plan object
sensor.SetPlanned (plan); // Bind the proposed sensor objects
return;
}
以下问题为主进行程序,其中CreateSensorMessage为上位系统实现教学方法。
public void SensorThread()
{
// Create a ud p client and listen for any address or port ipPortNumbe.
_udpServer = new UdpClient (_ipPortNumber);
var Remote EP= New IP End Point (IPAddress). (ipPortNumber);
while (_exitThread == false)
{
// 从机器人获取数据
Variable data = udpServer._ (a) Receive (refer to remote EP);
if (data != null)
{
// deserialize inbound message from the robot
robot robot = robot. Create a generator (). merged from (data). Construction ();
// display inbound message
DisplayInboundMessage (robot);
// Create new outbound sensor messages
EgmSensor.Builder sensors = EgmSensor.CreateBuilder ();
CreateSensorMessage(sensor);
Using (MemoryStream MemoryStream of the = new MemoryStream ())
{
sensor information = sensor. Construction ();
sensorMessage.WriteTo (MemoryStream a);
Console. write line (sensor message). (());
//send the udp message to the robot
INT bytesSent = _udpServer.Send (memoryStream.ToArray (),
(INT) memoryStream.Length, remoteEP);
If (bytesSent <0)
{
Console.WriteLine(“Error send to robot“);
}
}
}
}
}
PC作为服务器来启动,然后你就可以开始机器人。
了解更多ABB机器人