資料介紹
描述
系列介紹
本系列文章的重點是基于可在所有機器人中重復使用的服務創建可擴展的面向對象的模塊化軟件架構,而無需在每次創建新機器人時都從頭開始。
也許開始使用機器人技術的最具成本效益的方法是使用您可以在任何電子商務(全球速賣通、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機器人面具檢測器開源分享
- 中國商用服務機器人行業簡析 1次下載
- Arduino機器人螞蟻
- ARLOK arduino機器人
- 基于Arduino系統拉線墻畫機器人設計制作 12次下載
- 魔方機器人(三)Arduino
- 面向機器人的三維形狀多層次局部匹配算法 18次下載
- 機場視覺移動服務機器人的設計方案 27次下載
- 主從異構手術機器人的運動誤差如何進行分析 3次下載
- Arduino教學機器人的使用教程免費下載 38次下載
- Arduino開發機器人經典書籍推薦Arduino開發實戰指南:機器人卷
- 機器人設計教程之機器人控制和決策子系統 25次下載
- 機器人自適應監控架構與服務方法 0次下載
- 面向服務架構在SCADA中的應用 22次下載
- 面向信號與面向服務SOA混合架構設計方法 709次閱讀
- 面向信號與面向服務SOA混合架構設計方法 790次閱讀
- 玩嗨OpenHarmony:基于OpenHarmony的智能助老服務機器人 2035次閱讀
- SOA面向服務架構介紹 1378次閱讀
- 如何使用Arduino制造一個自動平衡機器人 4833次閱讀
- 面對疫情 醫療機器人能幫上什么忙? 2236次閱讀
- dfrobotDevastator履帶機器人移動平臺簡介 1658次閱讀
- 服務機器人市場需求及前景分析 8645次閱讀
- 服務機器人的應用及市場規模 2180次閱讀
- 一文看懂服務機器人發展前景 2608次閱讀
- 服務機器人功能有哪些 6363次閱讀
- 服務機器人的種類及未來的發展趨勢 3883次閱讀
- 醫用機器人的定義_醫用機器人發展 3257次閱讀
- 焊接機器人編程好學嗎_前景怎么樣 1.6w次閱讀
- 基于STM32的家庭服務機器人系統工作原理及設計 1.4w次閱讀
下載排行
本周
- 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次下載 | 免費
評論