古美婷





摘要:本文主要介紹借助教育平臺與RoboMaster S1教育機器人,給學生帶來一次從觀察、模仿到創新的體驗,并通過引導學生思考“自動跟隨”的核心問題,帶領學生體驗完成項目的一種方法——通過拆分項目、各個擊破,逐步降低項目難度。
關鍵詞:自動跟隨;輕人工智能教育;初中
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2022)11-0049-03
人工智能作為計算機科學的一個分支,是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。自2017年國務院印發《新一代人工智能發展規劃》以來,全國各地積極探索人工智能教育開展模式,并將人工智能教育逐步納入中小學課程當中。針對如何在中小學階段開設人工智能課程這一問題,有研究者提出了“輕人工智能”的理念。所謂“輕人工智能”,即中小學生能夠理解與實施的人工智能技術。該理念倡導教師在教學中結合中小學生的認知水平,側重于讓學生體驗人工智能的應用,并選取相對容易的可視化的內容,讓學生嘗試實踐。在這一理念的指引下,筆者通過學校日常開設的社團課程,發現一個教育平臺的“智能”模塊中封裝了一些圖像識別函數,學生通過借助這一模塊,便可讓機器人擁有相應的圖像識別功能。這一發現讓筆者認識到,學生可以通過調用一些封裝好的函數,來避開超出他們認知水平的知識,他們只需增加一些功能,就能讓原來的機器人擁有更豐富的“人工智能”。下面,筆者以“自動跟隨”項目為例,詳細闡述輕人工智能在初中階段的教學與實施。
● 切身體驗,引出問題
教育編程機器人RoboMaster S1配置了行人跟隨功能,通過RoboMaster APP啟用該功能后,機器人便可跟隨指定行人,在跟隨過程中,機器人與行人將保持2~5米的合適距離。課前,筆者利用課間休息時間,讓部分學生體驗了行人跟隨功能,引起學生的好奇心。課中筆者通過播放行人跟隨視頻,為每一位學生提供了仔細觀察機器人跟隨行人效果的機會,吸引學生的注意力,并通過提出問題,激發學生的求知欲,進而引導學生思考:機器人是如何實現行人跟隨功能的呢?能不能利用現有條件,通過編程實現這一功能?
● 溯本求源,模仿創新
要實現跟隨功能,首先需要弄清楚跟隨的本質是什么?為了幫助學生梳理思路,筆者設置了一個跟隨教師的小游戲——在活動開始前,請執行跟隨任務的學生閉上眼睛,當教師走到任意位置后,發出游戲開始的指令(在跟隨過程中,學生與教師要保持1~2米的距離)。通過觀察,學生們會發現:在活動開始后,執行跟隨任務的學生做的第一件事就是轉動脖子,尋找教師所在位置,當發現目標后,則根據自己與目標的距離,判斷自己應該前進或后退。在清楚人類跟隨目標的過程后,學生接下來需要做的就是把這一過程教給機器人,讓機器人來完成這一任務。
1.分解任務,化繁為簡
機器人自動跟隨行人的過程,其實就是發現目標、跟隨目標的過程。在行人跟隨中,發現目標其實就是識別行人的過程。所以,第一個問題可以通過使用教育平臺智能模塊中的“開啟行人識別”模塊來解決。而跟隨目標又可以進一步細化為前后跟隨和左右跟隨的問題。機器人通過判斷與行人的距離(后續統一稱為:人、機距離),決定應該前進或后退,再根據識別到的行人中心點偏離機器人視野中心點的情況,來選擇進行左轉跟隨還是右轉跟隨。接下來,將通過獲取、分析“人、機距離”和“人、機方向”信息,來解決前后跟隨和左右跟隨的問題。
機器人發現目標后,就可以定義目標所在的位置與目標和自己的距離。那么,它是如何記錄這些信息的呢?
2.引入新知,解決問題
程序在存儲或處理數據時,需要占用內存,所以,為了使用機器人識別到的行人信息,需要創建列表將相關數據存儲起來。在RoboMaster S1中,列表將按如圖1所示的格式存儲識別到的行人信息。
列表第1項為識別到的物體數量N,后續項以4個數據為一組,這4個數據分別是:第1個物體中心點在機器人視野中位置的橫坐標X、縱坐標Y、寬度W和高度H;第2個物體中心在機器人視野中位置的橫坐標X、縱坐標Y、寬度W和高度H……依此類推。
然而,機器人記錄的行人信息,與需要知道的方向和距離信息似乎沒有直接關系,到底哪些數據可以用來解決問題呢?針對這一問題,筆者設計了如下活動:首先,讓學生編程開啟機器人的行人識別功能,并創建列表存儲相關數據。其次,連接機器人,運行程序。此時,小組成員需要相互配合,一名成員充當樣本,出現在機器人視野中,一名成員負責觀察FPV界面(機器人視野),提醒“樣本同學”的站位。其余成員仔細觀察列表中的數據——當行人做前后運動或左右運動時,列表中哪些數據變化最明顯?通過這個活動,學生們將意識到:機器人在識別到行人后,記錄下的寬度和高度數據與人、機距離相關;而左右運動情況則可以通過行人中心點的橫坐標來反映。
3.設計實驗,采集數據
為幫助學生梳理實驗思路,筆者設計了“前后跟隨”與“左右跟隨”的實驗記錄表(如圖2、下頁圖3)。學生完成數據采集后,就可以根據實驗記錄表中的提示,開始歸納前后跟隨的運動條件與左右跟隨的算法。
4.分析數據,設計算法
首先,通過觀察前后跟隨實驗采集的數據可以發現,隨著人、機距離改變,列表中第四項與第五項數據的變化趨勢符合“近大遠小”這一視覺現象——當一個物體距離我們近時,看起來就會偏大;當一個物體距離我們遠時,看起來就會偏小。所以,可以利用列表中第四項和第五項數據求出物體的周長或面積,再借助這一數據來反映行人與機器人距離的遠近。
在解決前后跟隨問題后,再來觀察左右跟隨實驗記錄表中的數據。在機器人坐標系中,機器人視野中心點為(0.5,0.5)。當目標向左偏離中心時,橫坐標小于0.5,向右偏離中心時,橫坐標大于0.5。對于“行人與機器人視野中心點的偏離距離”這一問題的求解,學生一般會采取兩種計算方法:一種是用列表中的第二項數據減去0.5,另一種是用0.5減去列表中的第二項數據。雖然兩種計算方法都可以求出偏離距離,但是卻會得到相反的正負符號。究竟哪一種計算方法更合適?為解答這一問題,學生需要進一步思考求偏離距離的目的。
求偏離距離,是希望機器人能以此為依據,從而跟隨行人轉向對應的方向,實現左右跟隨。而在教育平臺中,機器人的左右運動方向是通過正負符號來辨識的:向左運動是負方向,向右運動是正方向。所以,“使用列表中的第二項數據減去0.5”得到的正負號和云臺需要轉動的方向一致。在底盤跟隨云臺的整機模式下,若云臺已經能跟隨識別到的行人轉向對應方向,那最后仍待解決的問題就剩下云臺該轉動多少度。
通過觀察求出的偏離距離,學生會發現這些數值都很小,直接作為云臺的轉動角度并不合適。所以,需要先將這個數值放大數倍,再將其作為云臺的轉動角度或轉動速度。具體是放大多少倍與選擇哪一語句更合適,則需要編程測試后再決定。
5.編寫程序,調試運行
由于樣本的差異,學生采集的實驗數據與測試效果也會有所不同。所以,當根據前面分析、歸納的算法完成基礎程序后,需要連接機器人測試效果,再根據效果逐漸調整參數,在實現小組成員都認可的跟隨功能后,還可以根據自己的想法,增加燈效或一些簡短的提示音,豐富行人跟隨機器人的功能。圖4、圖5是基于RoboMaster S1實現行人跟隨的基礎程序示例。
● 降低難度,體驗成功
“自動跟隨”是一個綜合性強、難度較大、涉及知識點較多的項目。在完成過程中,學生需要聯系生活經驗,綜合運用前面學過的知識,并將項目拆分為幾個子任務,從而降低難度。雖然項目難度較大,但是能給學生帶來一次自己動手實現人工智能的全新體驗,并能讓學生進一步認識到,只要善于利用工具,初中生也能通過看似簡短的語句實現有趣的人工智能。體驗、觀察、模仿、創新,每一步都是成長的必經之路。隨著人工智能逐漸走進我們的生活,輕人工智能教育的探索,也會越來越值得期待。
參考文獻:
[1]梁錦明.輕人工智能:聚焦中小學生的智能教育[J].中小學數字化教學,2021(04).
[2]魏爍佳.立足學生發展的計算思維培養模式探索[J].中國信息技術教育,2021(07).