HTP

Toolkits.HTP History

Hide minor edits - Show changes to output

December 05, 2009, at 04:50 PM by Miguel Nacenta -
Changed lines 27-28 from:
We provide two files for every piece of the model. The SLDPRT are solidworks models that can only be opened with the solidworks software. The STL files are the ones usually required by the 3D printer to generate a copy of the model. Note that, since the precision and resolution of 3D printers is not perfect, you might need to sand off small parts of the model before the servos and other pieces fit perfectly together.
to:
We provide two files for every piece of the model. Files with the SLDPRT extension are solidworks models that can only be opened with the solidworks software. The STL files are the ones usually required by the 3D printer to generate a copy of the model. Note that, since the precision and resolution of 3D printers is not perfect, you might need to sand off small parts of the model before the servos and other pieces fit perfectly together.
Changed lines 40-43 from:
* Casing. The main box: [[Attach:G4-Body.SLDPRT | solid works]], [[Attach:G4-Body.STL | STL]]
* Lid. To close the main box: [[Attach:
G4-Cap.SLDPRT | solid works]], [[Attach:G4-Cap.STL | STL]]
* Rod. [[Attach:G4-Rod.SLDPRT | solid works]], [[Attach:G4-Rod.STL | STL]]
to:
* Casing. The main box: G4-Body.SLDPRT, and G4-Body.STL
* Lid. To close the main box: G4-Cap.SLDPRT, G4-Cap.STL
* Rod.
G4-Rod.SLDPRT, G4-Rod.STL
Changed lines 50-53 from:
* Casing. The main box: [[Attach:G2-Body3.SLDPRT | solid works]], [[Attach:G2-Body3.STL | STL]]
* Lid. To close the main box: [[Attach:G2
-Cap4.SLDPRT | solid works]], [[Attach:G2-Cap4.STL | STL]]
* Rod. [[Attach:G4-Rod-24-4.SLDPRT | solid works]], [[Attach:G4-Rod-24-4.STL | STL]]
to:
* Casing. The main box: G2-Body3.SLDPRT, G2-Body3.STL
* Lid. To close the main box: G2-Cap4.SLDPRT, G2-Cap4.STL
* Rod. G4-Rod-24-4.SLDPRT, G4
-Rod-24-4.STL
Changed lines 57-62 from:
* Casing. The main box: [[Attach:G2-Body7.SLDPRT | solid works]], [[Attach:G2-Body7.STL | STL]]
* Lid. To close the main box: [[Attach:G2-Cap4.SLDPRT | solid works]], [[Attach
:G2-Cap4.STL | STL]]
* Lid 2. To close the brake side of the box: [[Attach:G2-Cap5.SLDPRT | solid works]], [[Attach:G2-Cap5.STL | STL]]
* Rod. [[Attach:G4-Rod-24-4.SLDPRT | solid works]], [[Attach:G4-Rod-24-4.STL | STL]]
* Block. [[Attach:G2-Block2.SLDPRT | solid works]], [[Attach:G2-Block2.STL | STL]]
to:
* Casing. The main box: G2-Body7.SLDPRT, G2-Body7.STL
* Lid. To close the main box: G2-Cap4.SLDPRT, G2-Cap4.STL
* Lid 2. To close the brake side of the box
: G2-Cap5.SLDPRT, G2-Cap5.STL
* Rod. G4-Rod-24-4.SLDPRT , G4-Rod-24-4.STL
* Block. G2-Block2.SLDPRT ,
G2-Block2.STL
December 05, 2009, at 04:45 PM by Miguel Nacenta -
Added lines 29-30:
The files are all compiled in [[Attach:HTP-Models.zip|this zip file]]. Please, check the sections below to know which files to print for which HTP models.
December 05, 2009, at 04:31 PM by Miguel Nacenta -
Changed line 30 from:
* Bottom cover. The casings of the HTP as created by the common 3D printer are usually too harsh on the surface of the table. We recommend covering the bottom side with some kind of fabric or felt. It is preferable to use black, non-reflective material because otherwise the bottom of the HTP is detected as additional blobs (besides the byteTag, see next item in the list), which can interfere with the rest of the interface of the table.
to:
* Bottom cover. The casings of the HTP as created by the common 3D printer are usually too harsh on the surface of the table. We recommend covering the bottom side with some kind of fabric or felt. It is preferable to use black, non-reflective material because otherwise the bottom of the HTP is detected as undesired blobs (other than the byteTag, see next item in the list), which can interfere with the rest of the interface of the table.
Changed line 32 from:
* Cable. Current versions of the HTP are tethered. Although we are already designing and developing a wireless version, the designs available below require a cable connecting the servos and the sensors to their corresponding boards. Different designs require different number of conductors for the cables. You also have to consider the flexibility of the cable for comfortable use. We have successfully used round conductor flat cables, split to the number of conductor required (the kind of cable that you see inside computers connecting buses), or round multi-conductor cables of under 4mm thickness.
to:
* Cable. Current versions of the HTP are tethered. Although we are already designing and developing a wireless version, the designs available below require a cable connecting the servos and the sensors to their corresponding boards. Different designs require different number of conductors for the cables. You also have to consider the flexibility of the cable for comfortable use. We have successfully used round conductor flat cables, split to the number of conductor required (the kind of cable that you see inside computers, connecting buses), or round multi-conductor cables of under 4mm thickness.
Changed lines 63-73 from:
[[Attach:HTP-demo-software.zip | This file]]



Ref to paper

This is a support page

What can
be found in this page
to:
[[Attach:HTP-demo-software.zip | This file]] contains the current version of our demo software. Please, be aware that we provide this software just as courtesy to facilitate the use the HTPs yourselves; in it you can find many examples of how we programmed the different toy-applications. However, the code is not clean or extensively commented. In the future, we are considering creating a clean API, but this will have to wait for us. Please, contact us if you are interested in this kind of project!
December 05, 2009, at 04:20 PM by Miguel Nacenta -
Added lines 27-28:
We provide two files for every piece of the model. The SLDPRT are solidworks models that can only be opened with the solidworks software. The STL files are the ones usually required by the 3D printer to generate a copy of the model. Note that, since the precision and resolution of 3D printers is not perfect, you might need to sand off small parts of the model before the servos and other pieces fit perfectly together.
Changed lines 63-66 from:
to:
[[Attach:HTP-demo-software.zip | This file]]
December 05, 2009, at 03:31 PM by Miguel Nacenta -
Changed lines 32-33 from:
* Micro-servo. All the designs below use a Hitec HS-65 Metal Gear servo to move the rod up and down. To fit it in the casings, you need to clip out the plastic extensions that come with the servo for attachment.
to:
* Micro-servo. All the designs below use a Hitec HS-65 Metal Gear servo to move the rod up and down. To fit it in the casings, you need to clip out the plastic extensions that come with the servo for attachment. You also need to clip 3 out of the four arms of the rotating head. It is possible to use non-metal gear alternatives of the servos, but we recommend metal, since forces are often strong enough to break the servo.
Changed lines 36-38 from:
* Casing. The main box: [[Attach:G4-Body.SLDPRT | solid works]]
to:
* Casing. The main box: [[Attach:G4-Body.SLDPRT | solid works]], [[Attach:G4-Body.STL | STL]]
* Lid. To close the main box: [[Attach:G4-Cap.SLDPRT | solid works]], [[Attach:G4-Cap.STL | STL]]
* Rod. [[Attach:G4-Rod.SLDPRT | solid works]], [[Attach:G4-Rod.STL | STL]]

In this HTP the rotating head attaches directly to the rod. The rotating head piece must be perforated to have a longitudinal groove that lets the rod base move horizontally with respect to the rotating head. A screw holds the rotating head in between the two sides of the rod base.
Changed lines 44-49 from:
to:
This is our current standard model. The main difference with the small HTP is how the servo is attached to the rod. Whereas in the small HTP this connection is direct, the standard uses an extra plastic piece that connects a metal ball screwed to the rotating head to another ball screwed to the bottom end of the rod. These extra pieces are usually included with the servos.

* Casing. The main box: [[Attach:G2-Body3.SLDPRT | solid works]], [[Attach:G2-Body3.STL | STL]]
* Lid. To close the main box: [[Attach:G2-Cap4.SLDPRT | solid works]], [[Attach:G2-Cap4.STL | STL]]
* Rod. [[Attach:G4-Rod-24-4.SLDPRT | solid works]], [[Attach:G4-Rod-24-4.STL | STL]]
Changed lines 51-52 from:
to:
This model is larger, heavier and chunkier, but it includes a brake. The brake is just a piece of rubber that is actuated by another servo and pushes against the surface through an opening at the bottom of the HTP. This model requires an extra servo (Hitec HS 55) and a piece of rubber material that has to be glued to the "block" piece. Also, the brake servo requires a longer arm to be able to reach the bottom.

* Casing. The main box: [[Attach:G2-Body7.SLDPRT | solid works]], [[Attach:G2-Body7.STL | STL]]
* Lid. To close the main box: [[Attach:G2-Cap4.SLDPRT | solid works]], [[Attach:G2-Cap4.STL | STL]]
* Lid 2. To close the brake side of the box: [[Attach:G2-Cap5.SLDPRT | solid works]], [[Attach:G2-Cap5.STL | STL]]
* Rod. [[Attach:G4-Rod-24-4.SLDPRT | solid works]], [[Attach:G4-Rod-24-4.STL | STL]]
* Block. [[Attach:G2-Block2.SLDPRT | solid works]], [[Attach:G2-Block2.STL | STL]]
December 05, 2009, at 03:00 PM by Miguel Nacenta -
Changed lines 36-38 from:
* Casing. The main box attach:g4body.sldprt
to:
* Casing. The main box: [[Attach:G4-Body.SLDPRT | solid works]]
December 05, 2009, at 02:58 PM by Miguel Nacenta -
Changed line 28 from:
* Bottom cover. The casings of the HTP as created by the common 3D printer are usually to harsh on the surface of the table. We recommend covering the bottom side with some kind of fabric or felt. It is preferable to use black, non-reflective material because otherwise the bottom of the HTP is detected as additional blobs (besides the byteTag, see next item in the list), which can interfere with the rest of the interface of the table.
to:
* Bottom cover. The casings of the HTP as created by the common 3D printer are usually too harsh on the surface of the table. We recommend covering the bottom side with some kind of fabric or felt. It is preferable to use black, non-reflective material because otherwise the bottom of the HTP is detected as additional blobs (besides the byteTag, see next item in the list), which can interfere with the rest of the interface of the table.
Changed lines 30-33 from:
* Cable. Current versions of the HTP are tethered. Although we are already designing and developing a wireless version, the designs available below require a cable connecting the servos and the sensors to their corresponding boards. Different designs require different number of conductors for the cables. You also have to consider the flexibility of the cable for comfortable use.
to:
* Cable. Current versions of the HTP are tethered. Although we are already designing and developing a wireless version, the designs available below require a cable connecting the servos and the sensors to their corresponding boards. Different designs require different number of conductors for the cables. You also have to consider the flexibility of the cable for comfortable use. We have successfully used round conductor flat cables, split to the number of conductor required (the kind of cable that you see inside computers connecting buses), or round multi-conductor cables of under 4mm thickness.
* Pressure sensor. In order to close the haptic loop, HTP's have a pressure sensor on top of the rod. We have used the 0.2" Interlink Electronics Circular Force Sensing Resistor (FSR).
* Micro-servo. All the designs below use a Hitec HS-65 Metal Gear servo to move the rod up and down. To fit it in the casings, you need to clip out the plastic extensions that come with the servo for attachment.

!!!! Small HTP
This is the smallest HTP that we have been able to build so far.
* Casing. The main box attach:g4body.sldprt


!!!! Standard HTP


!!!! HTP with Brake
December 05, 2009, at 01:37 PM by Miguel Nacenta -
Changed lines 25-26 from:
We have generated a number of different HTP designs with different sizes and different characteristics.
to:
We have generated a number of different HTP designs with different sizes and different characteristics. Here we make available three of the designs for you to download, 3DPrint, and build. The next subsection describes elements common to all designs. The subsections that follow list all the components and files of each of the designs separately.
Changed lines 28-29 from:
to:
* Bottom cover. The casings of the HTP as created by the common 3D printer are usually to harsh on the surface of the table. We recommend covering the bottom side with some kind of fabric or felt. It is preferable to use black, non-reflective material because otherwise the bottom of the HTP is detected as additional blobs (besides the byteTag, see next item in the list), which can interfere with the rest of the interface of the table.
* Byte tag. Tracking the puck will require that you stick a '''Surface ByteTag''' on the bottom side of the device so that it is visible by the cameras underneath the surface. A number of these tags are provided with the Surface itself, but you can also print your own from the surface SDK.
* Cable. Current versions of the HTP are tethered. Although we are already designing and developing a wireless version, the designs available below require a cable connecting the servos and the sensors to their corresponding boards. Different designs require different number of conductors for the cables. You also have to consider the flexibility of the cable for comfortable use.
December 05, 2009, at 01:23 PM by Miguel Nacenta -
Changed lines 17-18 from:
!!! [[#Basic elements]] Basic elements
to:
!!! [[#Basic elements|]] Basic elements
Changed lines 23-24 from:
!!! [[#HTP sets]] HTP sets
to:
!!! [[#HTP sets|]] HTP sets
Changed lines 30-35 from:
!!! [[#Demo software]] Demo software
to:
!!! [[#Demo software|]] Demo software
December 05, 2009, at 01:22 PM by Miguel Nacenta -
Changed lines 13-18 from:
*[[#Basic elements | Basic elements]]
*[[#HTP sets | HTP sets]]
*[[#Demo software | Demo software]]

!!! [[#Basic elements]]Basic elements
to:
*[[#Basic elements| Basic elements]]
*[[#HTP sets| HTP sets]]
*[[#Demo software| Demo software]]

!!! [[#Basic elements]] Basic elements
Changed lines 23-24 from:
!!! [[#HTP sets]]HTP sets
to:
!!! [[#HTP sets]] HTP sets
Changed lines 30-35 from:
!!! [[#Demo software]]Demo software
to:
!!! [[#Demo software]] Demo software
December 05, 2009, at 01:21 PM by Miguel Nacenta -
Changed lines 17-23 from:
!!! Basic elements

The
current version of HTP works on a [[http://surface.com|Microsoft Surface(TM)]] interactive tabletop (first generation). Our prototype takes advantage from the multi-touch and fiducial marker recognition of the Surface SDK; however, there is no reason why HTPs cannot be built to work on top of different technologies, as long as the absolute position of the HTP on the display image can be detected. For a setup with several HTPs, it is necessary that the absolute position of each one of the devices and their identity are recognized.

Besides the interactive surface, and the computer running it, you need some way to actuate the servos from the computer and to sense the pressure on top of the rod. We use the [[http://phidgets.com|phidgets]] system. Any of the InterfaceKit boards will do for the sensing of the pressure.
to:
!!! [[#Basic elements]]Basic elements

The
current version of HTP works on a [[http://surface.com|Microsoft Surface(TM)]] interactive tabletop (first generation). Our prototype takes advantage from the multi-object fiducial marker tracking and identification of the Surface SDK; however, there is no reason why HTPs cannot be built to work on top of different interactive surface technologies, as long as the absolute position of the HTP on the display image can be detected. For a setup with several HTPs, it is necessary that the absolute position of each one of the devices and their identity are recognized.

Besides the interactive surface, and the computer running it, you need some way to actuate the servos from the computer and to sense the pressure on top of the rod. We use the [[http://phidgets.com|phidgets]] system. Any of the InterfaceKit boards will do for the sensing of the pressure. To control the servos you can use any of the phidget servo usb adapters, although we use an advanced servo control board that allows us to power up to 8 servos from the same usb port.

!!! [[#HTP sets]]HTP sets

We have generated a number of different HTP designs with different sizes and different characteristics.

!!!! Common


!!! [[#Demo software]]Demo software

December 03, 2009, at 05:36 PM by Miguel Nacenta -
Changed lines 21-23 from:
Besides the interactive surface, and the computer running it, you need some way to actuate the servos from the computer and to sense the pressure. We use the
to:
Besides the interactive surface, and the computer running it, you need some way to actuate the servos from the computer and to sense the pressure on top of the rod. We use the [[http://phidgets.com|phidgets]] system. Any of the InterfaceKit boards will do for the sensing of the pressure.
December 03, 2009, at 05:28 PM by Miguel Nacenta -
Deleted line 0:
Changed lines 13-19 from:
^[[#Basic elements]]
^[[#HTP sets]]
^[[#Demo software]]
to:
*[[#Basic elements | Basic elements]]
*[[#HTP sets | HTP sets]]
*[[#Demo software | Demo software]]

!!! Basic elements

The current version of HTP works on a [[http://surface.com|Microsoft Surface(TM)]] interactive tabletop (first generation). Our prototype takes advantage from the multi-touch and fiducial marker recognition of the Surface SDK; however, there is no reason why HTPs cannot be built to work on top of different technologies, as long as the absolute position of the HTP on the display image can be detected. For a setup with several HTPs, it is necessary that the absolute position of each one of the devices and their identity are recognized.

Besides the interactive surface, and the computer running it, you need some way to actuate the servos from the computer and to sense the pressure. We use the
December 03, 2009, at 05:20 PM by Miguel Nacenta -
Added lines 1-27:

!! Haptic Tabletop Puck - development resource center

The Haptic Tabletop Puck (HTP) is a small device invented to explore and develop applications that use haptic feedback on interactive tabletop surfaces (for now, Microsoft Surface). The idea is simple and inexpensive: by attaching a plastic rod to a servo-motor that controls its height, and by sensing pressure on top of the rod, we can provide programmable levels of height and haptic response depending on the location of the device on the table. Since the tabletop provides tracking of fiducial markers, the HTP only needs to have a marker on its bottom.

For more details, you can check the [[http://hci.usask.ca/uploads/165-tabletop2009-htp-cameraready.pdf|paper published in the ITS (Tabletop 09) conference]] and the [[http://hci.usask.ca/uploads/165-2009-HapticPuck.Report2009-936-15.wmv|accompanying video]].

Since the development of our two first generations of the htp, we have decided to open our designs to anyone that wants to build it and experiment with it. We hope that the resources in this page are useful to those of you that are interested in experimenting with haptic feedback on tabletops. You are welcome to try our designs or try new approaches. If you do, we would also love to hear from you.

'''The files and instructions provided in this page are provided AS IS'''; in fact, most of the designs and software included in this page are still at the prototype level, which means that you might need to figure out some elements yourself. In the future, we plan to streamline the contents and provide accurate descriptions of the instructions; in the meanwhile, feel free to send us an e-mail if you need some advice: [[mailto:nicolai.marquardt@ucalgary.ca|nicolai.marquardt@ucalgary.ca]] or [[mailto:miguel.nacenta@ucalgary.ca|miguel.nacenta@ucalgary.ca]].


!!! Contents
^[[#Basic elements]]
^[[#HTP sets]]
^[[#Demo software]]




Ref to paper

This is a support page

What can be found in this page