【WEB前端2024】智体OS:poplang编程控制成本小千元的长续航robot机器人底盘(开源)
前言:dtns.network是一款主要由JavaScript编写的智体世界引擎(内嵌了three.js编辑器的定制版-支持以第一视角游览3D场馆),可以在浏览器和node.js、deno、electron上运行,它是一个跨平台的软件,支持多个操作系统使用!并且支持使用内置的poplang智体编程语言实现3D智体编程——语法超简单,一句话语法,人人轻松上手!
在智能化时代,机器人底盘是一个强需求。有人形的、动物形态的(如机器狗、六足蜘蛛、鸟状、蛇形)、4轮形态的、2轮形态的、4翼-6翼的无人机形态的。总体而言,成本都非常高,对于想要学习机器人开发的朋友来说,机器人底盘就是一个非常大的成本。
我们在拼多多等电商平台看到,1个可编程的2轮机器人底盘,即需要350元以上。并且续航是比较低的(由于是小型机器人底盘,一般只有5-10厘米大小,所能带的电池容量非常有限、载重能量基本小于500克)。
基于pop.os(或称dtns.os)的智体OS,我们可以轻松实现各种控制代码的无代码或使用自然语言进行一句话编程(poplang编程语言——使用类似中文一样的自然语言编程),即可实现复杂的系统的UGC式控制。并且天然的开源开放。允许社区用户可以轻松的获取各类xverse-3D轻应用源码或2D轻应用源码,然后简单配置即可实现自己想要的功能。非常适合机器人的开发。
由于pop.os和poplang开发机器人的便捷性。我们决定自己来定制一个成本小于1000元的机器人底盘。并且这个底盘具备高可用性、长续航(不少于10千米)、大电池、载重能力强(100公斤)。并且需具备容易获取,容易开发、容易使用的特点。
pop.os机器人底盘,采购的物料成本:
1、“领奥”三控平衡车1台(须具备app滚动球控制——方便与xverse-3D轻应用使用滚动球系统进行编程控制):购买价678元/辆
2、手机和平板床头支架1个:10.8元
共计:688.8元(数字真吉利)
实现的功能:
1、通过dtns.connector德塔世界连接器(app或网页)【实时控制】机器人前进、后退、左转、右转。
2、实现机器人底盘的【实时画面】【实时语音】传输。
3、远程控制能力(可实现全球的实时远程网络控制——包含实时语音图像传输)。
摘录自下文的高能语句:
我们可命名它为“行者”机器人。出差旅行、探亲,你可人身不动,你的行者机器人分身可瞬移至星球的任意角落。只要它出现的地方,就是你灵魂分身出现的地方!
以下是实物效果图:
注:本机器人底盘真的就是一个平衡车!——但它已经长了眼睛、耳朵(还是顺风耳、千里眼)。
我们看看如何在dtns.connector上实现机器人的远程控制功能:
第一步:创建一个群聊,名为“机器人”,以用于“实时画面、实时语音”的传输
进入该群聊后,点击右下角的+号按钮,可看到第一排有个“视频聊天”,点击进入
点击视频聊天的“开始”按钮(如下图所示),开始语音和视频聊天(可实现远程语音与画面的实时传送)
注:右侧的对方的视频,即是平衡车上的群聊视频对话的摄像头内容。
第二步:在头榜页面找到“可视化控制智能平衡车-机器人(反方向行驶)”的xverse轻应用
点击右上角…,进入头榜编辑器,点击下方的“编辑xverse轻应用源码”(如下图所示)
进入到3D场馆的编辑器,控制滚动球移动玩家视角,使之正对着“正立方体”如下图:
点击右侧属性面板下方的“脚本”编辑,进入poplang代码编辑器(如下图所示)
注:我们从上图看到了一个不超过50行的代码(如上图所示),里面使用了pop.func.define定义函数过程,其中定义了3d_move回调函数,用于接收avatar的玩家移动的实时数据,使用3d_move_event传递了turn和forward数据(转向、前进)。以便判断用户通过滚动球控制的是机器人底盘前进或转向。并且通过goNow和turnNow实现前进方向或转向方向的判断(前进或后退、左转或右转)。最终在left、right、move、back函数中,调用了dtns://协议的api:/rtphone/robot/action?action=left、right、move、back。
注2:轻轻松松,通过3D-xverse轻应用的poplang代码,即可实现对机器人底盘的控制。这是dtns.network和pop.os智体OS对可编程的智能化实体(智体硬件)的强大支撑能力——包含了dtns://协议、poplang编程语言、dtns.connector、dtns.network和pop.3d.creator、rtc实时通讯通道等组件的支持。从而使得智体编程变得异常简单和方便。
注3:最后2行代码
set chatid msg_chat02G7TLu59Tzs
$.g_3d_show_rtcchat chatid
即在3D场馆游览器中显示rtcchat.vue实时视频聊天界面,以便接收远程机器人的实时画面和语音信息。并将控制人的语音信息传递至远程机器人底盘。这里通过chatid指定了“机器人群聊”为房间号。
第三步:回到头榜点击进入该xverse轻应用,进行机器人底盘的实时控制
点击进入该xverse轻应用(如下图所示)
点击视频聊天的“开始”按钮,进入与机器人底盘的实时联机视频功能。
注:右侧的对方的单视频即是机器人底盘传递过来的视频画面。
我们控制它进行前进、左转、右转、后退等,看到实时视频画面发生了变化(如下图所示)
我们亦可通过手机实现机器人底盘的实时控制(通过dtns.connector德塔世界连接器app),进入刚才的xverse轻应用即可实时控制机器人底盘(如下图所示):
并且,通过该app,任意用户通过该xverse轻应用,均可实现远程的机器人底盘控制,不论是在星球的任何一个方位或角落。 这点就强大了。我们可命名它为“行者”机器人。出差旅行、探亲,你可人身不动,你的行者机器人分身可瞬移至星球的任意角落。只要它出现的地方,就是你灵魂分身出现的地方!
我们来看看机器人底盘(平衡车机器人)的底层实时控制逻辑:
第一步:编辑dtns.network的nodejs版本的config_roomid.js的g_dev_roomid标识后,运行node app.js实现智体节点的运行
注:运行这个节点,相当于运行了dtns.network的独立的分支节点,可在上面运行ib3.hub智体节点的相关的机器人底盘控制代码(使用node.js版本主要是须运行机器人网络连接工具adb.exe)
第二步:打开插件代码plugins/rt-phone/index.js,查看robot机器人底盘的控制代码
注:我们看到上述代码中实现了robotAction函数代码(类似express中的http-controller代码——本质上dtns://协议的api是兼容http-api的——只不过基于webrtc协议实现了新的协议升级和封装——支持了dtns.network任意ib3.hub智体节点的api资源的调用——类似http协议)。
注2:在代码中,我们看到调用了adb_call,执行了shell input swipe 滚动球控制代码。
我们看一下adb_call的代码(如下图所示):
控制的手机app截图如下图(平衡车蓝牙控制app):
第三步:可通过搜索引擎检索关于adb shell控制手机app的一些帮助文档
注:这表明了所有的智能硬件设备(只要拥有了安卓app的智能设备),均是可以通过adb进行方便地编程控制的(我们基于node.js版本来进行控制它)。
可见,“行者”机器人的未来想像空间是无限的。只要你有想像力,就可以控制该机器人实现前所示有的能力。比方说自动驾驶、自动巡航、货运送货、商务会谈、访亲访友、远程旅游度假(1小时玩遍整个地球)。如果还有想像力,还可以有物业巡逻、公园巡查、安保服务等等商业用途。
总结:我们策划并实现了一整套的小千人超实用“机器人底盘”智体OS硬件和控制代码。成本超低,兼容性超强(使用javascript编程语言和poplang智体编程语言——1句话语法、入门1分钟)、续航能力超强、载重能力大(100KG)、可发挥的强大越野性能。
注:dtns.network德塔世界(开源的智体世界引擎)是在github和gitee上开源的项目!
注2:提供了丰富的智体OS组件的pop.os,是面向“智体编程”的开源操作系统!