Sunday, August 25, 2013

First the body, then the brain





A lot of progress has been made since the Christmas time ! article and I have to say I feel relieved now that the body is finished. I spent hours to craft all the body parts because I have few tools during the holydays : I'm far from my workshop ! The thing is you need to be really patient because you have to do the same operations six times, but you also need to be very carefull as the Plexyglas is a fragile material. I broke several legs because of a tough drilling or a too fast sawing. You have to anticipate a lot too if you don't want to lose time taking of a leg to pieces before assembling it again.


Another thing that requires a lot of time is the servomotors' calibration. It's very repetitives and I did it very slowly to be sure to not damage the servos. What I call calibration is assembling the servos on the legs with the same start angle. In order to have generic C++ objects for the servos and the legs, I need to be sure that when I command the six knees servos, they all go to the same position in relation to their respective legs.


To command my servos, I'm working on Debian with a simple Python script. This is the easiest way I found to use the serial and even if I'm not comfortable with the Python langage, I do not need a lot of features. Once the first tests are finished (idle state, sleep state, simple moves), I'll go for a more complex C++ code with the neural network part. During the calibration, I realised that my power suply isn't powerfull enough, actually it can't provide more than 450mA, which is ridiculous. Each servomotor (HS485-HB) may need  up to 180mA while in load. For now, it is impossible for me to move the hexapod and I'll have to wait few days before I can go back to the workshop and use a stabilized source that provides a descent amount of electric current.


The ssC32, the seromotors controller

Some small changes need to be done like finding a good way to arrange the servomotors' wires as it's really messy, but the result is satisfying and I feel like the worst part (the manufacturing) is behind me.


Friday, August 23, 2013

S.A.R.A.H : Self Actuated Residential Automated Habitat

Few days ago I discovered the S.A.R.A.H project. This is a framework developped by Jp Encausse which allows you to code (or use plugins created by the comunity to build) a chatterbot wich has a lot of interractions with your habitat. It works with a kinect for gesture and face recognition expressed in XML, for QR codes and for voice recognition (any microphone). It is based on C# and node.js :

  • The C# part translates the input (gesture, voice, face, QR code) into an HTTP request  which is sent to the node.js part
  • The node.js part recieves the request and scrap websites  (with phantomJS) or execute a software, whatever you planned. It can send back an HTTP request vocalized by the C# part
  • The node.js part can also carry out periodic script (CRON) that triggers HTTP requests
This is a very powerfull tool that I tried without Kinect, I plaid with the voice recognition only. With a really bad microphone it still understands pretty well (with few noise around) the words I say and the voice recognition is really easy to use for building plugins. 
Even if I hate javascript, I decided to give a try and create a plugin that will start Deezer's playlists by simply saying something like "Sarah, playlist {playlist name}". The Deezer's widget helped me a lot and Sarah is so easy to use that in the end I spent most of the time debugging caracters escape from the batch file or the js. I'm thinking about a Spotify's plugin now !

The community is working hard to build new plugins and some boxes like the Zibase are already working with Sarah. It means you can control everything in your house with your voice and you are doing it by yourself, as YOU want it. I've always dreamt about living in a house with a voice control, I think that I'll continue to work on plugins and I hope this project will continue to grow !

Thursday, August 15, 2013

Christmas time !

I recieved my order from robotshop this week. A box full of servomotors, gears, brackets and other stuffs :

  • SSC-32 Servo Controller 
  • 19 HS-485HR servomotors
  • 12 Servos brackets
  • 18 Hitec spline metal servo horns
  • 8 Rubber end cap
Picture 1 : A part of the body



Before recieving this, I already manufactured a not so circular body (cf picture 1). I only have a saw, some files and a grindstone to do this, needless to say it's really hard to make a perfectly circular Plexiglas body with these tools. 







After unpacking everything, I started to make a shin and a thigh and I was unpleasantly surprised to find servomotors without the horns' screws. As I only have wood screws, I'll use them until I buy more adapted ones with their corresponding nuts. I also use elastic bands to keep the servos' wires on the same side, this is temporary. You'll see the first leg on the picture 2 and the top part of the body I trimed to extend the rotation angle.

Picture 2 : The first leg

Picture 3 : A hip




 I assembled all the metal horns with the servos (I kept some plastic horns for the wood screw) and also assembled all he hips to prepare the next legs. On the picture 3 you can see an assembled hip.


I have a new usb to rs232 wire I just bought on ldlc but I should have take care instead of buying a random wire. I'm now trying to use a Prolific wire which do not emit any data. I spent 4 hours on debian and windows trying to make it work with no luck. I ordered a new wire after all and I'm waiting for it to start using the servomotors. 

Picture 4 : The first model (left) and the second one



During this free time, I decided to make a new leg model as I found the previous one ugly. The new one has a better look (see pictures 4 & 5), it is taller and fit better with the hexapod



I'll continue to make legs while I'm waiting for the rs232 wire and I'll soon buy the screws so I can finish the mechanical part.



No-name Hexapod

During several monthes of AI and mechanical preparations, I didn't manage to find a name to this robot. This is not a problem as I just started building it, but I hope I'll find a nice acronym before it starts walking.

For now, let me introduce the no-name Hexapod. My goal is to build a neural network controlled hexapod which will be able to learn gait patterns and select the most adapted gait. The first goal is that the hexapod can learn omni-directional and static gait patterns. Once this is achieved, I'll try to make it chose between gaits  depending on its environment.

This is a real challenge for me as I'm not used to work on AI. I followed some courses on coursera.org but even if I learnt a lot, there is still grey areas. Some people like David Miller lighted up some of them but a lot of work remains.

The hexapod will have a perimeter of 1 metter and will use 18 Hitec HS-485HB. It will have a circular body made up of Plexiglas and divided in two disks separated by the height of the servos.
An SSC-32 servos controller will be fixed in the body. For now I do not think about on-board computer and battery as it might slow down my work. I'll use an usb to rs232 wire and a main supply at start and when everything will works I'll go for a Raspberry and a LiPo battery.
The legs will be made up of Plexiglas (thighs and shins) and I bought servos brackets in anodized aluminum to build the hips as I can't manufacture such things (at least not really precisly).

My goal for now is to obtain a walking hexapod before September.