The Robotics Program at Embry-Riddle Aeronautical University - Prescott Campus provides a strong undergraduate education with a focus on the fundamentals of engineering kinematics, dynamics and controls. Students also explore design topics ranging from robotics real-time control, sensor integration, probabilistic robotics and mechatronics. Numerous hands-on lab and design experiences using industrial hardware and real-time software provide students with the opportunity to use their knowledge, test their analysis and work in team environments.
While the Robotics Program resides primarily within the Department of Mechanical Engineering, robotics degree tracks exist for students majoring in Electrical or Computer Engineering.
The Space Robotics Laboratory supports all the robotics courses and research activities. It features indoor and outdoor testing areas, and enables the development of stationary, mobile and aerial robotic platforms. The laboratory is located in Rooms 107, 108 and 109 of the STEM Education Center.
Robotics Curriculum
This course is an introduction to robotics. The main purpose is to develop in future roboticists the ability to analyze and model the kinematic behavior of simple and redundant kinematic chains and mobile robot manipulators. This requires presenting a rigorous analytic formulation based on fundamental linear algebra and calculus know-how. Emphasis is placed on methods lending themselves to the implementation of simple kinematic algorithms using the Matlab scripting language and graphics built-in functions.
Topics include:
- Linear algebra
- Rotation matrices, Euler angles, angle and axis representation, unit quaternions, and homogenous transformations
- Analytic forward kinematics of open and closed chains
- Analytic inverse kinematics
- Differential forward kinematics
- Kinematic singularities and redundancy
- Differential inverse kinematic
- Splines and trajectory generation
- Workspace and configuration space trajectory planning
- Obstacle avoidance
- Differential drives and mobile manipulation
Robotics is inherently an interdisciplinary field. Mechanical systems provide robots with locomotion and a means to manipulate the environment. Electrical systems power onboard devices and enable robots to sense the world around them. Software controls the physical systems and provides robots with the ability to intelligently respond to diverse situations. Well-rounded roboticists are proficient in all three of these areas.
Mechatronics (ME404) and Mechatronics Laboratory (ME404L) constitute a crash course in practical electrical engineering topics for mechanical engineers on the robotics track. The primary emphasis of the course is gaining hands-on experience with microcontrollers and electrical components in the laboratory. Students learn interfacing considerations while writing C programs to read data from sensors and control motors. For the final project, students must apply their knowledge to produce a fully autonomous mobile robot capable of performing a basic navigational task.
Topics include:
- Programming microcontrollers in C
- Microcontroller simulation and debugging
- Basic microcontroller I/O with switches and LEDs
- Polled and interrupt-driven pushbuttons with debouncing
- Timers and 7-segment displays
- Interfacing ultrasonic sensors using output compare and input capture
- Interfacing IR sensors and potentiometers using A/D converters
- Controlling servos using PWMs
- Motors, H-bridges and rotary encoders
- Batteries and voltage regulators
- Diodes and transistors (BJTs and MOSFETs)
- Brushed DC motors
- System integration to produce an autonomous mobile robot
This course provides students with an understanding of the dynamics and control of robotic systems. Students learn to model the dynamics of robotic systems using both the Euler-Lagrange formulation as well as the recursive Newton-Euler formulation. Students then learn how to utilize these dynamical models as the foundation for designing robot control systems. Assignments in the course use of actual robots found within the Space Robotics Laboratory.
Topics include:
- Kinetic and potential energy
- Euler-Lagrange formulation
- Properties of equations of motion
- Friction models
- Symbolic generation of equations of motion
- System identification of equation parameters
- Recursive kinematics
- Recursive Newton-Euler formulation
- Numerical simulation
- Lyapunov stability theory
- Configuration-space controllers
- Task-space controllers
This laboratory course focuses on the implementation of robot theory and practice onto physical robotic systems. Students gain hands-on experience in applying both standard and emerging robotics techniques to mobile robots and manipulators. Modern programming languages are extensively used throughout the course.
Experiments involve:
- Analytical and numerical inverse kinematics
- Path planning and trajectory generation
- Sensor-based obstacle avoidance
- Mobile robot localization and control
This is the first course in the capstone design sequence. Students choose a project as a team, define the project's requirements and specifications, explore different conceptual design alternatives, and develop a preliminary design consisting of simulations, proof-of-concept prototypes, electrical schematics and CAD drawings. At the end of the semester, the students present their designs at the College of Engineering's Senior Design Exposition.
This is the second course in the capstone design sequence. Students in this course fabricate the robotic system designed in their preliminary design course. Once fabricated, the students perform tests on their robotic system to verify that the design specifications have been met and then validate that the high-level requirements are satisfied. Students present their results at the College of Engineering's Senior Design Exposition at the end of the semester.
This upper-level technical elective provides students with an introduction to the widely utilized Robot Operating System (ROS). The course covers the basic features of ROS, including the ROS master, subscriber nodes, publisher nodes, service nodes and launch files. Students learn how to utilize existing ROS packages and how to create their own packages in both C++ and Python.
Small projects throughout the course allow students to utilize their newly acquired ROS skills to interface with microcontrollers, drive servos, and read and process images from webcams. The course culminates with individual, student-selected projects. Past projects have involved using ROS for object detection, controlling a Rethink Sawyer manipulator, interfacing with the Space Robotics Laboratory's motion capture system, face detection and tracking, building a verbal chatbot, and autonomously driving a Raspberry Pi-based mobile robot.