About→Overview

This page provides some background on the software and hardware tools used to create AR Golf. Given that the project is still in alpha, we'll be updating this page with even more information as the project evolves.

About→Hardware

In order to connect the real world and the virtual one some key hardware is needed. For the ball to fly correctly in the virtual world, accurate data on the person's swing is necessary. In addition, to make the transition from the real world to the virtual one, hardware to implement the augmented reality is needed.

Sensors for Swing Data

    OptiShot's Dancin' Dogg

    OptiShot created the Dancin' Dogg for golfers to practice their game at home. Using two rows of infrared sensors beneath the club, the Dancin' Dogg is able to do accurate swing analysis, providing the club speed and the angle for the golfer, and then displays the shot through a simulation program the golfer can display on a television or projector.

    The Dancin' Dogg was used for the first version of ARGolf to determine the velocity of the ball and angle of the club. While it served its purpose, it wasn't quite what was needed. The device was not meant to be used for other programs so the team had to reverse engineer, or determine exactly what data was being sent from the device and interpret it for the ARGolf project. In addition, the demonstration was outside in a tent on a very sunny day, so the infrared sensors did not work well due to all of the light interference.

    For more information on OptiShot's Dancin' Dogg, visit http://www.dancindogg.com.

    AMM Technologies LLC's AmmSensor

    The AmmSensor, like the Dancin' Dogg, was designed to help golfers improve their game at home. However, the AmmSensor uses an accelerometer, a gyroscope, and a magnetometer to gather data and is typically attached to the player to monitor their body position during their swing. It uses bluetooth communication to send all of the information to a laptop or smartphone where either a pre-made program will accurately display the information in a way the player can understand or the player can write their own software to use the data in any way they choose.

    Currently being used in the second version of AR Golf, the AmmSensor allows the team to find an accurate velocity of the club as well as the angle of the club head without having to worry if the lighting of the area will interfere with data collection. Another benefit for the team was that the AmmSensor came with software that allows them to analyze the data from the device without having to reverse engineer it, so it can be used to its fullest capabilities. Still being tested with the program, the AmmSensor will be attached to the club itself and will hopefully provide accurate and reliable information on the club.

    For more information about AMM Technologies LLC and the AmmSensor, visit http://www.ammsensor.com/Home.aspx.

→Back to Top

Resources→Software

Throughout the history of the project, AR Golf has used and continues to use a variety of different libraries and software development kits (SDKs) to make the game possible.

    ARToolKit

    The ARToolKit is a software library for augmented reality programs, or programs that overlay a virtual image on the real world. Originally developed by Dr. Hirokazu Kato, the ARToolKit uses computer vision algorithms to recognize physical black and white markers in real time to determine exactly where to place the virtual image.

    The golf team uses the ARToolKit to overlay the virtual world of the golf course on the physical world. Custom RIT markers provide directional information to the program so the world is rendered correctly.

    For more information on the ARToolKit, visit http://www.hitl.washington.edu/artoolkit.

    Boost C++ Libraries

    Developers from all over the world have worked to create the Boost libraries. Boost extends the functionality of C++ by providing useful tools such as multithreading and image processing to aid programmers and expediate the development process. These libraries are free to use since they are composed of hundreds of developers' contributions and many common programs, such as Adobe Acrobat Reader, are implemented with Boost.

    The current iteration of AR Golf uses the Boost libraries for multithreading. We are able to add more functionality and allow our game to run much more smoothly with different parts of the game, such as the sensor, the game itself, and the robots, able to operate at the same time.

    For more information on the Boost C++ Libraries, visit www.boost.org.

    Ogre3D

    Ogre stands for Object-Oriented Graphics Rendering Engine and is an open-source 3D graphics engine written in C++. Ogre is meant to provide an intuitive and flexible engine to help developers create applications with 3D graphics without too much trouble. The engine provides OpenGL and DirectX support as well as a wide variety of functionality, such as simple rendering, animation, special effects and is constantly being updated and improved.

    When the project started, the programming team was both small and inexperienced in graphics. Therefore, it was necessary to search for a free software development kit (SDK) that would handle displaying the graphics the art team provided. The team looked into both the Epic's Unreal Engine and Valve's Source engine, but after investigating a tip from a fellow student who had worked on a different augmented reality project, the team decided to use the Ogre3D engine. The team continues to use the Ogre engine today as they are focused building their own physics engine, but a future hope is to be able to build a custom graphics engine as well.

    For more information on Ogre3D, visit http://www.ogre3d.org/about.

    OgreAL and OpenAL

    OgreAL is a wrapper for OpenAL, which allows developers to integrate audio inot their 3D programs developed with the Ogre engine. Designed by Creative, OpenAL is a 3D audio APIcreated for use with game applicaations as well as many other audio applications. It is developed so a single listener can hear audio sounds to move in a 3D space. The team is currently looking into OgreAL for the addition of sound to the game.

    For more information on OgreAL, visit http://www.ogre3d.org/tikiwiki/OgreAL. For more information on OpenAL, visit http://connect.creativelabs.com/openal/default.aspx.

    OgreNewt and Newton Game Dynamics

    OgreNewt is a library built to make the Newton Game Dynamics physics engine accessible to developers that are using the Ogre engine for graphics. A good majority of the features in the Newton engine are implemented in OgreNewt. The Newton engine is small and fairly easy-to-use and provides physics solutions that look true to life.

    When the team first started, the developers used OgreNewt and subsequently, the Newton physics engine, to provide the physics of the game, such as collisions. Now that the project has grown, the developers have decided to create a custom physics engine because the game itself does not need a very robust physics engine.

    For more information on OgreNewt, visit http://walaber.com. For more information on Newton Game Dynamics, visit http://newtondynamics.com.

→Back to Top