We have decided to write this post because we are receiving many emails interested in knowing the current development status of the robot .
We still have to develop and improve some things, and even though our resources are limited, mainly due to the lack of external subsidies and support, we are very close to the final stage. So here you have a little summary about the status of the works we are doing on the robot.
GUI Control Panel: 90% developed
Conceived and designed for users with little programming knowledge it lets you interact with the robot in a graphic and easy way thanks to direct access via keyboard-mouse-screen or via Server.
During the changing process to the ROS platform it was necessary to touch up some parts of the GUI to make it suitable for new “node” communications of Willow Garage’s platform.
The system has a complete APACHE server installed which allows to access it from a remote location and gives it telepresence characteristics among other things.
Some of the functions you can graphically access to are:
- Battery status
- Engine speed and distance covered
- Ultrasound sensors
- Camera access (stereoscopic vision, depth, facial recognition, etc.)
- Servo access
- Possibility of interaction with the chatterbot
- Neural network training (initial phase of development)
- Mouth and eye expression configuration
- Robot’s movements
- Other configurations
And many more things we will be adding soon…
API: 85% developed
Like we said in some other post we decided to convert all our API developed in JAVA into Willow Garage’s ROS platform. This took us a while but we can confirm that 99.9% is already converted.
For us and we guess for many other people this is the most fun, entertaining and interesting part of the robot and we can add new NODES while we install hardware inside the robot. The easy way in which the ROS platform handles these NODES let us create different robots which are more and more powerful and have new functions that nowadays we cannot even imagine.
We have added Python to programming languages JAVA and C++ because its implementation simplicity makes it perfect to handle some tasks of the robot.
Our aim is to create with your help all the necessary nodes (drivers) of standard hardware to implement them in the API and then in the Control Panel in order to let each user configure their robot with the hardware they want and when they download the software it is already developed by the community and completely installed with the robot’s functions.
Hardware controllers: 90% developed
The controllers development process has been long and laborious mainly due to the continuous tests they had to pass depending on the hardware we wanted to test. Different types of objects have gone through them such as DC engines, more than 10 types of servos from different brands, sizes and torque, ultrasound sensors, temperature sensors, digital compasses, gyroscopes, batteries, accelerometers, etc…
With the aim of making the programming and access to hardware components (servos, engines, sensors…) easy, we have chosen to use the protocole I2C which allows us to directly connect the hardware we want to add and send the requests to the address previously assigned to that component through commands.
We will shortly talk in depth about controllers. We are keeping a great surprise for that moment so watch out!
Injection moulds: ( in making process )
This has been the hardest and most difficult step for us. As we also said in some other POST it was very important for us that the robot was attractive and that it had the best possible quality. More than 30 plastic pieces in Polycarbonate + ABS with a polished mirror finish will fully cover Qbo giving him an incredible look.
Next you can see a “fast prototype” piece and the same one made in an injection mould with polished mirror finish. What a difference, right?
Linux Distribution: “GURU MEDITATION PHASE”
Although we have always trusted Ubuntu as Linux distribution for software and hardware development and media we think that it has too many unnecessary packages for the tasks that the robot is going to carry out. In some of our tests, and being faithful to our philosophy: “put whatever you like in the robot”, we have used 2.5” hard drives, pen drives, SSD drives and even Compact Flash cards as storage media. As you can imagine a complete Ubuntu system boots in just a few seconds on a SSD drive but in a few minutes on a Compact Flash.
For all these reasons we are trying to create our own Linux mini distribution for Qbo but we have not made much progress yet because we have very little free time left.
A fast and “realistic” alternative would be to use Ubuntu as a basis (without unnecessary software packages) and start adding only those packages which are necessary for the robot, including repositories in our servers which would gather all the updates made by us or by the community such as “nodes” for new ROS hardware, more developed acoustic models for the recognition engine or new databases for the chatterbox.