Skip navigation

ME 327: Design and Control of Haptic Systems

Welcome

Welcome to ME 327: Design and Control of Haptic Systems. The CURRENT offering of this course is in Spring 2022 and course materials for this year should be accessed by Stanford students through Canvas. In contrast, this webpage is offered as a service for the worldwide haptics research and teaching community and includes only course materials from when the class was offered online in Spring 2020. The next offering of ME327 at Stanford will be in Spring 2023. You can also access a lower-level, self-paced MOOC for haptics here: https://hapticsonline.class.stanford.edu/ (free to watch videos, pay for quizzes, assignments, and a certificate). Note that due to changes in availability of parts, the current Hapkit (lab kit) parts list and instructions are out of date. We aim to update these in Summer 2022.

In this class, we study the design and control of haptic systems, which provide touch feedback to human users interacting with virtual environments and teleoperated robots. This class is aimed toward graduate students and advanced undergraduates in engineering and computer science. This class requires a background in dynamic systems and programming. Experience with feedback control and mechanical prototyping is also useful. Course information and policies for 2020 are contained in the syllabus. This course covers device modeling (kinematics and dynamics), synthesis and analysis of control systems, design and implementation of mechatronic devices, and human-machine interaction.

The instructor for ME 327 is Allison Okamura, Professor in Mechanical Engineering at Stanford University. The course assistants in Spring 2020 were Brandon Ritter and Zonghe Chua, both graduate students in Mechanical Engineering.

For announcements, discussion, and grades, please see http://canvas.stanford.edu.

Lectures

PDFs of lecture slides and panopto video recordings (with quizzes), where available, are linked.
Week 1:
4/6Lecture 1: Introduction to haptics (slides,video)
4/7Interactive Session 1: Introductions (slides)
4/8Lecture 2: Tactile and kinesthetic devices (slides,video)
4/9Interactive Session 2: Haptic Design (slides)
Week 2:
4/13Lecture 3: Human haptic perception (slides,video)
4/14Interactive Session 3: Human Haptics (slides)
4/15Lecture 4: User studies (slides,video)
4/16Interactive Session 4: User Studies (slides)
Week 3:
4/20Lecture 5: Tactile haptic devices (slides,video)
4/21Interactive Session 5: Tactile Haptic Devices (slides)
4/22Lecture 6: Haptic illusions (slides,video)
4/23Interactive Session 6: Haptic Illusions (slides)
Week 4:
4/27Lecture 7: Kinesthetic design (slides,video)
4/28Interactive Session 7: Rendering a Wall (slides)
4/29Lecture 8: Kinesthetic sensors and actuators (slides,video)
4/30Interactive Session 8: Kinesthetic haptic devices: sensors and actuators (slides)
Week 5:
5/4Lecture 9: Kinesthetic dynamics and control (slides,video)
5/5Interactive Session 9: Kinesthetic haptic devices: Dynamics and Control (slides)
5/6Lecture 10: Kinesthetic Stability (slides,video)
5/7Interactive Session 10: Kinesthetic haptic devices: Stability (slides)
Week 6:
5/11Lecture 11: Multi-DOF kinesthetic devices (slides,video)
5/12Interactive Session 11: Kinesthetic haptic devices: multi-DOF design and kinematics (slides)
5/13Lecture 12: Multi-DOF rendering (slides,video)
5/14Interactive Session 12: Kinesthetic haptic devices: multi-DOF rendering (slides)
Week 7:
5/18Lecture 13: 1-DOF rendering (slides,video)
5/19Interactive Session 13: Hapkit Assembly, part 1 (slides)
5/20Lecture 14: Hapkit programming (slides,video)
5/21Interactive Session 14: Hapkit Assembly, part 2 (slides)
Week 8:
5/25Lecture 15: Teleoperation implementation (slides,video)
5/26Interactive Session 15: Teleoperation: Implementation (slides)
5/27Lecture 16: Teleoperation transparency and stability (slides,video)
5/28Interactive Session 16: Teleoperation: Transparency and Stability (slides)
Week 9:
6/2Interactive Session 17: Hands-on Demos 1
6/4Interactive Session 17: Hands-on Demos 2
Week 10:
6/8Interactive Session 18: Haptic Rendering Examples and Teleoperation (slides)

Assignments

Access to solutions is restricted to students in the class; if you are not in the class and wish to see the solutions, email Allison and please explain who you are and what you will use the solutions for, and include a faculty mentor or teacher in the email.

Assignment 1: Introduction to Haptics and Haptic Devices
Assignment 2: Human Haptics
Assignment 3: Tactile Devices
Assignment 4: Kinesthetic Device Design, Sensors, and Actuators
Assignment 5: Kinesthetic Device Design and Control
Assignment 6: Multi-Degree-of-Freedom Kinesthetic Devices
Assignment 7: Haptic Rendering on a 1-DoF Kinesthetic Haptic Device (Hapkit_Template1,Hapkit_Template2)
Assignment 8: Rendering with Dynamics and Graphics, Vibration Feedback and Teleoperation (Assignment8_processing.zip,Assignment8_tele.zip)

Students in the class will create and use their own versions of Hapkit, a haptic device created specifically for haptics education. NOTE: As of September 2020, Hapkit Boards are no longer consistently available from Seeed Studio, and many of the other parts are no longer available. We are working to update the parts list and assembly instructions, and aim to post these in Summer 2022.

Readings

Any suggested readings are identified in the assignments. Links to PDFs of readings are posted here.

Campion05-IROS-Pantograph -errorHighlighted.pdf
Hannaford16-RH-Haptics.pdf
Hannaford89-TRO-Teleop.pdf
HashtrudiZaad01-IJRR-Teleop.pdf
Hayward07-RAM-DIY1.pdf
MacLean08-RHFE-Design.pdf
Ruspini97-IROS-Rendering.pdf

Presentation and Demo

Paper comprehension and presentation are important skills for research and development, and paper presentations will introduce the class to a wide variety of haptic systems. Each team will record a paper presentation, give a live hands-on demo, and view each other's presentations.

Presentation and Demonstration Assignment

Project

There was no course project this year. Last time this course was taught with a project, in 2019, the project was to: (1) create a haptic device, (2) analyze its behavior from a dynamic systems and control perspective, and (2) demonstrate an interesting application or use the device. The system must include bidirectional haptic interaction between a person or a robot/agent and an augmented, remote, or virtual environment.

Project Wiki Pages from 2019