1 Haptic Systems 530-655 Mohsen Mahvash Lecture 4 12/1/06.

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

Threads, SMP, and Microkernels
Using MapuSoft Instead of OS Vendor’s Simulators.
What is an operating system? Is it software?
Operating Systems Manage system resources –CPU scheduling –Process management –Memory management –Input/Output device management –Storage device management.
Sensor Network Platforms and Tools
Chapter 13 Embedded Systems
RTLINUX/RTFIFO and Tcl/Tk Nishant Upadhyaya Maung Wynn Aung Han Professor Insup Lee CIS642: Seminar in Real-time Systems University of Pennsylvania.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
Operating Systems. What is an Operating System? A layer of software between users/applications and the hardware. The first program loaded onto a computer.
Introduction to Operating Systems – Windows process and thread management In this lecture we will cover Threads and processes in Windows Thread priority.
Chapter 13 Embedded Systems
1 Component Description Alice 3d Graphics Software Human Computer Interaction Institute Carnegie Mellon University Prepared by: Randy Pausch,
Linux User space Kernel space Low prio high prio Linux scheduler main thread rt_thread_create Runs in User Mode : can only address User space Linux syscall.
Input and Interaction Dr. Yingcai Xiao. A good user interface allows users to perform interaction tasks with ease and joy. WYSIWYG (What you see is what.
Hardware (how they work)
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
Building an Application Server for Home Network based on Android Platform Yi-hsien Liao Supervised by : Dr. Chao-huang Wei Department of Electrical Engineering.
Computer for Health Sciences
What is Concurrent Programming? Maram Bani Younes.
TC2-Computer Literacy Mr. Sencer February 8, 2010.
COMP1070/2002/lec3/H.Melikian COMP1070 Lecture #3 v Operating Systems v Describe briefly operating systems service v To describe character and graphical.
Marcelo de Paiva Guimarães Bruno Barberi Gnecco Marcelo Knorich Zuffo
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Kernel, processes and threads Windows and Linux. Windows Architecture Operating system design Modified microkernel Layered Components HAL Interacts with.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
1 Haptic Systems Mohsen Mahvash Lecture 2 9/1/06.
Xenomai’s Porting on processor NIOS II Professor : P. Kadionik Authors : Bassi Vincent Louati Azza Mirault Raphael Polette Simon.
1 Haptic Systems Mohsen Mahvash Lecture 1 9/1/06.
Final Project Alexander Popp. Outline AbstractBackgroundPurposeExperimentalResultsConclusionSummary.
Implementation support z programming tools y levels of services for programmers z windowing systems y core support for separate and simultaneous user-system.
1 The Rendering Pipeline. CS788 Topic of HCI 2 Outline  Introduction  The Graphics Rendering Pipeline  Three functional stages  Example  Bottleneck.
The Linux Operating System C. Blane Adcock Bryan Knehr Kevin Estep Jason Niesz.
1 Haptic Systems Mohsen Mahvash Lecture 11 24/1/06.
May 7, 2003 Command and Control Visualization NAVCIITI Tasks 2.1b.
Haptic technology, or haptics, is a tactile feedback technology that takes advantage of our sense of touch by applying forces, vibrations, and/or motions.
1 Haptic Systems Mohsen Mahvash Lecture 3 11/1/06.
CPSC 453 Tutorial Xin Liu Sep 23, OpenGL An open standard of rendering pipeline A software interface to graphics hardware A useful set of APIs for.
GAYA Analyzer SDD Presentation. GAYA Analyzer Introduction OMS40G256 is a hardware device used for detection of radioactive radiation for medical imaging.
Linux Kernel Management. Module 9 – Kernel Administration ♦ Overview The innermost layer of Linux operating system is the kernel, which is a thin layer.
Foundation year Lec.3: Computer SoftwareLec.3: Computer Software Lecturer: Dalia Mirghani Year: 2014/2015.
1 Haptic Systems Mohsen Mahvash Lecture 9 20/1/06.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
1 Lecture 6 Introduction to Process Management COP 3353 Introduction to UNIX.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Vizard Virtual Reality Toolkits Vizard Virtual Reality Toolkits.
Final Year Project Electronic & Computer Engineering Design and Realisation of Experiments for an embedded Linux Laboratory Class. Student: Andrew Sweeney.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
Presentation Layer (Graphical User Interface) AppGUI Logic Layer (Business Logic and data access) Network Discovery Device Information Extraction Network.
Time Management.  Time management is concerned with OS facilities and services which measure real time.  These services include:  Keeping track of.
August 21, 2002 Command and Control Visualization NAVCIITI Tasks 2.1a & 2.1b.
Kernel Modules – Introduction CSC/ECE 573, Sections 001 Fall, 2012.
Operating Systems A.Biswas Architecture. Computer Startup.
Project Paper Presentation Hanlin Wan March 15, 2011.
An operating system for a large-scale computer that is used by many people at once is a very complex system. It contains many millions of lines of instructions.
Computer System Structures
Operating System & Application Software
Current Generation Hypervisor Type 1 Type 2.
3D Tetris Game on Android OS
Tonga Institute of Higher Education
Chapter 2: System Structures
Operating Systems Lecture 4.
Implementation support
05 | Desktop Applications
Process and Thread State Diagrams
Process and Thread State Diagrams
Implementation support
Presentation transcript:

1 Haptic Systems Mohsen Mahvash Lecture 4 12/1/06

2  Pseudo code for a simple haptic simulation  Haptic rendering rate  Real-time haptic rendering  Free real-time operating systems  MS Windows and Haptic Rendering  OpenHaptics Toolkit and HDAPI  References Real-Time Programming for Haptic Rendering

3 Pseudo code for a simple haptic simulation //Virtual Environment

4  Haptic rendering should be performed at a high fixed rate (1000Hz)  The high rate generation of the force samples can locate the harmoni components out of either the haptic device bandwidth or touch sensitivity  High rate rendering provides stability Haptic rendering rate

5 Time diagram of tasks for a real-time operating system Real-time haptic rendering Haptic threadOther threadsHaptic thread 0 1ms Other threads 2ms Scheduler Process1 Process2 …. Process 9 Thread1-1 Thread1-2 Thread1-3 Thread 2-1 Thread 9-1 Thread 9-2 Haptic thread should not be preempted by any low rate thread such as the graphic thread

6 Free Real-time Operating Systems RTAI Realtime Application Interface See Beginner's Guide and run examples Also Real Time Linux See Beginner's Guide and run examples Real Time Threads Linux Scheduler Linux processes Real Time Scheduler Linux part fifos

7 Real time rendering with RTAI and RTL  Write your Haptic thread in C, make a kernel module and add  it to the real-time kernel by using command insmod hapticThread  Write your graphic and user interaction programs in Linux by using C or C++  Communicate data between your haptic thread and linux process by via FIFOS  You can use FLTK and Fluid to build your user interaction menu and create a window for graphics  Alternatively, you can use Java and Java3d instead of C++ instead of FLTK and OpenGL for graphics rendering and user interaction

8 MS Windows and Haptic Rendering Write your program in Visual C as a process with several threads including a haptic thread and a graphic thread Be careful about communicating data between threads OpenHaptics Toolkit HDAPI: A low level layer for haptic rendering, we use this one. HLAPI: High level haptic rendering added to graphics applications

9 HDAPI Two main components: device, scheduler Typical use of HDAPI:  Initialize the device and enable it  Write your haptic rendering function and define it as a callback function  Initialize the scheduler and start it  Stop the scheduler and disable device when you are done Data communication: Use a callback function to communicate data Callback function: not invoked explicitly by the programmer, another function that receives the callback function's address call the function

10 Tomorrow Introduction to Teleoperation References 3D Touch™ SDK OPEN Haptics™TOOLKIT, Programming Guide,