All Projects → Jam3 → Invisible Highway

Jam3 / Invisible Highway

Licence: mit
Invisible Highway is an experiment in controlling physical things in the real world by drawing in AR. Simply make a pathway along the floor on your phone and the robot car will follow that path on the actual floor in your room. A custom highway with scenery is generated along the path to make the robots a little more scenic on your phone screen.

Projects that are alternatives of or similar to Invisible Highway

Articulations Robot Demo
Stars: ✭ 145 (+22.88%)
Mutual labels:  robotics, robot, unity
Pixelbot
Stars: ✭ 90 (-23.73%)
Mutual labels:  robot, bluetooth
Rvd
Robot Vulnerability Database. An archive of robot vulnerabilities and bugs.
Stars: ✭ 87 (-26.27%)
Mutual labels:  robotics, robot
Arcoreutils
Unity plugin that adds shadow and collision to ARCore.
Stars: ✭ 103 (-12.71%)
Mutual labels:  unity, arcore
Gopigo3
The GoPiGo3 is a Raspberry Pi Robot!
Stars: ✭ 74 (-37.29%)
Mutual labels:  robotics, robot
Ev3dev Lang Java
A project to learn Java and create software for Mindstorms Robots using hardware supported by EV3Dev & the LeJOS way.
Stars: ✭ 79 (-33.05%)
Mutual labels:  robotics, robot
Plus
Otto DIY+ ("Otto DIY with steroids" + Bluetooth + APP + switch + sensors + strength +...
Stars: ✭ 100 (-15.25%)
Mutual labels:  robot, bluetooth
Robot Software
CVRA monorepo - All software running on our bots lives here
Stars: ✭ 39 (-66.95%)
Mutual labels:  robotics, robot
List of robot electronics
A curated list of awesome open source electronic resources for robotics
Stars: ✭ 106 (-10.17%)
Mutual labels:  robotics, robot
Xr Unity
8th Wall XR Unity projects and resources. Feel free to contribute!
Stars: ✭ 108 (-8.47%)
Mutual labels:  unity, arcore
Robotics setup
Setup Ubuntu 18.04, 16.04 and 14.04 with machine learning and robotics software plus user configuration. Includes ceres tensorflow ros caffe vrep eigen cudnn and cuda plus many more.
Stars: ✭ 110 (-6.78%)
Mutual labels:  robotics, robot
Mabel
MABEL is a feature-packed, open-source, legged balancing robot based off of the Boston Dynamics Handle robot.
Stars: ✭ 72 (-38.98%)
Mutual labels:  robotics, robot
Anki.vector.sdk
Anki Vector .NET SDK
Stars: ✭ 47 (-60.17%)
Mutual labels:  robotics, robot
Icub Main
The iCub Main Software Repository
Stars: ✭ 86 (-27.12%)
Mutual labels:  robotics, robot
Arfoundation Components
📱 Generic components for use with Unity's AR Foundation package
Stars: ✭ 43 (-63.56%)
Mutual labels:  unity, arcore
Webots
Webots Robot Simulator
Stars: ✭ 1,324 (+1022.03%)
Mutual labels:  robotics, robot
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+1489.83%)
Mutual labels:  robotics, robot
Dexter
A rich GUI and example code for visualizing and controlling the Dexter robot arm from Haddington Dynamics
Stars: ✭ 32 (-72.88%)
Mutual labels:  robotics, unity
Multi Robot Path Planning On Graphs
Multi-Robot Path Planning on Graphs Solution by A* algorithm
Stars: ✭ 36 (-69.49%)
Mutual labels:  robotics, robot
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-11.02%)
Mutual labels:  robotics, robot

Invisible Highway

image

Remember how fun remote control cars were to play with as a child? Well, what if you could control where the car goes by drawing invisible highways in your living room? What if you could watch as an imaginative and fun scene is dynamically generated around your car as it drives through the roads you’re creating.

This playful experiment examines just how AR can be used to intuitively control physical objects.

Originally prototyped by Anna Fusté and Judith Amores from the MIT Media Lab, the two researchers who worked with Google Creative Lab over the summer to experiment with AR and developing new and meaningful interaction models with our environment. Google then brought on global design and experience studio Jam3, to design and build out the concept, and add dynamic functionality that would seamlessly meld the physical and digital worlds.

Google Blocks was used for initial modelling. The car was built using an off the shelf model from Adafruit with DIY additions. The app is built in Unity and communicates with the robot via Bluetooth.

You can read about this and other AR Experiments here.

Hardware

Bill of Materials

To create the robot you will need the following:

  • 1x robot
  • 1x IMU
  • 2x encoders for the motors
  • A cover for the robot. Print it on A4 without scaling to fit, cut and assemble it so that it looks like this and paint with a color which is not found in the environment you will be using the robot, so that the Chroma Key shader can pick it up

Setting up the Robot

  • Download VS Code
  • Install the PlatformIO extension
  • Open the "Robot-Firmware" folder in VS Code
  • Connect the robot via USB
  • Press the upload button in the bottom left of VS Code

PlatformIO should automatically install the dependencies. if you get build errors due to missing libraries:

  • Open the file platformio.ini
  • Click the terminal icon on the bottom bar of vs code
  • For each number in the lib_deps (?) section of the ini, run in the terminal: pio install # where # is the number from lib_deps

Using the Adafruit Bluefruit LE Connect app, connect to the robot and issue a few commands to make sure everything is working as expected.

Software

Installation

To install the app on an ARCore-compatible device do the following:

  • Install all the ARCore pre-requisites on the device (for instance the ARCore service)
  • Pull this repository and using a version of Unity 2017.1 beta9 or later open the InvisibleHighway.unity scene
  • You will need to import the ARCore UnityPackage and ensure all the project settings conform to ARCore requirements.
  • You will need to buy and import the Bluetooth LE for iOS, tvOS and Android package
  • Switch your platform to Android in Unity build settings
  • Build and Run for your device.

Usage

  • Make sure your Robot is turned on.
  • Launch the app, preferably in landscape mode.
  • Observe the blue LED on the Robot turn on to indicate that the bluetooth connection with the app is established.
  • Keep the app pointing to the floor and move it slightly around so that it can recognize the floor as the main ground plane.
  • Once the floor is recognized a white reticule will appear on the sceen. Tap anywheer on the screen to add a point to the path that the Robot will follow.
  • Keep tapping to add more points and create a full path. Don't create sharp corners as the road assets were not made for that. When done, press the next button.
  • The wireframe of the Robot's cover has appeared (if you are using a different cover than the one provided you will need to update this mesh in Unity).
  • Align perfectly the wireframe with the physical Robot so that the app can understand your Robot's position and orientation and tap on the screen.
  • If you are happy with the calibration, tap the done button to start the experience!

Known Issues

Android Permissions

The first time you run the app you will be asked for the required permissions (camera and bluetooth). After you accept you might see an error that ARCore failed to connect. Just restart the app to resolve this issue.

We believe this will be resolved in future versions of ARCore as hinted in the documentation.

Additional Credits

We acknowledge and are grateful to these developers for their contributions to open source software. You can find the source code, project links, and license information below.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].