PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 89171|回复: 0

ABB机器人语音控制码垛

[复制链接]
发表于 2024-3-18 10:26:27 | 显示全部楼层 |阅读模式
更多内容请点击上方 ABB机器人实战技巧 关注

也可点击公众号下方 往期经典 浏览更多内容

转载请先后台留言,大家一起支持原创,推动机器人使用和发展

本公众号对各类ABB机器人应用,仿真,毕业设计提供技术支持,详细后台留言

本公众号诚挚希望与各机器人培训机构,机器人使用单元合作,提供技术支持,详细后台留言

video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_990256401266212864

要打开声音听哦!!!!

抓取和放置的位置都是实时接受语音控制哒哒~~~~

点击阅读原文,获取完整机器人,c#代码和完整语音控制机器人c#编程教学视频,机器人编程教学视频

[img=370.703pt,215.65pt]https://mmbiz.qpic.cn/mmbiz_png/RZ5RadbLaf4FJV4Ssj6jFcfpYibWHZ8T8WziaQEAQKXeplo9gS8pCV2gictic8urrAB6u3CUriadPsu4gWT95XKVqtQ/640?wx_fmt=png[/img]

1. 实现以上内容,可以在C#端借助PCSDK。

2. 通过pcsdk,连接机器人,并对相应变量赋值

private void listView1_DoubleClick(object sender, EventArgs e)       {           //双击机器人信息,用DefaultUser登录           ListViewItem item = this.listView1.SelectedItems[0];           if (item.Tag!= null)           {               ControllerInfo controllerInfo = (ControllerInfo)item.Tag; if               (controllerInfo.Availability == Availability.Available)               {                   if (this.controller != null)                   {                       this.controller.Logoff(); this.controller.Dispose();                       this.controller = null;                   }                   this.controller = ControllerFactory.CreateFrom(controllerInfo);                   this.controller.Logon(UserInfo.DefaultUser);                   MessageBox.Show(controller.Name.ToString()+"系统 登录成功");               }               else               {                   MessageBox.Show("Selected controller not available.");               }           }       }

  //以下为对pick_no和place_no变量赋值 case "Number one":        using (Mastership m = Mastership.Request(controller.Rapid))                   {                       if (flag1 == true)                       {                           //如果选择pick(flag1为true),则对Module1模块下的pick_no变量赋值                           RapidData rd1 = controller.Rapid.GetRapidData("T_ROB1", "Module1", "pick_no");                           //获取变量pick_no                           ABB.Robotics.Controllers.RapidDomain.Num rdreg7 = (ABB.Robotics.Controllers.RapidDomain.Num)rd1.Value;                           //把变量rd1的value转化为num型(abb机器人变量类型)                           rdreg7.FillFromString2("1");//对变量赋值                          rd1.Value = rdreg7;                       }                       else                       {                           //如果选择place(flag1为false),则对Module1模块下的place_no变量赋值                           RapidData rd1 = controller.Rapid.GetRapidData("T_ROB1", "Module1", "place_no");                           ABB.Robotics.Controllers.RapidDomain.Num rdreg7 = (ABB.Robotics.Controllers.RapidDomain.Num)rd1.Value;                           rdreg7.FillFromString2("1");                           rd1.Value = rdreg7;                       }                   }

3. 为实现语音识别功能,可以借助c#的System.Speech库(右击添加引用,搜索speech)

[img=415.3pt,251.35pt]https://mmbiz.qpic.cn/mmbiz_png/RZ5RadbLaf4FJV4Ssj6jFcfpYibWHZ8T8YWVfEYYnt2uZsNv6j74lGHDBTn2GOPMvzazhIIdptydwJOiaHw64SSw/640?wx_fmt=png[/img]

[img=231.0pt,245.25pt]https://mmbiz.qpic.cn/mmbiz_png/RZ5RadbLaf4FJV4Ssj6jFcfpYibWHZ8T8bne51icexqMCPrHOJSuPjarj9Z5MtEgXYTVzhW2GpsYqE384hKJbVQA/640?wx_fmt=png[/img]

4. 添加相关语音训练语句

SRE.SetInputToDefaultAudioDevice(); GrammarBuilder GB = new GrammarBuilder();GB.Append("Number"); GB.Append(new Choices(newstring[] { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "stop" }));//设置语音训练模型,识别Numer+数字,比如得到结果 Number one  Grammar G = new Grammar(GB); G.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(G_SpeechRecognized);SRE.LoadGrammar(G);SRE.RecognizeAsync(RecognizeMode.Multiple); //<=======异步调用识别引擎,允许多次识别(否则程序只响应你的一句话)
5. RAPID添加如下流程语句
WHILE reg2<7 DO            WaitUntil pick_no<>0 and place_no<>0;            !pick_no and place_no will getfrom PC, before cycle run and after cycle run, both data will set0            rPick pick_no;            ! call rPick routine, use pick_no to set parameter            rPlace2 place_no;            reg2:=reg2+1;            !pick_no:=pick_no+1;            pick_no:=0;            place_no:=0;        ENDWHILE

********************************

如何获取更多经典文章?

点击阅读原文,获取完整机器人,c#代码和完整语音控制机器人c#编程教学视频,机器人编程教学视频

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-4-27 16:57 , Processed in 0.043455 second(s), 26 queries .

快速回复 返回顶部 返回列表