国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

智能專(zhuān)業(yè)嵌入式系統(tǒng)教學(xué)內(nèi)容思考與實(shí)踐

2017-11-06 09:45付東翔李菲菲傅迎華胡春燕尹鐘劉麗
計(jì)算機(jī)教育 2017年10期
關(guān)鍵詞:嵌入式系統(tǒng)課程設(shè)計(jì)

付東翔 李菲菲 傅迎華 胡春燕 尹鐘 劉麗

摘 要:為了使智能本科專(zhuān)業(yè)的嵌入式系統(tǒng)教學(xué)能夠與主流的機(jī)器人操作系統(tǒng)ROS緊密結(jié)合,適應(yīng)當(dāng)前機(jī)器人技術(shù)發(fā)展的最新應(yīng)用,突出本專(zhuān)業(yè)嵌入式系統(tǒng)課程的專(zhuān)業(yè)特色,介紹課程的理論教學(xué)內(nèi)容選擇、實(shí)驗(yàn)內(nèi)容及安排,說(shuō)明本課程對(duì)后續(xù)本專(zhuān)業(yè)其他課程、課程設(shè)計(jì)等的支撐作用,強(qiáng)調(diào)對(duì)大學(xué)生教學(xué)實(shí)踐比賽的有利推動(dòng)作用。

關(guān)鍵詞:智能科學(xué)與技術(shù);嵌入式系統(tǒng);課程設(shè)計(jì)

0 引 言

智能科學(xué)與技術(shù)本科專(zhuān)業(yè)培養(yǎng)工作和內(nèi)容是人工智能、機(jī)器人、計(jì)算機(jī)等交叉學(xué)科內(nèi)容的教學(xué)。專(zhuān)業(yè)內(nèi)容涉及機(jī)器人技術(shù)、各類(lèi)智能技術(shù)與系統(tǒng)、新一代的人機(jī)系統(tǒng)技術(shù)等。嵌入式系統(tǒng)是計(jì)算機(jī)、自動(dòng)化、電氣等本科專(zhuān)業(yè)的核心專(zhuān)業(yè)課程之一,其內(nèi)容是在微機(jī)原理、單片機(jī)技術(shù)和C語(yǔ)言程序設(shè)計(jì)等課程基礎(chǔ)上更高層次的專(zhuān)業(yè)知識(shí)[1-4]。

當(dāng)前信息技術(shù)的飛速發(fā)展,尤其工業(yè)機(jī)器人技術(shù)不斷滲透、應(yīng)用到各個(gè)生產(chǎn)和社會(huì)生活領(lǐng)域。面對(duì)機(jī)器人技術(shù)的發(fā)展和應(yīng)用,智能專(zhuān)業(yè)的培養(yǎng)計(jì)劃和課程內(nèi)容應(yīng)該包括和不斷擴(kuò)大機(jī)器人相關(guān)領(lǐng)域的知識(shí)。目前與嵌入式系統(tǒng)課程有關(guān)的機(jī)器人領(lǐng)域的主流關(guān)鍵技術(shù)之一是ROS機(jī)器人操作系統(tǒng)[5]。ROS是開(kāi)源、基于Ubuntu系統(tǒng)的機(jī)器人操作系統(tǒng),提供類(lèi)似操作系統(tǒng)所提供的功能,包含硬件抽象描述、底層驅(qū)動(dòng)程序管理、共用功能的執(zhí)行、程序間的消息傳遞、程序發(fā)行包管理等[6]?,F(xiàn)在越來(lái)越多的機(jī)器人廠商嘗試使用ROS,包括占據(jù)最多工業(yè)市場(chǎng)份額的機(jī)器人四大家族和各種流行的研究型機(jī)器人。

1 教學(xué)內(nèi)容

1.1 目標(biāo)定位

隨著目前機(jī)器人技術(shù)的不斷發(fā)展和應(yīng)用,本課程的目標(biāo)定位:熟悉ARM Cortex-A內(nèi)核處理器的硬件結(jié)構(gòu)和功能,熟悉和掌握ROS機(jī)器人操作系統(tǒng)的體系結(jié)構(gòu)、任務(wù)間通信機(jī)制、功能包設(shè)計(jì)方法;強(qiáng)化學(xué)生在ROS系統(tǒng)下的應(yīng)用設(shè)計(jì)能力,為后續(xù)專(zhuān)業(yè)課程教學(xué)實(shí)踐奠定工作基礎(chǔ)。

1.2 內(nèi)容調(diào)整

原有課程內(nèi)容:①硬件系統(tǒng),STM32的32位的ARM Cortex-M3內(nèi)核的控制器;②嵌入式操作系統(tǒng),?C/OS-II操作系統(tǒng)。

現(xiàn)有課程內(nèi)容:①硬件系統(tǒng),TI的32位的ARM Cortex-A8處理器;②嵌入式操作系統(tǒng),基于Ubuntu的ROS操作系統(tǒng)。

基于以上內(nèi)容,教學(xué)理論和實(shí)驗(yàn)內(nèi)容調(diào)整前后對(duì)比見(jiàn)表1、表2。

2 理論教學(xué)與實(shí)驗(yàn)教學(xué)

嵌入式系統(tǒng)教學(xué)是在理論基礎(chǔ)上強(qiáng)調(diào)實(shí)踐性。理論教學(xué)分為兩大部分:①ARM Cortex-A8內(nèi)核處理器硬件結(jié)構(gòu)和功能,硬件設(shè)備樹(shù)Device Tree機(jī)制;②ROS操作系統(tǒng)原理和運(yùn)行架構(gòu);節(jié)點(diǎn)、消息、主題、服務(wù)等基本概念;節(jié)點(diǎn)、主題以及消息等相互之間的關(guān)系、節(jié)點(diǎn)之間消息傳遞機(jī)制。實(shí)驗(yàn)教學(xué)是理論教學(xué)的實(shí)踐,讓學(xué)生認(rèn)識(shí)和動(dòng)手實(shí)踐理論的內(nèi)容。

2.1 理論教學(xué)內(nèi)容

(1)處理器硬件內(nèi)容:以ARM Cortex-A8內(nèi)核處理器為重點(diǎn),以TI(德州儀器)公司Sitara Processors系列中的AM3359為對(duì)象,對(duì)Cortex-A8內(nèi)核處理器的硬件片內(nèi)資源和功能予以介紹;Ubuntu操作系統(tǒng)下的硬件操作和驅(qū)動(dòng)基于設(shè)備樹(shù)文件實(shí)現(xiàn)。

以設(shè)備樹(shù)Device Tree機(jī)制及其規(guī)范為主要內(nèi)容展開(kāi)。

①設(shè)備樹(shù)(Device Tree)基本概念及作用:設(shè)備樹(shù)是一種描述硬件資源的數(shù)據(jù)結(jié)構(gòu),作用是將硬件外設(shè)與相應(yīng)的驅(qū)動(dòng)程序直接進(jìn)行綁定,系統(tǒng)啟動(dòng)時(shí)加載設(shè)備樹(shù)文件并配置各種硬件資源,通過(guò)bootloader(啟動(dòng)程序)將硬件資源傳給操作系統(tǒng)內(nèi)核,使得內(nèi)核和硬件資源描述相對(duì)獨(dú)立,其基本數(shù)據(jù)結(jié)構(gòu)如下:

{ #address-cells = <1>; // 子節(jié)點(diǎn)中reg屬性中address值;

#size-cells = <1>; // 子節(jié)點(diǎn)中reg屬性中size值;

chosen { }; // 描述由系統(tǒng)指定的runtime parameter ;

aliases { }; // 定義別名;

memory { device_type = "memory"; reg = <0 0>; }; // 設(shè)備類(lèi)型,起始地址和大??;

};

②設(shè)備樹(shù)的組成和使用:設(shè)備樹(shù)包含DTC(device tree compiler),DTS(device tree source)和DTB(device tree blob)。

DTS文件:是一種ASCII文本對(duì)Device Tree的描述,放置在ROS內(nèi)核的/arch/arm/boot/dts目錄下,一個(gè)DTS文件對(duì)應(yīng)一個(gè)ARM的硬件資源。

DTSI文件:硬件系統(tǒng)中每個(gè)子系統(tǒng)都有一個(gè)DTS文件。這些文件會(huì)有許多共同部分,為減少代碼的冗余,設(shè)備樹(shù)將這些共同部分保存在DTSI文件中,供不同的DTS使用。

③設(shè)備樹(shù)中DTS文件的基本語(yǔ)法與舉例:根據(jù)設(shè)備樹(shù)的基本概念,給出TI的AM3359處理器的ADC外設(shè)的DTS文件格式,AM3359的ADC部分有8個(gè)通道,其控制器寄存器ADC_TSC_SS, 地址為 0x44E0_D000,部分文件代碼如下:

#address-cells = <1>;

#size-cells = <1>;

tscadc {

compatible = "ti,ti-tscadc";

reg = <0x44e0d000 0x1000>;

interrupt-parent = <&intc>;

interrupts = <16>;

ti,hwmods = "adc_tsc";

status = "okay";endprint

adc {

ti,adc-channels = <0 1 2 3 4 5 6 7>;

};

};

通過(guò)上述ADC部分DTS文件舉例說(shuō)明硬件外設(shè)在文件中的描述,對(duì)其他GPIO、PWM、定時(shí)器等不同系統(tǒng)外設(shè),其DTS文件形式類(lèi)同。每個(gè)DTS文件共同的部分代碼存放于DTSI文件中。通過(guò)這種舉例,強(qiáng)調(diào)DT設(shè)備樹(shù)機(jī)制的優(yōu)點(diǎn):操作系統(tǒng)內(nèi)核中不再充斥著與硬件有關(guān)的代碼,操作系統(tǒng)因此瘦身和精簡(jiǎn),操作系統(tǒng)與硬件無(wú)關(guān)性得到實(shí)現(xiàn)。

(2)操作系統(tǒng)主要內(nèi)容:ROS系統(tǒng)框架及其內(nèi)部運(yùn)行機(jī)制, ROS系統(tǒng)下任務(wù)之間的通信機(jī)制和概念:節(jié)點(diǎn)(node)、消息(message)、主題(topic)、服務(wù)(service),它們之間消息訂閱和發(fā)布如圖1所示。

①節(jié)點(diǎn)。節(jié)點(diǎn)就是執(zhí)行運(yùn)算任務(wù)的進(jìn)程,一個(gè)系統(tǒng)是由很多節(jié)點(diǎn)組成的,節(jié)點(diǎn)也被稱(chēng)之為“軟件模塊”。

② 消息。節(jié)點(diǎn)之間是通過(guò)傳送消息進(jìn)行通訊的。每一個(gè)消息都是一個(gè)嚴(yán)格的數(shù)據(jù)結(jié)構(gòu),不但支持標(biāo)準(zhǔn)的數(shù)據(jù)類(lèi)型如整型、浮點(diǎn)型、布爾型等,也支持?jǐn)?shù)組類(lèi)型。消息可以包含任意的嵌套結(jié)構(gòu)和數(shù)組,類(lèi)似于C語(yǔ)言的結(jié)構(gòu)structs。

③主題。消息以一種發(fā)布(publish)/ 訂閱(subscribe)的方式傳遞。一個(gè)節(jié)點(diǎn)可以在一個(gè)給定的主題中發(fā)布消息,一個(gè)節(jié)點(diǎn)對(duì)某個(gè)主題關(guān)注與訂閱特定類(lèi)型的數(shù)據(jù),可能同時(shí)有多個(gè)節(jié)點(diǎn)發(fā)布或者訂閱同一個(gè)主題的消息。如圖1所示,Master為節(jié)點(diǎn)管理器。

④服務(wù)。基于主題(topic)的發(fā)布/訂閱模型的廣播通訊方式范圍過(guò)大,為簡(jiǎn)化節(jié)點(diǎn)間的通信,在ROS中,用一個(gè)字符串和一對(duì)嚴(yán)格規(guī)范的消息定義:一個(gè)用于請(qǐng)求,一個(gè)用于回應(yīng)。類(lèi)似于 web服務(wù)器是由URIs定義的,同時(shí)帶有完整定義類(lèi)型的請(qǐng)求和回復(fù)文檔,稱(chēng)為一個(gè)服務(wù),如圖1所示。

2.2 實(shí)驗(yàn)教學(xué)內(nèi)容

將理論內(nèi)容以實(shí)踐形式呈現(xiàn)給學(xué)生,嵌入式系統(tǒng)課程實(shí)驗(yàn)中Cortex-A內(nèi)核的MPU(處理器)與原來(lái)的MUC(控制器)級(jí)硬件系統(tǒng)實(shí)驗(yàn)不同在于:①片內(nèi)外設(shè)GPIO、A/D等硬件控制通過(guò)DTS設(shè)備樹(shù)文件配置和驅(qū)動(dòng),而Cortex-M內(nèi)核控制器硬件資源相對(duì)簡(jiǎn)單,硬件功能的配置通過(guò)控制庫(kù)函數(shù)調(diào)用實(shí)現(xiàn);②軟件系統(tǒng):ROS系統(tǒng)的原理和程序框架;功能包開(kāi)發(fā)步驟;節(jié)點(diǎn)、消息、服務(wù)等通信機(jī)制與?C/OS-II系統(tǒng)差別很大。

因此,本課程實(shí)驗(yàn)基于上述內(nèi)容展開(kāi),分為3部分內(nèi)容。

①ROS系統(tǒng)程序框架與功能包設(shè)計(jì)實(shí)驗(yàn):程序框架:在ROS中,所有的軟件都是以ROS包或功能包形式存在的,ROS包是用于實(shí)現(xiàn)特定功能的相關(guān)文件的集合,包括可執(zhí)行文件和其他支持文件;實(shí)驗(yàn)內(nèi)容:功能包的創(chuàng)建、編輯和編譯運(yùn)行。該實(shí)驗(yàn)讓學(xué)生熟悉ROS功能包的開(kāi)發(fā)環(huán)境和過(guò)程。

②設(shè)備樹(shù)(Device Tree)文件創(chuàng)建和程序運(yùn)行實(shí)驗(yàn):實(shí)驗(yàn)主要包括GPIO、ADC等外設(shè)控制的DTS文件、DTSI文件的編寫(xiě)和編譯;通過(guò)上位機(jī)終端發(fā)送命令加載DTBO文件。控制LED、ADC等外設(shè)的工作。通過(guò)該實(shí)驗(yàn)使得學(xué)生能夠認(rèn)識(shí)和掌握硬件外設(shè)的DTS驅(qū)動(dòng)文件格式和編寫(xiě)。

③ROS系統(tǒng)下節(jié)點(diǎn)間通信實(shí)驗(yàn):利用ROS系統(tǒng)下的“海龜仿真運(yùn)動(dòng)”程序包(turtlesim)進(jìn)行任務(wù)節(jié)點(diǎn)通信和運(yùn)行實(shí)驗(yàn)。該實(shí)驗(yàn)通過(guò)創(chuàng)建兩個(gè)節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)控制“海龜”的運(yùn)動(dòng),另外一個(gè)節(jié)點(diǎn)捕捉鍵盤(pán)事件,同時(shí)發(fā)送命令消息。通過(guò)該實(shí)驗(yàn),讓學(xué)生認(rèn)識(shí)和理解ROS節(jié)點(diǎn)之間消息傳遞的通信機(jī)制。

3 本課程與其他智能專(zhuān)業(yè)課程、課程設(shè)計(jì)與本科創(chuàng)新實(shí)踐

基于ROS的嵌入式系統(tǒng)教學(xué)內(nèi)容為本專(zhuān)業(yè)其他智能專(zhuān)業(yè)課程如自然語(yǔ)言理解、智能檢測(cè)技術(shù)與系統(tǒng)、自主移動(dòng)機(jī)器人技術(shù)、專(zhuān)業(yè)課程設(shè)計(jì)等奠定了較好的硬件和軟件基礎(chǔ)。

首先,在嵌入式系統(tǒng)內(nèi)容的學(xué)習(xí)中,學(xué)生已經(jīng)能夠熟悉ARM Cortex-A8處理器的硬件功能和結(jié)構(gòu),以及ROS系統(tǒng)下任務(wù)以節(jié)點(diǎn)形式運(yùn)行、節(jié)點(diǎn)間的通信機(jī)制和功能包的開(kāi)發(fā)。為后續(xù)課程和實(shí)踐比賽奠定了一個(gè)軟硬件實(shí)驗(yàn)共享平臺(tái):自然語(yǔ)言處理課程上的語(yǔ)言包、自主移動(dòng)機(jī)器人技術(shù)的定位算法、智能檢測(cè)技術(shù)與系統(tǒng)的傳感器硬件檢測(cè)與軟件數(shù)據(jù)處理等都能夠在這個(gè)平臺(tái)上實(shí)驗(yàn)和運(yùn)行;學(xué)生在專(zhuān)業(yè)課程設(shè)計(jì)中可以設(shè)計(jì)、集成一個(gè)機(jī)器人系統(tǒng)功能:以本課程的實(shí)驗(yàn)環(huán)境,實(shí)現(xiàn)傳感器檢測(cè)、語(yǔ)音處理、自主定位等機(jī)器人系統(tǒng)常用的功能。

其次,通過(guò)本課程內(nèi)容的學(xué)習(xí),為學(xué)生申請(qǐng)和完成本校和上海市的大學(xué)生創(chuàng)新項(xiàng)目奠定了工作基礎(chǔ)。本專(zhuān)業(yè)學(xué)生近年來(lái)連續(xù)獲得多項(xiàng)上海市大學(xué)生創(chuàng)新項(xiàng)目和我校本科創(chuàng)新項(xiàng)目,如2017年上海市大學(xué)生創(chuàng)新項(xiàng)目“基于Ubuntu系統(tǒng)的機(jī)器人仿真平臺(tái)設(shè)計(jì)”(SH2017035)等。

最后,為本專(zhuān)業(yè)學(xué)生參加各類(lèi)全國(guó)大學(xué)生智能大賽奠定了較好的硬件、軟件基礎(chǔ),如“華為杯全國(guó)大學(xué)生智能大賽”“華為杯電子設(shè)計(jì)大賽”等。同時(shí)也將為本專(zhuān)業(yè)學(xué)生參加此類(lèi)比賽培育眾多參賽隊(duì)員。圖2(a)(b)為硬件實(shí)驗(yàn)設(shè)備。

4 結(jié) 語(yǔ)

面向應(yīng)用的智能專(zhuān)業(yè)嵌入式系統(tǒng)教學(xué)以ARM Cortex-A8內(nèi)核的處理器為硬件對(duì)象,以ROS操作系統(tǒng)為軟件平臺(tái),圍繞著處理器的硬件設(shè)備樹(shù)結(jié)構(gòu)及其語(yǔ)法格式,ROS系統(tǒng)基于節(jié)點(diǎn)通信的程序運(yùn)行機(jī)制等兩個(gè)方面展開(kāi)內(nèi)容,使得學(xué)生能夠理解面向機(jī)器人操作系統(tǒng)的硬件組成和功能原理,能夠充分理解、熟悉和掌握ROS機(jī)器人操作系統(tǒng)框架和程序運(yùn)行機(jī)制。

課程內(nèi)容安排為本專(zhuān)業(yè)其他相關(guān)課程、后續(xù)課程設(shè)計(jì)、創(chuàng)新實(shí)踐和大學(xué)生教學(xué)實(shí)踐比賽奠定一個(gè)開(kāi)發(fā)、實(shí)驗(yàn)共享平臺(tái),ROS系統(tǒng)的開(kāi)放性能夠讓學(xué)生開(kāi)發(fā)自己的算法包,如自然語(yǔ)言理解、智能信息處理、機(jī)器人移動(dòng)技術(shù)等課程的算法可以在這個(gè)平臺(tái)上調(diào)試和運(yùn)行驗(yàn)證,使得嵌入式系統(tǒng)該門(mén)課程更好地支撐后續(xù)專(zhuān)業(yè)課程算法實(shí)驗(yàn),進(jìn)而為專(zhuān)業(yè)課程設(shè)計(jì)奠定了硬件、軟件基礎(chǔ)。

在目前機(jī)器人技術(shù)應(yīng)用逐漸進(jìn)入工業(yè)自動(dòng)化領(lǐng)域和各個(gè)生活領(lǐng)域并且已經(jīng)開(kāi)始取代一些人類(lèi)重復(fù)性工作的大趨勢(shì)下,通過(guò)對(duì)ROS系統(tǒng)的熟悉和掌握,將使得智能科學(xué)與技術(shù)的專(zhuān)業(yè)學(xué)生專(zhuān)業(yè)應(yīng)用能力更具有針對(duì)性和專(zhuān)業(yè)性。

參考文獻(xiàn):

[1] 孫紅, 蔣念平, 陳瑋, 等. 智能科學(xué)與技術(shù)專(zhuān)業(yè)理論教學(xué)與工程實(shí)踐的融合[D]. 上海:上海理工大學(xué), 2012.

[2] 卡莫爾(印度). Embedded Systems: Architecture, Programming and Design[M].賈建斌, 李化, 譯. 北京: 清華大學(xué)出版社, 2010.

[3] 張俊, 陳飛, 馮士剛. 大連海事大學(xué)“智能科學(xué)與技術(shù)”本科專(zhuān)業(yè)建設(shè)實(shí)踐[J]. 計(jì)算機(jī)教育, 2012(18): 22-27.

[4] 王萬(wàn)森. 適應(yīng)智能化應(yīng)用發(fā)展趨勢(shì), 培養(yǎng)創(chuàng)新型智能科技人才[J]. 計(jì)算機(jī)教育, 2013(19): 37-39.

[5] 奧凱恩·杰森(美)機(jī)器人操作系統(tǒng)淺析[M]. 肖軍浩, 譯. 北京: 國(guó)防工業(yè)出版社, 2015.

[6] 恩里克·費(fèi)爾南德斯(西). ROS機(jī)器人程序設(shè)計(jì)(原書(shū)第二版)[M]. 北京: 機(jī)械工業(yè)出版社, 2016.

[7] 馬麗梅. Ubuntu Linux操作系統(tǒng)與實(shí)驗(yàn)教程[M]. 北京: 清華大學(xué)出版社, 2014.

(編輯:郭田珍)endprint

猜你喜歡
嵌入式系統(tǒng)課程設(shè)計(jì)
“蘇州園林:景致與情思”課程設(shè)計(jì)
“石油及天然氣地質(zhì)學(xué)”課程的MOOC課程設(shè)計(jì)
A Study on the Application of Task—based Approach to English Vocabulary Teaching
辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)
基于物聯(lián)網(wǎng)項(xiàng)目驅(qū)動(dòng)的嵌入式系統(tǒng)教學(xué)改革的研究與實(shí)踐
嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實(shí)踐及啟示
面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
關(guān)于完善課程設(shè)計(jì)教學(xué)及教學(xué)管理工作的思考
许昌市| 安西县| 北碚区| 丰台区| 光泽县| 孟津县| 上栗县| 会宁县| 滨州市| 潞西市| 睢宁县| 淮南市| 黄梅县| 连山| 正镶白旗| 进贤县| 雷州市| 蒲江县| 花垣县| 山丹县| 乐至县| 犍为县| 竹山县| 江安县| 醴陵市| 清水河县| 深水埗区| 石棉县| 苗栗县| 嘉荫县| 钦州市| 乌拉特中旗| 五家渠市| 峡江县| 合阳县| 嘉荫县| 龙海市| 海口市| 镇雄县| 巴彦淖尔市| 依兰县|