| |
CS370 INTELLIGENT MOBILE
ROBOTS (4 Cr.)
COURSE DESCRIPTION
Prerequisite:
CS201 or CS330 or
equivalent software or hardware experience
Description
This course
teaches how to design, build, and program autonomous robots. Topics include
robot architecture (e.g., sensors, effectors, processors, and platforms), as
well as adaptive behavior (e.g., navigation, machine learning, and
evolutionary robotics). A significant portion of the course incorporates
hands-on experience with real robots as well as simulators. The second half
of the course will involve team-based projects and a final demonstration.
Course Outline
(Please note that this course continues to evolve as instructors gain
experience teaching it and as new robotics technologies become available at
lower costs.)
- Introduction to intelligent mobile robots
- Autonomous vs. Industrial robots
- History of robotics
- Artificial Intelligence
- State-of-the-art in research, scientific,
commercial, hobby, and entertainment robots
- Models of robotic computation
- Sensors-Processors-Effector
- Control loops, internal models, behavior
hierarchies
- Levels of computational power, and intelligence
- Types of Locomotion
- Legs (walkers)
- Hexapods, Quadrapods, and bipods
- Static vs. Dynamic stability, gaits
- Wheels
- Skid Steer vs. Ackerman steering
- Holonomic drives and Omni-directional wheels
- Tracked
- Aquatic robots
- Aerial robots
- Basic Sensors and Effectors
- Servos and servo-control
- Motors and motor control
- Contact sensors
- Infrared sensors, passive and active
- Sonar range finders
- Light, heat, and power sensors
- Tilt and compass sensors
- Propriocentric sensors
- Grippers and graspers
- Communication
- Robot brain architectures
- Stimulus-Response robots
- Digital Braitenberg Vehicles
- S-R behaviors: Obstacle avoidance,
light-seeking, edge-avoidance, wall-hugging, etc.
- Hierarchies of S-R behaviors
- Robots with finite memory (state-based thinking)
- Finite State Automata
- Classifier systems (internal message lists)
- Navigation and path planning
- Robots with infinite memory (full CPUs)
- Mapping behavior
- Heuristic planning
- Learning and adaptation
- Tele-robotics vs. autonomy vs. hybrid control
- Evolutionary robotics
- Cooperative robotics
- Presentation of final projects
|






CS101 CS120 CS120A CS122 CS201 CS222 CS228 CS295 CS297 CS298 CS302 CS322 CS326 CS330 CS370 CS422 CS424 CS426 CS442 CS444 CS446 CS460 CS470 CS480 CS490 CS491 CS495 CS496 CS497 CS498 |
Additional Course Description
Text
Mobile Robots: Inspiration to Implementation, 2nd
Edition, by Joseph L. Jones, Anita M. Flynn, and Bruce A. Seiger
Objectives
This course has several major objectives:
- As an upper-division undergraduate
course requiring the integration of many fundamental techniques of
computer science, mobile robotics can be seen as an applied,
"capstone" course in Computer Science. Foundational areas of Computer
Science such as computer architecture, hardware, applications
programming, operating systems, systems analysis, algorithm analysis and
design, networking and data communications, and software engineering,
are all drawn upon in the design, development, and testing of
intelligent, autonomous robot platforms. So one major objective of this
course is to solidify and reinforce student understanding of previous
coursework through the integrated application of core CS course topics.
- As a project-oriented discipline,
robotics offers students a chance to work in teams on significant,
goal-oriented projects, a rare opportunity in a typical
undergraduate Computer Science curriculum. Since so many skills are
required to complete each robot project (see list in objective 1 above),
and because students have different strength levels across these areas,
diverse teams are formed and students must identify and draw on each
other’s strengths to accomplish their goals. Thus one team member might
show others how to build a control circuit, while another member of the
team might help the others to program in Visual Basic.
- In addition to the more general skills
identified in objectives one and two above, this course is uniquely able
to teach several specific skills:
- embedded computation:
There is a trend in industry toward putting intelligence in small,
mobile devices, such as Personal Digital Assistants (PDAs such as
the Palm Pilot), cellular phones, set-top boxes, video games, toys,
automobiles, kitchen appliances, washing machines, etc. With
increasing processing power, these devices are acquiring full
operating systems, and demand more sophisticated algorithms that
must function reliably while dealing directly with an unreliable
real-world. This is what robots must deal with all the time. Recent,
related terms for this kind of computing include situated
computers, and ubiquitous computing. Ultimately,
students should gain a deeper understanding of computation at all
levels by implementing their own complete, self-contained,
autonomous computer system.
- real-time processing:
Many of today's embedded processors have to be programmed to process
large amounts of input data and to respond to it intelligently and
in real-time. Industrial process controllers and robots, for
example, have in common the need to quickly detect and correct
deviations from equilibrium conditions (for a robot, equilibrium can
mean staying upright!). Correct prioritization of multiple tasks is
critical.
- intelligent systems:
Since these mobile, embedded processors are often disconnected from
the internet, they must be autonomous. This requires the use of some
of the latest algorithms from the fields of artificial intelligence,
adaptive systems, and autonomous agents.
- technical innovator skills:
This is a term that I have invented, but the idea is known.
The objective here is to introduce students to the challenge of
innovation, in which students plan and explore a novel product or
capability. From teaching this course I have learned that
creating an innovative new computer application requires a whole set
of skills genuinely useful and practical that are not needed in
other coursework. These include the ability to brainstorm, to
aggressively pursue leads and ideas, to thoroughly research all
possibilities, to seek out experts and engage them in the
challenging task at hand, to make use of all available resources,
including manufacturers, vendors, administrators, other students and
faculty, and even the general public. For example, in building
one of the first web-based, tele-operated mobile robot arms, student
Tony Glines learned that by finding an enthusiastic technical
support engineer at one of the microcontroller vendors, he could
have someone else figure out how to overcome a challenging control
problem for him. In fact, the vendor asked to be informed of
the final outcome and has requested the use of Tony's project as a
success story for the vendor's own marketing activities. Thus
a goal of this course is to have students "unlearn" their customary
passivity, to show enthusiasm to others when confronting a new
challenge, and to be creative, thorough, and flexible when faced
with many unknowns, and open problems. This means promoting
your project when asking for help. It means treating vendors
and suppliers as team members, but also realizing that even though
you might be applying their product in a totally new way, you are
still the customer and you have paid for their product: you
should expect their total support. Students should learn
that they must constantly sell their project idea, to everyone.
They must learn to seek out the right people: sometimes the
technical folks, sometimes the marketing people, and other times the
decision makers and executives. They must use the phone, in
addition to email. In short, if you are innovating, you cannot
be passive. You are breaking new ground. You must lead.
Requirements
- Home Work
Series of written homeworks, sometimes from
text, involving some robot programming, some essays, some mathematics (e.g.,
geometry) and some web-based research. Examples include designing the
control circuit for a digital Braitenberg vehicle that avoids light,
programming a microcontroller to manipulate servos, planning paths,
navigating, and map- building.
- Individual Research Project
Use the web, library, periodicals, manufacturers'
technical assistance, other NMU faculty and students, etc. to
research and document a particular capability or piece of equipment (e.g.,
what kind of laser rangefinders are available that can be interfaced to a
laptop?). Document in a short report, to be linked to on the web or
published as a NERL (robotics lab) technical note. Present to class.
- Expert Group Research Project
- Final, Team-Based Project and Presentation
|
|