搬運機械手機構與控制電路設計【含13張CAD圖紙】
資源目錄里展示的全都有,所見即所得。下載后全都有,請放心下載。原稿可自行編輯修改=【QQ:401339828 或11970985 有疑問可加】
英文資料
Teaching Robotics Using Lego
MindStorms
Anthony Hirst, Jeffrey Johnson, Marian Petre, Blaine A. Price, Mike Richards
Departments of Telematics, Design and Innovation, and Computing
The Open University, Walton Hall, Milton Keynes, MK7 6AA, UK
robofesta@open.ac.uk
Abstract
We aim to produce a range of educational materials to teach robotics to a variety of audiences using the LEGO Mindstorms Robotics Invention System(TM). We briefly review the programming environments currently available and consider their appropriate-ness for our candidate audiences. There is the usual trade-off between ease of use and power. It is suggested that no single programming environment is suitable for all audiences. Instead, a progression of environments from microworlds, through graphical programming environments, to textual languages seems to provide the best way to develop our teaching. In this paper we synthesise our thoughts, and present them for constructive criticism by the robotics community.
1. Introduction
Robotics has been shown by a number of researchers to be motivating and beneficial in teaching science and technology (Beer et al., 1999). We believe that robots are a powerful way to motivate learning. The construction and programming of robots uses a wide range of scientific and engineering principles – key skills in the modern technological economy (Wasserman, 2002). This range of skills necessitates teamwork, planning and record keeping.
What are the best environment and language for teaching robotics using Lego MindStorms?Given the depth and breadth of things that we intend to teach using MindStorms, from simple programming to engineering principles and simulation; and given the range of audiences we intend to serve, from young children to mature university students, the language issue is both complex and crucial. Because the large-scale production of good quality teaching materials is expensive, the issue has economic as well as pedagogic ramifications.
In this paper, we are not concerned with the division between environment and language, and we give both the terms language and environment a wide interpretation. For example, we treat a drop-and-drag environment for creating code as a ‘language’in the same way a conventional textual language within an editing environment.
This paper is a synthesis of our research and analysis to date. We do not attempt to give a definitive answer to the question at this stage, and we invite readers to contribute to the discourse.
2. What are we teaching to whom and why?
There is currently a widespread appeal of robotics to adults and children of both sexes. This is evident in the success of television programmes featuring robots, and the growing number of robot competitions. We have broad educational aspirations, and would like to harness the interest and enthusiasm of all groups in this audience for wider educational purposes. The programming environment-language choice must accommodate those we are teaching, what we are trying to teach them, and our deeper educational aims.
The breadth of this list complicates the choice of environment and language. Although, we assume that some students will commence our courses as novices to robotics, the assumptions we can make about existing skills, speed of learning, and appropriate conceptual level will differ among groups. The needs of newly literate children are different from those of highly literate university students, which are different again from the needs of mature students returning to education. This suggests that there is no one perfect programming environment. Our goal must be pragmatic: to serve as many students as possible while making the best use of our resources.
2.1 What are we trying to teach and why?
Our plan is twofold:
* to teach robotics per se;
* to use robotics as a springboard to further to motivate learning.
Robotics itself is multi-disciplinary, encompassing subjects such as mechanical engineering, electronics, control, communication, vision, real-time parallel computing, and systems design. All these are relevant in our teaching.
Robotics is also a vehicle for developing key skills (e.g., teamwork, critical thinking, planning, scientific observation and record keeping); for reinforcing skills in elementary physics, mathematics, and numeracy; and for introducing advanced concepts in simulation, Artificial Intelligence (AI), and cognition.
Furthermore, robots raise profound questions about our relationship with advanced technologies and their potential that allow us to address ethical and social issues surrounding technology use.
2.2 Using robots to bridge between concept and practice
Traditional methods of teaching computing tend to be abstract, and students often have difficulty reasoning about program behaviour and recognising the relevance of their activities. The trouble is that general-purpose languages are complex, in order to afford necessary richness to the programmer. Unfortunately for the novice, this often means:‘you need to know a lot to do a little’.
Many languages require the users to type in a large amount of code to produce relatively trivial results. Either students have to learn the syntax before they can write any programs (which is frustrating), or they have to enter code that is effectively meaningless to them. An alternative approach is to use a graphical programming environment.
Programming with robots using a tailored environment that provide strong visual cues and supports syntactic correctness:
l is concrete: students program things they can handle, to behave in ways they can observe in the physical world
l is incremental
l is creative
l admits many solutions
l allows manipulation within a constrained context
l provides immediate feedback
l has behaviour (and thus encourages anthropomorphisation)
l uses a variety of skills allows complete novices to create interesting outcomes (e.g., “go collect a tennis ball” rather than “print ‘Hello, world.’)
Our experience so far is that programming with robots helps learners to bridge between concept and practice – and to derive principles for themselves from their own experience.
2.3 Robots are appealing
The appeal of robots is evident in the success of television programmes featuring robots, such as RobotWars and TechnoGames in the UK, that attract large audiences across a wide range of ages. For over 75 years robots have been a staple of popular culture. Recent films such Steven Spielberg’s A.I. have stimulated popular debate about the potential of robotics, and the debut of the Sony AIBO has attracted substantial media attention. Competitions involving robots are popular with participants and audiences alike. Robots are attractive to adults and children of both sexes.
3. Choosing a programming environment
Our experience in teaching computing (Griffiths et al., 1999, Woodman et al., 1998), and the current trends in software engineering and AI, give us some general guidance in terms of desirable characteristics for programming environments/languages. An object-based approach would support and integrate with our existing curriculum and is now considered the basis of sound software engineering. Object Oriented programming also makes it easy to represent and present complex behaviours to novices (Griffiths et al., 1999).
We emphasise the importance of providing software suitable for novices. Any programming environment for novices must be robust – it should behave reliably and consistently, and it must not crash. Errors (if they appear at all), must be meaningful.
The human-computer interaction, end-user programming, and visual programming literatures give us some guidance about relevant concepts in language selection, as follows.
The sorts of concepts that can be learned from such an environment include:
* that algorithms can be used to solve problems
* that solutions can be decomposed into relatively small components
* that most tasks can be accomplished by using sequence, iteration, choice
* object concepts
Microworlds have been used on the entry-level Open University course Computing: An Object-Oriented Approach to teach the concepts behind object-oriented (OO) technology. In an early example, the students are able to send messages to an on-screen frog - telling it to hop left, right and up and down, setting its colour, and so on. In later lessons they create subclasses of frogs with some inherited properties and some novel properties particular to the subclass.
3.1 Simulation: separation of control logic from physical control
Simulation is a method commonplace in the field of autonomous mobile robots for working out and testing control strategies in isolation from the physical system.
Figure 3: Ideally, the same program can drive
Figure3 illustrates the ideal in which the same program drives both the simulator and the robots. Although simulations are often different from real systems, simulators allow ideas to be tested, and they are good for detecting bugs when the vagaries of real machines in real environments are not present. This is pertinent to MindStorms where the performance of individual sensors and motors may vary. The effects of physical variation can be addressed when the logic of the program and its implementation are correct. Although a various of RCX simulators are available, we do not feel that they are stable enough for student use at the current time.
3.2 Direct manipulation
An important characteristic of the microworlds approach is the direct manipulation of screen objects, without imposition of linguistic devices or explicit syntax. Hutchins, Hollan, and Norman (1986) attribute to direct manipulation that novices can learn basic functionality quickly, experts can work extremely rapidly to achieve complex ends, and users can see immediately if their actions are furthering goals. Hence, direct manipulation is seen as highly desirable, characterised by the provision of rapid, incremental, reversible operations whose impact on the object of interest is immediately evident (Shneiderman, 1982).
4. Criteria for choice
We derived a list of criteria for language selection. Our primary concern has been an entry-level university course. However, we also wish to re-use materials for use in schools and to support students in competitions such as RoboFesta and RoboCup. Hence, the detailed decisions refer to university level, but the higher level decisions (e.g., OO, layering, multi-mode environments) are meant to generalise across our diverse audience.
Relevant criteria for selecting a language nclude:
- ease of understanding and use (and suitability for novices)
- rapid development
- scalability (from simple programs to complex systems)
- general-purpose programming
- convenient control of physical devices
- robustness
- support for maintenance
- cost
- compatibility with existing course and curriculum decisions
- ease and cost of updating
- longevity
5. Conclusions
We believe that robotics is a suitable vehicle for teaching a wide range of students, no matter what their age or background. The Lego MindStorms kit is an appropriate low-cost solution. Even though our work comparing programming environments/languages for MindStorms is incomplete, the investigations to date allow us to draw provisional conclusions.
First, MindStorms robotics provides an opportunity to offer a microworld that bridges between computing abstractions and real-world activity. Well-designed microworlds and simulations are useful teaching methods, providing a low-risk, controlled environment in which to learn and develop a firm footing for further learning. Using such systems fosters confidence in using skills as well as teaching those skills.
More advanced microworlds, in which the user can see genuine program code being constructed and executed, are excellent Second, although a wide range of programming environments has been created for the MindStorms brick, none meets fully our requirements for an introductory course. With the exception of RoboLab, none of the graphical environments is powerful enough for students to continue to advanced work. The minimalist textual environments (text editors and command line compilers) are not robust or supportive enough for novice – especially young novice – use.
Finally, we conclude that we need to take a progressive approach, starting with a custom-built, graphical, microworld-based system and later moving to a more sophisticated programming environment. 譯文
使用 LEGO Mindstorms 機器人講授機器人技術
作者:Anthony Hirst1, Jeffrey Johnson2, Marian Petre3, Blaine A. Price3, Mike Richards3Departments of Telematics1, Design and Innovation2, and Computing3The Open University, Walton Hall, Milton Keynes, MK7 6AA, UKrobofesta@open.ac.uk
摘要
我們打算給出一個使用 “LEGO Mindstorms 機器人開發(fā)系統(tǒng)”針對不同的學習者講授機器人課的一些教育手段。我們簡要的回顧了當前可用的編程環(huán)境,并且評價了它們對我們所選擇的對象的適用性。易用和功能強大之間通常是互斥的,不可能提出一個單一的編程環(huán)境適合于所有的學習者,作為一種替代方案,一個從Microworlds開始、經歷圖形化編程環(huán)境、直到文本語言的一個遞進的環(huán)境似乎是我們開展這方面教育所能提供的最佳方法。在本文中,我們綜合了我們的想法并展示給大家,希望得到各機器人社團的建設性的意見。
一、引言
機器人技術在講授科學和技術方面是積極而有益的,這個觀點已被許多研究人員所證明(Beer 等人,1999)。我們確信:機器人是刺激學習的一種強有力的方法,機器人的構建和編程要使用很廣泛的科學和工程原理,以及現(xiàn)代技術經濟中的關鍵技能(Wasserman, 2002),這些技能需要團隊合作、周密的計劃以及完整的工作記錄。
假設我們想要用 Mindstorms 所教的內容的深度和廣度是:從簡單編程到工程原理和仿真,而且我們想要服務的對象范圍從小孩到成熟的大學生,語言既要復雜又要是有權威的。因為高質量教育器材的大規(guī)模產品是昂貴的,這中間既有經濟上的原因,也有教育上的原因。
在本文中,我們沒有刻意將編程環(huán)境和語言分開,而且我們給了術語 —— 語言、編程環(huán)境一個寬松的解釋。例如,我們把用于創(chuàng)建代碼的“拖—放”環(huán)境視為“語言”,同樣的情況,對于常見的文本語言只能視為編輯環(huán)境。
這篇文章是我們迄今為止研究和分析的總結,我們不期望在這個時候給出這個問題的最終答案,我們希望讀者也提出自己的論點。
二、我們教什么? 教誰?為什么目的?
對于成人和孩子,不論男女,機器人都普遍存在廣泛的吸引力,這在機器人主演的電視節(jié)目的成功上,不斷成長的機器人競賽中可以明顯的感受到。我們有強烈的教育愿望,并且希望抓住所有這些人的興趣和狂熱,使之服務于更廣泛的教育目的。編程環(huán)境—語言的選擇必須適應我們的教學對象、我們想要教他們的內容以及我們深層次的教育目標。
如此寬泛的群體使得語言環(huán)境的選擇復雜化,盡管我們假設某些學生將作為機器人技術的初學者開始我們的課程,但是我們所作的假設中關于已有的技能、學習的速度以及基本概念的水平在不同的群體中仍會存在差異,才識字的孩子的需要與較高文化層次的大學生是不同的,而大學生又不同于重新接受教育的成年學生的需要。這說明:不存在一個完美的編程環(huán)境,我們的目標必須是現(xiàn)實的:使盡可能多的學生最好的使用我們提供的資源。
(一)、我們要教什么?為什么教?
我們的計劃分兩部分:
· 教機器人技術本身;
· 用機器人技術作為出發(fā)點,進一步激發(fā)學習愿望。
機器人技術本身是多學科的,它包含:機械工程、電子、控制、通訊、視覺處理、實時并行計算以及系統(tǒng)設計。所有這些在我們的教學中都要涉及到。
機器人技術還是一種很好的載體,可用于培養(yǎng)關鍵技能(如:團隊合作、批判性思維、計劃、科學觀察、完整的紀錄等),還可用于加強物理、數學、計算的基本能力,同時還可以引入仿真、人工智能、人工識別等現(xiàn)代概念。
此外,機器人引出了關于我們與現(xiàn)代技術及其潛能之間關系的深層問題,從而允許我們處理圍繞技術的使用帶來的倫理、社會問題。
(二)、 使用機器人在理論和實踐之間建立橋梁
傳統(tǒng)的計算機教學方法往往是抽象的,學生們常常難于推導程序的運行狀態(tài)并識別它們動作的相互關聯(lián)。問題是:因為需要提供給編程者足夠的功能,通用的語言是復雜的,而這對初學者而言是不幸的,通常意味著:你需要為做很少的事而知道很多。
許多語言要求用戶鍵入大量的代碼去產生一些相對無價值的結果。任何學生在能寫程序之前必須學習語法(這使人有挫折感),或者必須輸入一些對他們毫無意義的代碼。一種替代的方法是使用圖形化的編程環(huán)境。
使用合適的環(huán)境給機器人編程(這個環(huán)境提供強大的可視化符號并且支持語法糾正)的優(yōu)點是:
1. 形象化:學生所編程的內容是他們能夠處理的,而且能夠以他們在現(xiàn)實世界中所觀察到的方式去運行;
2. 循序漸進;
3. 可以創(chuàng)新;
4. 可有多種解決方案;
5. 允許處理一些不太合乎邏輯的操作;
6. 提供直接的反饋;
7. 具有習性(因此鼓勵個性化);
8. 使用多種技能;
9. 讓完全初學者能創(chuàng)造出一個有趣的成果;(例如:“去收集一個網球”一定比“打印 Hello,world”更有趣)
迄今為止,我們的經驗是給機器人編程可以幫助學習者建立理論與實踐之間的橋梁,從而使他們從自己的親身體驗中得到原理。
(三)、 機器人是引人入勝的
從以機器人為主角的電視節(jié)目的成功上可以明顯看出機器人的吸引力,例如:英國的 RoboWar 和 TechnoGames,它們吸引了大量的幾乎所有年齡段的觀眾。機器人誕生75年來已經成為大眾文化的主題之一,近期的電影(如斯皮爾伯格的 A.I.) 已經激起了關于機器人潛能的廣泛討論,而 Sony 公司 AIBO的登場也吸引了主要媒體的關注。機器人競賽受到參與者和觀眾同樣的歡迎。機器人對所有性別的成人和孩子都具有吸引力。
三、選擇一個編程環(huán)境
在選擇合適的編程環(huán)境/語言性能方面,我們教計算機課的經驗(Griffiths 等人, 1999,Woodman 等人,1998)以及軟件工程和人工智能方面的流行趨勢給了我們一些主要的指導,應當支持面向對象的方法,并將它與現(xiàn)在已有的課程整合,現(xiàn)在它已在軟件工程基礎中得到重視。對于初學者而言,面向對象編程使得產生和描述一個復雜的行為更容易(Griffiths 等, 1999)。
我們強調提供給初學者合適的軟件的重要性,任何對于初學者的編程環(huán)境必須是堅固的 —— 應當連續(xù)可靠的運行,不能崩潰。錯誤(根本不該出現(xiàn))必須是含義明確的。
人—機交互、最終用戶編程、可視化編程等技術給予我們一些在語言選擇概念上的提示,詳述如下。
能從這樣的環(huán)境中學到的概念包含:
1. 解決問題的算法;
2. 將解決方案分解為相關聯(lián)的小元素;
3. 通過使用順序、重復、選擇能完成大多數任務;
4. 對象概念;
Microworlds 已被用于開放大學的計算機入門課程:一種服務于后續(xù)的面向對象技術概念的面向對象方法。在一開始的例子中,學生們可以送一些信息給屏幕上的青蛙,告訴它向左、向右、向上、向下跳,設置它的顏色等等;隨后的課程中,學生們創(chuàng)造一些具有某些遺傳特征的青蛙子類,同時賦予這些子類特有的一些新特征。
(一)、仿真:將控制邏輯從物理控制中分離
在自治的移動機器人領域,脫離物理系統(tǒng)設計和測試控制策略,仿真是常用的方法。
圖1理想化:同樣的程序可以驅動
圖1示意了這個概念,在此,同樣的程序既可驅動仿真器又可驅動機器人。盡管仿真通常與真實系統(tǒng)有差別,仿真器可以試驗設想,而且,當真實環(huán)境中的真實機器的異?,F(xiàn)象不出現(xiàn)時,仿真器十分適合于找出 Bug。這也與 Mindstorms 相關,在 Mindstorms 中,分立的傳感器和馬達的性能可能變化,但當程序邏輯和程序執(zhí)行正確時,物理變化量的影響是能修正的。盡管有各種各樣的RCX仿真器可以使用,但我們覺得現(xiàn)在這些仿真器對學生使用來說還不夠穩(wěn)定。
(二)、 直接操縱
微世界的一個重要特性是直接操縱屏幕對象,而不需要被迫接受語言或語法,Hutchins、Hollan 和 Norman (1986) 提出,直接操縱可以使:初學者能快速學會基本功能,專家能極快地實現(xiàn)復雜的目的,使用者能直接看到他們的動作能否實現(xiàn)進一步的目標。因此,直接操縱看來是最想要的特性,它提供了這樣的特征:可以快速的、遞進的、可逆的操作有趣的對象,并直接看到明顯的影響。(Shneiderman, 1982)
四、選擇的標準
我們得出了一個語言選擇標準的列表,我們最初關注的是大學入門級課程,可是,我們也希望能利用這些資源服務于中學和輔導參加諸如 RoboFesta 和RoboCup 競賽的學生。因此,細節(jié)的選擇是根據大學的,但更高級的選擇(如:面向對象、分層次,多模式環(huán)境)打算歸納各種學習對象的需求。選擇語言的相關標準包括:
易于理解和使用(而且適合于初學者)
快速開發(fā);
可量測性(從簡單程序到復雜系統(tǒng));
通用編程;
便于對物理設備的控制;
堅固性;
維護支持;
價格;
與現(xiàn)在的課程及課程目標的相容性;
易于升級而且費用不高;
壽命長;
五、結論
我們相信:機器人是教授各種學生的合適載體,不管他們的年齡和背景如何。Lego Mindstorms 套件是一個合適的低成本解決方案,即使我們所做的“比較用于Mindstorms 編程語言環(huán)境”工作不十分完美,迄今為止的研究仍允許我們給出一個暫時的結論。
首先,Mindstorms 機器人提供給微世界一個機會 —— 可以在計算的抽象和現(xiàn)實世界的行為之間架起橋梁。設計良好的微世界和仿真是有效的教學方法,它提供了一個低風險的、可控的環(huán)境,在這個環(huán)境中可以為進一步的學習培養(yǎng)牢固的基礎。在技能的使用和教學中,使用這類系統(tǒng)可培養(yǎng)信心。先進的微世界是用集成開發(fā)環(huán)境進行高級計算機編程的極好的啟蒙手段,在這里,使用者可以看到組建并執(zhí)行的真實程序代碼。
第二,盡管已經有了相當多的 Mindstorms 積木塊編程環(huán)境,沒有一個完全適合我們作為入門課程的需要。除 RoboLab 外,沒有一個圖形化環(huán)境功能強大到滿足學生延續(xù)到高級工作。而簡單的文本環(huán)境(文本編輯器加命令行編譯器)對初學者 —— 特別是低齡初學者來說 —— 不夠堅固或者說支持不夠。
最后,我們做出結論:我們需要采用遞進的方法,從定制的、圖形化的、基于系統(tǒng)的微世界開始,而后過渡到更復雜的編程環(huán)境。
參 考 文 獻
1. 《機械實際材料手冊》編寫組.機械設計材料手冊[M].北京:原子能出版社,1979 .
2. 李春風,潘慶豐.工程力學[M].大連:大連理工大學出版社,2004.
3. 孫鼎倫,程全明.機械工程材料力學[M].上海:同濟大學出版社,1992.
4. 鄭志祥,徐錦康,張磊.機械零件[M].高等教育出版社.1992.
5. 胡家秀.簡明機械零件設計手冊[M].機械工業(yè)出版社.1999.
6. 焦永和.機械制圖[M].北京:北京理工大學出版社.2003.
7. 董懷武,劉傳慧.畫法幾何及機械制圖[M].武漢:武漢理工大學出版社.2002.
8. 費仁元,張慧慧.機器人機械設計和分析[M].北京:北京工業(yè)大學出版社.1998.
9. [日]森政弘.機器人競賽指南[M].科學出版社.2000.
10. 孫迪生,王炎.機器人控制技術[M].機械工業(yè)出版社.1997.
收藏