Ask a question from expert

Ask now

Python Robotics Assignment PDF

5 Pages4313 Words248 Views
   

Added on  2021-06-15

Python Robotics Assignment PDF

   Added on 2021-06-15

BookmarkShareRelated Documents
Python Robotics:An Environment for Exploring RoboticsBeyond LEGOsDouglas BlankComputer ScienceBryn Mawr CollegeBryn Mawr, PA 19010dblank@cs.brynmawr.eduLisa MeedenComputer ScienceSwarthmore CollegeSwarthmore, PA 19081meeden@cs.swarthmore.eduDeepak KumarComputer ScienceBryn Mawr CollegeBryn Mawr, PA 19010dkumar@cs.brynmawr.eduAbstractThis paper describes Pyro, a robotics programming en-vironment designed to allow inexperienced undergradu-ates to explore topics in advanced robotics.Pyro, whichstands for Python Robotics,runs on a number ofad-vanced robotics platforms.In addition,programs inPyro can abstract away low-leveldetails such that in-dividual programs can work unchanged across very dif-ferent robotics hardware.Results ofusing Pyro in anundergraduate course are discussed.Categories & Subject DescriptorsK.3 [Computers & Education]:Computer & Infor-mation Science Education - Computer Science Educa-tion.GeneralTermsDesign, Human Factors, LanguagesKeywords:Pedagogy, Robotics, Python1IntroductionThe use of robots in the undergraduate curriculum hasgrown tremendously in the last few years [9, 11, 7, 2, 5,Permission to make digitalor hand copies of allor part ofthis work for personal or classroom use is granted without feeprovided that copies are not made or distributed for profitor commercialadvantage and that copies bear this noticeand the fullcitation on the first page.To copy otherwise,or republish,to post on servers or to redistribute to lists,require prior specific permission and/or a fee.SIGCSE ’03, February 19-23, Reno Nevada, USA.Copyright 2003 ACM 1-58113-648-X/03/0002...$5.0012, 4, 6].The availability of low cost, easy-to-use prod-ucts (such as the LEGO Mindstorms, and Fred Martin’sHandyboard [8]) has even led to a wide use of robots inmiddle and high school curricula.Although this equip-ment has been of enormous help in the introduction ofrobotics to new students, many of the topics addressedmust be necessarily limited due to the simplistic natureofthe hardware.For example,more sophisticated ar-tificialintelligence and robotics topics such as vision,mapping, and planning cannot be fully addressed.There are now many,medium-cost advanced roboticsplatforms on the market,for example Probotics’Cye,ActivMedia’s Pioneer2 and AmigoBOT, and K-Team’sKhepera to mention just a few.These robots often al-low the optionaluse of cameras,sonar,and even laserrangefinders.Unfortunately, these more advanced robotplatforms cater mostly to research-oriented users andare often inaccessible to undergraduates.In addition,there is not a unifying interface between these robots:each one comes with its own (often proprietary) devel-opment tools and each is substantially different from theothers (for example,implemented in Java,C++,someother scripting language).If one did invest in learningto use one robot platform,probably none of the code,and possibly little of the knowledge,would transfer toa different platform.In this paper,we describe a project that addresses theabove situation.We are creating a set of tools that makeup the next generation teaching and research-level robotlaboratory.In developing these tools,we want to en-sure that research-level robotics hardware and method-ologies are accessible to computer science faculty whomay not have robotics experience or whose robotics ex-perience was limited to Handyboard-type, LEGO-basedrobots.The resulting system, called Pyro, was designedwith the following goals:the system should be easy forbeginning students to use,provide a modern object-oriented programming paradigm,run on severalplat-forms, allow exploration of many different robot controlparadigms and methodologies,remain usefulas usersgain expertise,be extendable,allow forthe creation
Python Robotics Assignment PDF_1
Figure 1:Pyro Architectureof modern-looking visualizations, and be distributed asopen source.In what follows, we first present an overview of the sys-tem architecture, followed by a description of the model-ing methodologies currently incorporated, programmingexamples, and how it has been used in our curriculum.2Pyro:Python RoboticsPyro stands for Python Robotics.As mentioned,oneofthe goals ofthe Pyro project is to provide a pro-gramming environmentthatcan be used forexperi-menting with various types of intelligent controllers onseveralrobot platforms and simulators.Currently,therobots supported include the Pioneer family (Pioneer2,AmigoBOTs,etc.)and the Khepera family (Kheperaand Khepera 2 robots).Additionally,there are simu-lators available for both ofthese types ofrobots thatPyro can connect onto, and control, as well.Although it is important to be able to control very dif-ferent kinds of robots from a single application program-ming interface (API),a more important goalwas thatindividual programs should be able to control very dif-ferent kinds of robots.That is, a single program shouldrun on a 75 pound Pioneer2AT with, for example, laserand sonar sensors,and that same program should alsorun unchanged on a 2 inch tallKhepera with infraredsensors.By developing the right level and types of ab-stractions, Pyro largely succeeds in this goal.Exampleswill be discussed below.Pyro also has the ability to define different styles ofcontrollers.For example,the controlsystem could bean artificialneuralnetwork (ANN),a subsumption ar-chitecture,a collection offuzzy logic behaviors,or asymbolic planner.Any such program that controls therobot (physicalor simulated) we refer to as a brain.Each brain is written in Python and usually involvesextending existing class libraries (see Figure 1).The li-Figure 2:Dynamic 3-D visualization of a Khepera andits infrared sensors.braries help simplify robot-specific features and provideinsulation from the lowest level details of the hardware.In fact,the abstraction provided uniformly accommo-dates the use ofactualphysicalrobots or their sim-ulations even though vastly different sensors,drivers,motors, and communication protocols may be used un-derneath the abstraction layer.Consequently,a robotexperimenter can concentrate on the behavior-level de-tails of the robot.Pyro also provides facilities for the visualization of var-ious aspects of a robot experiment.Users can easily ex-tend the visualization facilities by providing additionalPython code as needed in a particular experiment.Forexample, you can easily create a graph to plot some as-pect of a brain, or sensor, with just a few lines of code.In addition,Pyro can,through Python’s OpenGL in-terface,generate real-time 3D views.Figure 2 shows avisualization of a Khepera robot and its infrared read-ings.In keeping with the spirit ofthe Pyro project,we created an abstract API so that 3D shapes can bedrawn in this window without knowing anything aboutOpenGL.The Python language has generated much interest inrecentyearsasa vehicleforteachingintroductoryprogramming, object-oriented programming, and othertopics in computer science.1Because Pyro is imple-1Peter Norvig has recently been porting the example codefrom Russel and Norvig’s “ Artificial Intelligence:A Modern
Python Robotics Assignment PDF_2

End of preview

Want to access all the pages? Upload your documents or become a member.