更多内容请点击上方 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#编程教学视频,机器人编程教学视频 |