宋佰軒,劉豪龍
(天津理工大學 工程訓練中心,天津 300384)
中藥作為中國傳統醫藥理論指導臨床應用的藥物,用于預防、治療、診斷疾病具有顯著作用,而要繼承傳統醫學,不但要有嫻熟的醫術,還要將多種多樣的中藥材熟練區分。藥材雖然外形相似,但功能卻差距甚遠,入錯一味藥材,就可能導致藥性發生不可逆的變化,相似的藥材靠人工很難辨別。同時中藥藥量使用非常嚴格,都是以克為單位,傳統稱量方式很難保證各種藥的配比精度,從而導致藥效很差。高強度的重復勞動對抓藥的藥劑師是很大的負擔。傳統抓藥方式存在勞動強度大、誤差大、粉塵污染、人手對藥物的二次污染等缺點。目前國內中醫藥行業正在快速走向繁榮,而落后的抓藥方式則嚴重制約了我國中藥行業的發展。
20世紀70年代,曾有以自動售米機為模板的自動抓藥機曇花一現,理論上成立的設備在實踐上屢遭敗績,最終因為這種抓藥機稱量誤差較大以及造成嚴重的粉塵污染等缺點,中藥房不得不回歸手工抓藥的時代。近二十年間在德國本土,自動化西藥房興起。1993年,德國ROWA公司開始形成有關的設計理念,ROWA公司的自動化藥房的專利技術就是機械手技術。2006年10月30日,位于上海南京路的上海市第一醫藥商店引進并啟用該公司的自動化藥房系統。據介紹,顧客告訴店員要買的藥品名稱后,電腦上就會出現該藥品的廠址、規格、用途等信息,店員只要操作電腦,庫房的主機便馬上下達指令,機械手會迅速搜尋出藥品,放進出藥管道[1]。這種抓藥方式僅限于西藥,對于中藥目前還沒有系統的解決辦法,而大規模的數字化中藥房都還處于實驗階段,且因其成本高昂,占地面積廣等因素不適用于中藥鋪子,應用范圍很窄。
為了解決抓藥難的問題,尤其是像2020年新型冠狀病毒肺炎疫情暴發,造成的人手不足問題,我們就設計了這款人工智能中藥抓取機器人。它可以有效應對突發情況,只要給機器人錄入抓藥程序就可以快速準確抓藥,滿足大規模抓藥的需求,讓病人及早就診,不至于惡化擴散,同時也減少了人員之間的接觸,降低了病毒傳播的概率,為中國的中藥推廣,惠及大眾做出一點貢獻。
智能抓藥機器人的重要意義在于數字化、智能化的精準定位以及精確的抓藥方式,大大減少了對于勞動力的消耗與浪費,利用螺旋桿推送藥品的辦法取代了傳統“手抓戥稱”的抓藥方式[2]。再者,抓藥雖為室內工作,然而在藥柜前往返奔波,其過程既要求精細又要求效率,采用智能抓藥機器人在極大程度上提高了中藥抓配過程的效率值與精確度,誤差小而且效率高,通過智能運算更是可以取代藥劑師經過好幾年才熟悉獲得的定位信息,減輕了藥劑師的負擔,盡可能地將病人收到藥品的時間提前,達到醫患雙贏的效果。
機械結構的設計:人工智能中藥抓取機器人機械原理圖,如圖1所示。

圖1 人工智能中藥抓取機器人原理
人工智能中藥抓取機器人的主體是一輛能夠自主定位的智能機器人,智能機器人上方承載著帶稱重功能的藥盒。通過車上的攝像頭掃描中藥單上的二維碼領取抓藥的種類和劑量,按照藥物的名稱和所對應的中藥位置進行匹配,自動計算出最優抓藥路徑。移動到指定位置后掃描藥品下方的二維碼再一次確認藥物種類,確認無誤后,智能車給中藥漏斗發送藍牙信號,漏斗下方的螺旋輸送器就將中藥推送至下方藥盒中,藥盒底部安裝有壓力傳感器(檢測精度可以達到0.1g),能夠精確檢測下落藥品的重量,并且智能車可承載7個藥盒,一次可同時抓取7服藥。等盒內藥品到達給定質量后立刻移動到下一個藥盒,所有藥盒都裝藥完畢后立刻給中藥漏斗發送信號,讓螺旋輸送器反轉,將多余藥品送回漏斗內,防止長時間和空氣接觸產生污染。智能車則根據計算好的最優路徑移動到下一味中藥漏斗下方繼續抓藥,藥單上的藥品全部抓取完畢后返回起始位置,所抓藥品可通過藥盒下方開孔裝入中藥袋中,藥劑師可將分裝好的中藥袋貼上標簽發放給病人。
智能機器人選擇Arduino MEGA 2560作為主控電路板,利用A4988驅動板模塊對4個步進電機進行程序控制, 該驅動板作為一款帶轉換器和過流保護的DMOS微步進電機驅動器,可用于控制雙極步進電機在步進模式下工作,輸出驅動的能力為35V和±2A,保證精準的控制麥克納姆輪進行橫、縱雙向以及斜向移動[3]。小車會根據最優路徑程序的運算結果到達指定坐標位置,藥品會被放入底部安裝有壓力傳感器的藥匣,通過單片機識別壓力傳感器的數據,再根據數據運算結果,及時做出指定動作,整個運動過程完全由機器人自主進行識別、運算、稱重等一系列動作,快捷、高效地完成抓取中藥的任務。
智能中藥抓取機器人通過麥克納姆輪的差速轉動可以讓機器人前后移動、左右移動或按照指定角度平動。小車使用8個巡線傳感器(如圖2所示)來進行路線識別,減少小車在行駛過程中的方向偏差;左右兩個傳感器進行記數,記錄讓機器人行走的實際距離,并反饋給控制系統進行實時糾正,保證在步進電機驅動下能夠精確到達抓取藥品的位置。

圖2 巡線傳感器
首先中醫專家根據病人所需藥材種類和數量,在電腦端輸入藥品種類及質量,醫院的系統可將藥方自動生成包含中藥方全部信息的二維碼,抓取機器人在起始位置掃描顯示屏幕上的二維碼后,按照指定程序規劃最優路徑,到達指定藥品位置后,再次掃描藥品漏斗下方二維碼以確定目標藥品是否正確,核驗無誤后,控制器給中藥漏斗發送藍牙信號進行通信,漏斗電機控制器接收藍牙信號,打開螺旋輸送器開關,開始裝藥,藥盒下方的薄膜壓力傳感器(如圖3所示)檢測到壓力數值發送給主控制器,發送的數據為模擬量,通過A/D轉換接口將模擬量轉化為數字量,當達到指定質量時,控制器發送藍牙信號使中藥漏斗控制螺旋輸送器反轉,這樣將多余藥品回收至漏斗內,保證藥品不被空氣污染[4]。
為了降低布線的復雜性,同時提高整個系統的穩定性以及可靠性,也為了使主板傳感器的結構更加一目了然,便于后期的調試以及程序的編寫,我們設計了一塊智能機器人的主板,主板連接傳感器與其他執行器[5]。智能機器人電路板主要有5個模塊構成,分別為主控器模塊、傳感器模塊、電源模塊、IIC模塊和執行器模塊,主控制電路設計如圖4所示[6]。

圖4 智能抓取機器人電路總圖
最優路徑規劃部分程序代碼
#pragma once
#include
#include
using namespace std;
struct Dis
{
string path;
int value;
bool visit;
Dis()
{
visit = false;
value = 0;
path = "";
}
};
class Graph_DG
{
private:
int vexnum;
int edge;
int **arc;
Dis *dis;
public:
Graph_DG(int vexnum, int edge);
~Graph_DG();
bool check_edge_value(int start, int end, int weight);
void createGraph();
void print();
void Dijkstra(int begin);
void print_path(int);
為充分發揮中醫藥在新型冠狀病毒流行期間的防控作用,國家衛生健康委員會印發了常見醫用防護用品使用范圍指引(試行)的通知,在最新版的防治方案中,提供的中藥預防處方確定:為方便普通人群通過代茶飲等方式進行自我防護,給出以下藥方。
1.代茶飲方:太子參3g、金銀花3g、藿香3g、桔梗3g、甘草3g。
2.基礎用方:玉屏風散加味,組成如下:生黃芪12g、防風10g、白術10g、金銀花10g、連翹10g、貫眾6g、佩蘭10g、陳皮10g、蒼術10g、桔梗10g。
實驗內容:人工智能中藥抓取機器人通過規劃最優路線依次到達金銀花、太子參、藿香的位置,每種抓取3g,共抓取7服藥,進行3次實驗。為了驗證試驗的準確性,同時讓藥劑師進行同步抓取相同的藥進行對比。
實驗結果顯示,該機器設備可以實現自動規劃最優路徑并對指定藥材定量抓取。

表1 人機抓藥對比參數
試驗結果分析:智能抓藥機器人采用識別任務二維碼的形式來實現對于藥品精準定位,自動計算最優路徑并快速移動到中藥漏斗下方位置,通過壓力傳感器來實現對于藥品精確稱量,藥品的重量可以精確到0.1g,與人工抓藥相比可以同時采集多服藥材,節省稱量時間且能夠保持藥品的質量不被污染,抓藥機器人可自主運行,維護成本低廉,適合在各種規模中藥房使用。