What is LunaOS
LunaOS is an open source operating system based on Linux designed for personal robots and free for anyone to use.
History of LunaOS
They knew when they began that they would use Linux to power their robot. However, it was quickly clear that there were no operating systems specifically designed for personal robots, mainly because (as of this writing) THERE ARE NO personal robots out there.
As they began mapping the design of the robot, it occurred to them that companies may be more inclined to invest in robotics if a major component like the operating system already existed out there. And the proof of it appeared in the mobile phone industry as Android phones began to popup everywhere.
So in 2010 they formed a small group of volunteers and launched this site, in hopes of creating a community that will enthusiastically design and develop LunaOS.
The Name "Luna"
Perhaps the most inspiring and impacting mission of the 20th century was man walking on the surface of the moon. It began with a vision, and was accomplished through the collective effort of thousands of brilliant minds working towards the same goal. The effort came to be known as the "moonshot". Our mission, to make robots as pervasive as personal computing, is our moonshot. And it is reflected in the name we've chosen: LUNA.
There are five key principles objectives that guide the design of LunaOS:
We must do everything in our power to make personal robots easy to use for end users. To accomplish this we must experiment with new and unique interfaces such as voice and gesture recognition. We must provide support for 4G networks which would eliminate the need for networking configurations and NAT traversal issues. Most importantly, we must never run out of ideas and creativity that would make it easier for people to use robots.
Our operating system should support a decentralized App Store framework that provides users the ability to install 3rd party applications over the web with a single click, while making it easy for developers to create and distribute robotic applications.
Any 3rd party hardware accessory should simply plug-and-play via the Luna Expansion Port (LXP). LXP is a required feature of any LunaOS compatible robot hardware (see the Hardware pages for info).
Processing is a limited local resource on a mobile robot, making off-board processing a key feature of LunaOS. For example an application should be able to send a live image from the robot's camera to a 3rd party face recognition cloud based service that would return the name of the person within the image.
Many features of the robot require remote clients for interaction. Whether a human is trying to access the robot, or the robot needs to access the human via a client, there is a need for a Presence & Authentication service that enables these communications.
Presence & Authentication Support
Linux provides a great base to start with. However, a personal robot has specific needs and LunaOS tries to address those needs by providing middle-ware and libraries that support those features. There are seven basic categories that LunaOS tries to address: Sound, Video, Location, Cloud, Authentication, and LUNA Expansion Port (LXP).
Below is a high level system architecture.
LunaOS is an ambitious project that will take time to develop and perfect. In addition, it is a living project that will constantly improve and modify with the addition of features and increasing hardware capabilities. We are very mindful of traditional robotics limitations such as performance optimization, processing optimization, run-time, machine vision, etc. At the same time, our goal is to remain ambitious by providing the building blocks that can lead to materializing functionalities that are traditionally deemed impractical. An in-depth discussion of these features will be posted on the Project Roadmap
page. However, here are a few examples:
- Robust Gesture Recognition - libraries that enable applications to interact with robot user using gestures.
- Robust Face Detection - libraries that can detect human faces.
- SLAM - Simultaneous Localization and Mapping (autonomous navigation)