资料介绍
描述
系列介绍
本系列文章的重点是基于可在所有机器人中重复使用的服务创建可扩展的面向对象的模块化软件架构,而无需在每次创建新机器人时都从头开始。
也许开始使用机器人技术的最具成本效益的方法是使用您可以在任何电子商务(全球速卖通、banggood等)上购买的智能机器人汽车。但当然,购买它是最简单的部分......您不需要专门购买,即使有了智能机器人汽车的描述,您也会发现许多不同的变体。我将为您使用此套件获得的所有最常见模块创建“服务”,因此您可以选择您需要的服务,并将它们一起使用来创建您自己的智能机器人,而无需从头开始对每个机器人进行操作你做。
指数
这是我将要创建的泰博机器人服务系列或文章的索引。
关于硬件
为了能够阅读本文,您可能至少需要对面向对象范例有所了解,如果可能的话,使用 C++。但我对 C++ 了解不多,但仍然这样做,所以我认为你也能做到。
我将以您可以从任何电子商务获得的廉价硬件为基础提供服务。你会看到我提到了 Arduino 智能机器人汽车。不过,我现在不使用该机器人进行测试(我将来可能会),但 RoboSoul TK-100 更坚固一些,但另一方面,当它撞到某物时,结果更破坏性的。
该软件被认为是尽可能可扩展的,这就是为什么您应该能够使用任何可用的硬件。对于其中一些,您会在这里找到可以重用的服务,而对于其他一些,您可能需要为您的特定硬件实现特定服务。这将非常容易,如果您决定在那之后更改硬件,您需要对机器人的主要代码进行的更改将是最小的。
关于架构
我会尽量用最新的类图更新这篇文章,因此它可以作为代码中每个可用服务的参考。您会发现它附在本文中。
创建基础服务
由于主要思想是基于相同的面向对象架构创建许多服务,因此我们首先需要定义该架构是什么。
“服务”基类
首先,我们要记住,我们希望能够为您添加到项目中的每个硬件模块添加一个服务。那么,什么是一个好的服务主类?我们希望能够:
- 启用/禁用任何服务
- 使其冗长(以了解其中发生了什么以进行调试)
- 允许服务做一些设置
- 允许服务在每次循环迭代时运行一些更新代码
现在,仅此而已。将根据我们正在构建的服务类型添加更多详细信息。所以基础服务类的头文件(Service.h)将是这样的:
#pragma once
#include "arduino.h"
namespace Taibot
{
class Service
{
public:
// isEnabled: Enables/Disables the Service
// isVerbose: Activates the logging output to Serial
Service(bool isEnabled, bool isVerbose);
// Use this method to know if the driver is enabled or not
bool IsEnabled();
// Use this method to know if the logging is is enabled or not before writing logs
bool IsVerbose();
// Enables/Disables the driver
void SetEnabled(bool isEnabled);
// Enables/Disables the logging
void SetVerbose(bool isVerbose);
// Needs to be implemented by every service, so we keep a convention
virtual void Setup() = 0;
// Needs to be implemented by every service, so we keep a convention
virtual void Update() = 0;
private:
// Enable/Disable the service
bool _isEnabled = false;
// Enable/Disable serial output for debugging
bool _isVerbose = false;
};
};
它的实现(Service.cpp)是这样的:
#include "Service.h"
using namespace Taibot;
Service::Service(bool isEnabled, bool isVerbose)
{
_isEnabled = isEnabled;
_isVerbose = isVerbose;
}
bool Service::IsEnabled()
{
return _isEnabled;
}
bool Service::IsVerbose()
{
return _isVerbose;
}
void Service::SetEnabled(bool isEnabled)
{
_isEnabled = isEnabled;
}
void Service::SetVerbose(bool isVerbose)
{
_isVerbose = isVerbose;
}
Service 基类的构造函数强制我们为服务设置启用和详细配置:Service(bool isEnabled, bool isVerbose); 然后你可以看到获取或设置这两个属性的方法。
方法Setup()和Update()在这里没有实现,因为它们需要由继承自该基类的服务实现。在许多情况下,此方法可能什么都不做,但由于我们的想法是允许服务在没有任何外部要求的情况下工作和更新自身,我们应该允许每个服务执行它从 mane 草图文件中要求的任何事情。
这意味着:
- 在草图的 setup() 文件中,您将从您正在使用的服务中调用所有 Setup() 方法。
- 在草图的 loop() 文件中,您将从您正在使用的服务中调用所有 Update() 方法。
一旦我们有自己的实际服务实施工作,我将展示一个例子。
回到服务类非常简单。如您所见,我们正在使用 Taibot 命名空间,只是为了避免与您可能拥有的其他代码发生冲突。
结论
现在,这段代码看起来非常简单,并没有多大用处,但如果您按照其余文章进行操作,您将能够让您的机器人工作,并且拥有一个漂亮的、可扩展的、先进的架构,这对我比有无尽的意大利面条代码。
如果您不理解本文的任何部分、无法使此代码工作、发现错误或有任何建议,请告诉我,我愿意改进它并使其成为任何人的干净代码库想要重用它。
- Arduino机器人
- ARMD机器人面具检测器开源分享
- 中国商用服务机器人行业简析 0次下载
- Arduino机器人蚂蚁
- ARLOK arduino机器人
- 基于Arduino系统拉线墙画机器人设计制作 10次下载
- 魔方机器人(三)Arduino
- 面向机器人的三维形状多层次局部匹配算法 18次下载
- 机场视觉移动服务机器人的设计方案 27次下载
- 主从异构手术机器人的运动误差如何进行分析 3次下载
- Arduino教学机器人的使用教程免费下载 37次下载
- Arduino开发机器人经典书籍推荐Arduino开发实战指南:机器人卷
- 机器人设计教程之机器人控制和决策子系统 23次下载
- 机器人自适应监控架构与服务方法 0次下载
- 面向服务架构在SCADA中的应用 22次下载
- 面向信号与面向服务SOA混合架构设计方法 546次阅读
- 面向信号与面向服务SOA混合架构设计方法 655次阅读
- 玩嗨OpenHarmony:基于OpenHarmony的智能助老服务机器人 1779次阅读
- SOA面向服务架构介绍 1180次阅读
- 如何使用Arduino制造一个自动平衡机器人 4429次阅读
- 面对疫情 医疗机器人能帮上什么忙? 2126次阅读
- dfrobotDevastator履带机器人移动平台简介 1515次阅读
- 服务机器人市场需求及前景分析 8310次阅读
- 服务机器人的应用及市场规模 1950次阅读
- 一文看懂服务机器人发展前景 2519次阅读
- 服务机器人功能有哪些 6106次阅读
- 服务机器人的种类及未来的发展趋势 3725次阅读
- 焊接机器人编程好学吗_前景怎么样 1.6w次阅读
- 基于STM32的家庭服务机器人系统工作原理及设计 1.3w次阅读
- 盘点服务机器人行业的九大关键技术! 4278次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多