【WEB前端2024】智体OS:poplang编程控制成本小千元的长续航robot机器人底盘(开源)

【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、远程控制能力(可实现全球的实时远程网络控制——包含实时语音图像传输)。

摘录自下文的高能语句:

我们可命名它为“行者”机器人。出差旅行、探亲,你可人身不动,你的行者机器人分身可瞬移至星球的任意角落。只要它出现的地方,就是你灵魂分身出现的地方!

以下是实物效果图:

1.jpg

注:本机器人底盘真的就是一个平衡车!——但它已经长了眼睛、耳朵(还是顺风耳、千里眼)。

我们看看如何在dtns.connector上实现机器人的远程控制功能:

第一步:创建一个群聊,名为“机器人”,以用于“实时画面、实时语音”的传输

1.png

进入该群聊后,点击右下角的+号按钮,可看到第一排有个“视频聊天”,点击进入

2.png

点击视频聊天的“开始”按钮(如下图所示),开始语音和视频聊天(可实现远程语音与画面的实时传送)

4.png

注:右侧的对方的视频,即是平衡车上的群聊视频对话的摄像头内容。

第二步:在头榜页面找到“可视化控制智能平衡车-机器人(反方向行驶)”的xverse轻应用

5.png

点击右上角…,进入头榜编辑器,点击下方的“编辑xverse轻应用源码”(如下图所示)

6.png

进入到3D场馆的编辑器,控制滚动球移动玩家视角,使之正对着“正立方体”如下图:

7.png

点击右侧属性面板下方的“脚本”编辑,进入poplang代码编辑器(如下图所示)

8.png

注:我们从上图看到了一个不超过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轻应用,进行机器人底盘的实时控制

9.png

点击进入该xverse轻应用(如下图所示)

10.png

点击视频聊天的“开始”按钮,进入与机器人底盘的实时联机视频功能。

11.png

注:右侧的对方的单视频即是机器人底盘传递过来的视频画面。

我们控制它进行前进、左转、右转、后退等,看到实时视频画面发生了变化(如下图所示)

12.png

我们亦可通过手机实现机器人底盘的实时控制(通过dtns.connector德塔世界连接器app),进入刚才的xverse轻应用即可实时控制机器人底盘(如下图所示):

13.png

并且,通过该app,任意用户通过该xverse轻应用,均可实现远程的机器人底盘控制,不论是在星球的任何一个方位或角落。     这点就强大了。我们可命名它为“行者”机器人。出差旅行、探亲,你可人身不动,你的行者机器人分身可瞬移至星球的任意角落。只要它出现的地方,就是你灵魂分身出现的地方!

我们来看看机器人底盘(平衡车机器人)的底层实时控制逻辑:

第一步:编辑dtns.network的nodejs版本的config_roomid.js的g_dev_roomid标识后,运行node app.js实现智体节点的运行

14.png

注:运行这个节点,相当于运行了dtns.network的独立的分支节点,可在上面运行ib3.hub智体节点的相关的机器人底盘控制代码(使用node.js版本主要是须运行机器人网络连接工具adb.exe)

第二步:打开插件代码plugins/rt-phone/index.js,查看robot机器人底盘的控制代码

15.png

注:我们看到上述代码中实现了robotAction函数代码(类似express中的http-controller代码——本质上dtns://协议的api是兼容http-api的——只不过基于webrtc协议实现了新的协议升级和封装——支持了dtns.network任意ib3.hub智体节点的api资源的调用——类似http协议)。

注2:在代码中,我们看到调用了adb_call,执行了shell input swipe 滚动球控制代码。

我们看一下adb_call的代码(如下图所示):

16.png

控制的手机app截图如下图(平衡车蓝牙控制app):

21.jpg

第三步:可通过搜索引擎检索关于adb shell控制手机app的一些帮助文档

17.png

注:这表明了所有的智能硬件设备(只要拥有了安卓app的智能设备),均是可以通过adb进行方便地编程控制的(我们基于node.js版本来进行控制它)。

可见,“行者”机器人的未来想像空间是无限的。只要你有想像力,就可以控制该机器人实现前所示有的能力。比方说自动驾驶、自动巡航、货运送货、商务会谈、访亲访友、远程旅游度假(1小时玩遍整个地球)。如果还有想像力,还可以有物业巡逻、公园巡查、安保服务等等商业用途。

总结:我们策划并实现了一整套的小千人超实用“机器人底盘”智体OS硬件和控制代码。成本超低,兼容性超强(使用javascript编程语言和poplang智体编程语言——1句话语法、入门1分钟)、续航能力超强、载重能力大(100KG)、可发挥的强大越野性能。

注:dtns.network德塔世界(开源的智体世界引擎)是在github和gitee上开源的项目!

注2:提供了丰富的智体OS组件的pop.os,是面向“智体编程”的开源操作系统!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/24950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页文档下载不了怎么办 网页文档下载方法

一个方法,搞定所有网页文档下载。如果你也需要从网页下载各种文档,那么本文一定可以帮到你。无须充值会员,各大平台文档下到爽。看到就是赚到,还不赶快学起来。有关网页文档下载不了怎么办,网页文档下载方法的问题&…

端午与高考的交汇点:家的温暖与梦想的起点

当端午节的粽香弥漫在街头巷尾,高考的脚步也悄然而至。这两个看似毫无关联的时刻,却在每年的六月,奇妙地交汇在一起,为我们带来了一段特别的记忆。这不仅是家的温暖与梦想的起点相遇的时刻,更是传统文化与现代追求共融…

Redis进阶知识个人汇总

持久化 三种方式实现它的持久化: RDB持久化 全称Redis数据备份文件,又称Redis数据快照 这种就是将Redis内存中所有数据记录到磁盘中,当实例出故障后,从磁盘中读快照文件进行恢复数据。 一般使用bgsave指令实现 复制主线程得到一…

记一次源码部分丢失后补救过程

起因 最近植物大战僵尸杂交版玩的入迷,写了一个“神奇”小工具,来辅助游戏。用Git新建一个库,想把代码备份到GitHub,结果push错库了,无奈reset,结果把本地项目一起reset了,结果就是源代码丢失。…

k8s——secret配置资源管理

一、Secret 1.1 Secret定义 Secret是用来保存密码、token、密钥等敏感数据的k8s资源,这类数据虽然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。 1.2 Secret类型 kubernetes.io/service-ac…

D365 通过x++创建销售订单

文章目录 创建销售订单 创建销售订单 SalesTable salesTable; SalesLine salesLine; NumberSeq numberSeq;ttsBegin; //creating sales order header //getting sales order id from number sequence numberSeq NumberSeq::newGetNum(SalesParameters::numRefSalesId()); num…

w801编程入门:探索高效与创新的编程之旅

w801编程入门:探索高效与创新的编程之旅 在数字化快速发展的今天,编程已经成为一项必备的技能。而w801编程,作为新兴的编程领域,正以其高效和创新的特点吸引着越来越多的开发者。本文将带领您从四个方面、五个方面、六个方面和七…

SpringBoot+Vue网上超市系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 系统角色对应功能 用户管理员 系统功能截图

03-3.3.3 栈在递归中的应用

👋 Hi, I’m Beast Cheng👀 I’m interested in photography, hiking, landscape…🌱 I’m currently learning python, javascript, kotlin…📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以订…

为你的网站安装免费的 SSL TLS 证书

文章目录 前言准备工作证书申请证书安装Nginx配置 前言 申请了很久的域名没有用起来怎么行呢?而访问安全需要获得一个可信的https证书颁发机构的认证,这其实是一个提升你网站可信度的方法,有很多的证书颁发机构,收费也高低不等&a…

利用Redis的队列模式实现消息的发送和订阅,适合分布式场景,Java实现代码

在Redis中,通常使用发布/订阅模式(Pub/Sub)来进行消息的实时通信。然而,标准的Redis发布/订阅模式并不直接支持确保一条消息只被一台机器消费。在这种模式下,所有订阅了特定频道的客户端都会收到发布的消息。 但是&…

Cesium项目报错An error occurred while rendering. Rendering has stopped.

一般就是本地打开会报错,改成用本地服务器打开 全局安装一个live-server sudo cnpm i live-server -g然后新增一个package.json文件 npm init -y然后在package.json的scripts中增加一个命令 "server": "live-server ./ --port8181 --hostlocalhos…

AI图书推荐:用ChatGPT来写非虚构类书籍

这本书《用ChatGPT来写非虚构类书籍 》(ChatGPT For KDP_ A manual from an experienced self-publisher to nonfiction authors for writing the book you were born to write with ChatGPT prompts mastering)是一本专为非虚构类书籍作者编写的指南&am…

实习记录2

1.flowable框架参数传递大概流程 通过传递xml,传递到后端,然后后端去解析 2.vue封装组件 在 Vue.js 中创建可复用的自定义组件是一个常见的需求,这样可以提高代码的复用性和可维护性。下面是一个简单的步骤指南,帮助你创建一个…

MLC工具是否适用AMD和ARM场景?如何测试内存性能?

MLC(Memory Latency Checker)主要是由Intel开发的工具,主要用于Intel平台上的内存性能测试,尤其是针对Intel处理器的内存延迟和带宽。尽管MLC主要针对Intel处理器设计,理论上它可以在任何支持Intel兼容指令集的系统上运…

嵌入式linux系统中利用I2C控制器应用开发详解

大家好,今天主要给大家分享一下,在linux系统上如何使用I2C进行应用开发详解。 l2C (Inter一Integrated Circuit BUS)是I2C BUS简称.中文为集成电路总线.是目前应用最广泛的总线之一。和IMX6ULL有些相关的是.刚好该总线是NXP前身的PHLIPS 设计。 第一:I2C协议概述 …

Spring框架IoC和AOP

Spring是一个开源的Java应用程序框架,旨在简化企业级应用程序的开发。它注重解决Java开发中的常见问题,如依赖注入、面向切面编程、事务管理等。Spring提供了一个轻量级的容器,用于管理和装配应用程序的对象。 Spring框架具有以下特点和优势…

xml 取值错误 #{} boolean 一直为 false

取值时 #{param.msgStatus} 一直是false&#xff0c;java代码里面显示true。 <select id"findPageOaReading" resultType"com.focusin.data.office.func.dto.ProcessMessageInfoDTO">select i.*, t.template_name procdefNamefrom process_message_…

西瓜书总结——决策树原理+ID3决策树的模拟实现

西瓜书总结——决策树原理ID3决策树的模拟实现 前言1. 决策树结构2. 决策树的生成&#xff08;注意区分属性和类别&#xff09;3. 划分选择3.1 信息熵和信息增益3.2 增益率3.3 基尼指数&#xff08;鸡你指数&#xff09; 4. 剪枝处理4.1 预剪枝4.2 后剪枝 5. 连续值与缺失值处理…

二分+模拟,CF1461D - Divide and Summarize

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1461D - Codeforces 二、解题报告 1、思路分析 我们发现每次分裂操作结果都是固定的 我们从初始序列分裂出两个确定的子序列&#xff0c;两个确定的子序列又分裂出4个确定的子序列 那么也就是说…