再聊機(jī)器人設(shè)計(jì):如何加速開發(fā)流程?
01
一套機(jī)械臂系統(tǒng)引發(fā)的思考
此種復(fù)雜的機(jī)械臂控制系統(tǒng)到底如何開發(fā),如何設(shè)計(jì)?
02
與機(jī)器人相關(guān)的系統(tǒng)開發(fā)流程
比如:我們在設(shè)計(jì)機(jī)器人機(jī)械臂時(shí),機(jī)械臂驅(qū)動電路已經(jīng)設(shè)計(jì)并制作完成,但小伙伴的機(jī)械臂結(jié)構(gòu)還未搭建好,我們必須得等小伙伴完成機(jī)械臂結(jié)構(gòu)后才能測試。無形中,也浪費(fèi)了開發(fā)時(shí)長。
那么,如何提升效率、減少時(shí)間和資金,從而加快開發(fā)流程呢?
加快反饋!
在早期進(jìn)行整體設(shè)計(jì)時(shí),如果可以仿真,在仿真過程中,不斷調(diào)試裝置和系統(tǒng)參數(shù),多次反饋后得出我們想要的模型,同時(shí)進(jìn)行結(jié)構(gòu)與軟硬件制作,并根據(jù)仿真模型的變動進(jìn)行修改,多階段同時(shí)進(jìn)行,以此來減少開發(fā)時(shí)長以及資金成本。
當(dāng)然,既然要進(jìn)行仿真,要選取哪款軟件呢。
在這之前,我們曾經(jīng)有寫過一篇:
MATLAB R2020a新鮮出爐,我來替各位嘗嘗鮮?。ǔ溄?,點(diǎn)擊即可閱讀)
在這篇文章中,我們有聊過利用MATLAB/Simulink對機(jī)器人運(yùn)動規(guī)劃進(jìn)行仿真。
那么在加速機(jī)器人開發(fā)流程上,MATLAB又會給我們帶來什么驚喜呢?
03
MATLAB如何加速機(jī)器人開發(fā)
在未設(shè)計(jì)出機(jī)械臂硬件系統(tǒng)之前,我們是無法驗(yàn)證算法,其抓取效果以及準(zhǔn)確度,此時(shí)MATLAB即可上場,擔(dān)當(dāng)搭建相關(guān)模型,提前完成仿真測試的重任。
在開篇的腰間機(jī)械臂視頻中,機(jī)械臂有給人遞送工具的應(yīng)用場景,我們以機(jī)械臂抓取物品為例,使用MATLAB模擬仿真該運(yùn)動過程。
在MATLAB中,有較多的機(jī)械臂模型供大家選擇,可供自己的設(shè)計(jì)需求選擇相應(yīng)的機(jī)械臂模型,接下來使用MATLAB對進(jìn)行機(jī)械臂拾放工作流程仿真。
首先,使用Stateflow圖表創(chuàng)建狀態(tài)流程圖,由以下三個(gè)步驟組成:
1、初始化機(jī)器人和環(huán)境
初始化機(jī)械臂模型,并創(chuàng)建其運(yùn)行環(huán)境,初始化相關(guān)參數(shù)配置,建立機(jī)械臂模型。
該環(huán)境由機(jī)械手、用于分類的架子和藍(lán)色障礙物組成。
2、識別零件并確定放置位置
在識別階段的第一步中,必須檢測零件。我們可以直接調(diào)用相關(guān)函數(shù)直接給出待拾放的物體檢測算法,也可以通過我們特定的物體,來設(shè)計(jì)對應(yīng)的物體檢測算法。
接下來,調(diào)用相關(guān)函數(shù)將零件分為兩種類型,以確定放置它們的位置(頂部或底部架子)。
3、執(zhí)行取放工作流程
一旦識別出物品,并指定了它們的目的地,手爪將其拾取,然后移動到目標(biāo)位置。
*詳細(xì)流程如下圖所示:
在完成狀態(tài)流程圖后,就可以運(yùn)行可視化仿真。
通過確定選用MATLAB中提供的機(jī)器人模型,初始相關(guān)參數(shù)配置,完成機(jī)械手的初始配置,建立機(jī)械臂模型。
【案例來自MATLAB官網(wǎng),該仿真使用帶有手爪的KINOVA GEN3機(jī)械臂模型】
代碼:
調(diào)用函數(shù),即可將可視化模型連接到前文狀態(tài)流程圖,
coordinator.FlowChart = exampleHelperFlowChartPickPlace('coordinator',coordinator);
輸入下方代碼,可進(jìn)行拾放物體過程仿真:
answer = questdlg('Do you want to start the pick-and-place job now?', ...
'Start job','Yes','No', 'No');
switch answer
case 'Yes'
% Trigger event to start Pick and Place in the Stateflow Chart
coordinator.FlowChart.startPickPlace;
case 'No'
% End Pick and Place
coordinator.FlowChart.endPickPlace;
delete(coordinator.FlowChart);
04
總結(jié)
本文只是淺談了機(jī)器人系統(tǒng)開發(fā)中,通過MATLAB/Simulink的配合使用,我們可以提前驗(yàn)證機(jī)械臂控制算法,同樣的,除開機(jī)器人的機(jī)械臂模型仿真,我們也可以利用Simulink對機(jī)器人的移動控制、視覺等組件進(jìn)行仿真,提前驗(yàn)證我們的控制算法,無需等到相關(guān)硬件制作完成后再驗(yàn)證,可以加快整個(gè)機(jī)器人系統(tǒng)的開發(fā)過程,提升效率。
總的來說,在機(jī)器人開發(fā)上,MATLAB給技術(shù)人員提供了足夠多且友好的開發(fā)工具,并且也涵蓋了多個(gè)demo,供初學(xué)者快速入門。我們可以通過學(xué)習(xí)調(diào)用demo,快速搭建出我們的機(jī)器人各個(gè)組件系統(tǒng),進(jìn)行仿真測試,無論是機(jī)器視覺,或者機(jī)械臂相關(guān)軟硬件,亦或是移動路徑規(guī)劃等。都可以在MATLAB中找到相應(yīng)的工具包對其進(jìn)行仿真測試。
與此同時(shí),在基于MATLAB模型設(shè)計(jì)下,我們可以將機(jī)器人系統(tǒng)如此龐大陌生的系統(tǒng)劃分成各個(gè)模塊進(jìn)行組件設(shè)計(jì),利用Simulink對其組件進(jìn)行仿真測試,使用基于模型設(shè)計(jì)去開發(fā)軟件,我們可以盡早對一個(gè)階段的工作產(chǎn)品進(jìn)行驗(yàn)證,同時(shí)鏈接到后一階段的設(shè)計(jì)。不僅僅是節(jié)省開發(fā)時(shí)間成本和資金成本,并且對于基于模型的設(shè)計(jì)來講,圖形化設(shè)計(jì)是天然的、固有的。
能讓人較為明朗了解設(shè)計(jì)原理以及過程,方便工程師們交流以及后期維護(hù)。
了解更多機(jī)器人解決方案:(復(fù)制到瀏覽器打開)
https://ww2.mathworks.cn/solutions/robotics.html?s_eid=PEP_23450
你可以申請30天免費(fèi)試用工具包:(復(fù)制到瀏覽器打開)
https://ww2.mathworks.cn/campaigns/products/trials.html?s_eid=PEP_23450
-END-
推薦閱讀
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!