How to control a motor – part 1

December 19, 2009

This is a series of posts regarding the basic aspects of controlling a motor.

Being an open system, a robot interacts with the environment.

u=input

y=output

The input is made of what the robot senses from the environment and the exterior energy it gets, while the output is the action it takes over the environment.

Robots are complex systems with several inputs and outputs. In order to survive, a system has to optimize its inputs and outputs.

At its simplest, a robot is this system:

where the energy input can be a battery. This simple system gets exterior energy from the environment and produces mechanical work through its actuator. I doubt such a simple system would survive but it is a good example for the purpose of this article.

There are several types of exterior energy a robot can use and other several types of actuators, but as the most efficient way of controlling it is through computing which works with electricity, I will consider this system:

The control system has 3 parts:

- sensor control

- actuator control

- mixed control

(This is the same as our biological neurons: some control our muscles, some sense the environment and some proceed information in between.)

For this article I will consider this subsystem:


The Cubebot Project – Part 1

November 11, 2009

This is the first from a series of posts regarding the designing and building of a number of cube units which I’ll call cubebots that will use swarm intelligence skills and reconfiguration of the overall shape to overcome obstacles in an unknown and complex environment.

I don’t know yet how will this project end; it is something new for me. I will change the design and the prototype many times till I’ll get something better each time. If you are curious how come I got interested in such kind of project, this was the start.

The general purpose is to make the modules as simple and small as possible.

General design problems:

1) Are the units going to be homogenous or heterogenous?

To decrease costs and for simplicity’s sake, the units might be homogeneous, but I’ve noticed that these kind of units get too big if each of them contains all the components.

2) What will be their source power?

The main source power will be batteries, rechargeable if possible. Much later, I would add some solar panels to some or all of the units to increase autonomy.

3) How will they be actuated?

I will try several different actuators to compare them and for the novelty’s sake: electrical motors, shape memory alloys, linear electromagnetic motors and piezoelectric motors. Most projects I have seen utilized servomotors so I’ll start with this kind of actuator.

4) What device(s) will be used for the control of these modules?

Given the fact that I want to make the units as small as possible, I should use microcontrollers. I might use other devices if some of the units will be larger than the average, but for now I will keep them homogeneous.

5) What mechanism will be used for their connection and reconnection?

To increase the number of possible configurations, the connection should be genderless. Till now though, the only mechanism of connection that seems easy to control is to use magnets, either an electromagnetic one and a permanent one, either 2 electromagnetic ones.

6) What materials will be used?

Just like with actuators, I’m planning to try a lot of materials. For the structural part I’ll try plastics, composite materials (fiberglass, carbon fiber), metals (aluminum), organic materials – not so sure about that- and according to the material I’ll use screws or adhesives.

7) What is the optimum number of cubebots for the maximum number of possible – or rather useful  – configurations?

Right now I have no idea!

8 ) What are the different configurations the cubebots will adopt?

Snakes and spiders are one of the most adaptable creatures in terms of locomotion types and these animals will be my inspiration for the configurations. Snakes can crawl through the narrowest tunnels and they can swim too. As about spiders, they can glide if falling from altitude, have legs for uneven terrain and at least one species is able to roll in emergency cases – just take a look.

9) Should the units have a different shape to adopt these configurations more efficiently?

I have seen some units that are hexagons or dodecahedrons but I haven’t studied them in detail, so for the moment the units will be cubic.

10) What software will be used for this design?

The operating system I use is Linux and I still haven’t find any good 3D CAD for it. Besides that, I will use Eagle for the PCB and OpenOffice for the bill of materials and things like that. About the programming language, I hope I’ll use Java but that also depends on the microcontroller of choice.

11)Are the bots going to change their configuration through rotations or translations?

I’ll start with rotations, because I have more information on that but I’ll study the differences in detail later and if necessary build other cubebots.

12) The platform will be the motor’s case.

The PCB’s design will have to include:

- the motor control

- the sensor reading

- the communication

- the microcontroller

- the power management

- the glue logic: flex cables in this case

The answers to these problems are going to be revised during the project.


Robots and molecubes

November 8, 2009

I didn’t have time for new posts as I have been reading like a maniac :)

The first one was a robotics wikibook:

http://en.wikibooks.org/wiki/Robotics

It reached so many aspects of robotics, but didn’t go into detail with many of them; I appreciate that because it determined me to research the topics of interest- like shape memory alloys and piezoelectric motors, very useful actuators for tiny robots.

I have also appreciated that it insisted on the practical skills in robotics – unlike many other books I’ve read- and it included many different approaches for actuators and control devices, unlike the standard book that deals only with electric motors and microcontrollers. It didn’t include a tutorial on PCB building which I find would have been very useful for begineers.

The second one is another wikibook:

http://www.molecubes.org/

which I didn’t finish yet but it won’t last long as I am nuts over cellular network robots. They seem like the most adaptable robots I have seen. They can adopt so many different types of locomotion and maybe different types of grippers too.


About self-replication

October 25, 2009

Chess has been played by people vs. computers for some time and the humans did not always win. Can we say that the computer has intelligence in this case,although it does not have the general intelligence we are accustomed at people?The Turing test was developed in this purpose: it says that a machine is as intelligent as a human being if based on their actions you can’t decide who is who. I think this definition is pretty anthropomorphic as it doesn’t take into consideration the possibility of a machine outsmarting a human being.

Robots are far from being as intelligent as people because they do not understand what they execute, but does a bacterium with no brain understand how its genetic code works? We all agree that bacteria are organisms, but is it because they reproduce or because they use the same type of chemistry as us?  A bacterium is considered a living being while it is stupid while a robot can beat people at chess and they are considered things. Why is that?

Meanwhile I have read a book called “What is life” by Schrödinger which is written by a physicist and not a biologist and this is what makes it so unique.This way I got to the conclusion that a form of life is an assembly of molecules that get exterior energy in order to decrease their internal entropy.

So where is the line between things and organisms? Are robots considered things because they do not reproduce by themselves as organisms do and because they are not a product of reproduction like sterile organisms are? If yes then this is a shaky definition as a robot can recreate one alike. Mechanical self-replication of machines does already happen and it will improve by time.They can obtain materials, manufacture the parts, provide the energy and do all the testing. These assembler robots represent the future of nanotechnology. Computer viruses are also able to self-replicate so how come they are not considered alive?

It seems as ?life as we know it? is different than ?life as it might be?.

P.S. You can read the book at this link:

http://whatislife.stanford.edu/Homepage/LoCo_files/What-is-Life.pdf


Designing and building a robot from scratch

October 25, 2009

The internet is full of projects and tutorials of already designed robots that you can build out of spare parts but after some time you’ll feel like adding your personal touch to the design and manufacturing. In order to accomplish that, I have sketched these steps:

1)      Decide the main requirements for the robot’s task like the available budget, size, control, energy used, type of locomotion, the physical conditions of the environment in which a robot will operate. Regarding size, a smaller robot is usually cheaper to build but do not count on that if it is too sophisticated from the beginning. A robot can adopt different types of locomotion like rolling, walking, jumping, crawling, flying,swimming or it can not move at all. When considering the energy the robot will use, they usually have at least one battery. Some robots can automatically recharge their batteries from the grid, while others have solar panels. As the controls are done with the help of a PCB, any type of energy the robot might use must be converted to electricity.

Here are some possible tasks for the robot you decide to build:

-        industrial – robots’ main use today is in factories in the manufacturing and testing of various components and products where precision and repetition is required

-        security – they are preferred in hazardous places

-        domestic chores – what better example but the Roomba robot?

-        experimental – they can test different theories in biology, physics, computer science, artificial general intelligence; they help us in understanding theories of life just like biology is a continuous inspiration for robotics

-        educational – building robots teaches you many different aspects of science and engineering

2)      Sketch the assembly in Computer Aided Design (CAD) software – using this type of software is not difficult to learn and it will save you money on the long term as it is cheaper to modify something in the drawing than it is to use real materials to do that.

3)      Design the electrical circuit using Electrical CAD (ECAD) software – the results will be the schematic and the layout of the circuit, necessary for manufacturing the Printed Circuit Board (PCB).

4)      Programming the robot for the desired task

There is a whole philosophy in BEAM robotics where the design should be as simple as possible and with no programming. The robot should act based on basic reflexes and not software, which is more alike biological organisms.

Meanwhile, a programmed microcontroller can do the work of some 30 different integrated circuits saving space on the circuit board. In order to better simulate organisms, there are techniques of parallel programming. Programming languages can be low level (assembly language), middle level (C++ for example) or high level (like Java). The lowest the level is, the easiest it is for the machine to understand instructions, and the highest the level is the easiest it is for the programmer to write them. Being a high level programming language means that there are more filters until the instructions are translated in binary code for the machine to execute so they usually take more time; still there are compilers that do their job while executing the software.

5)      Use Computer Aided Engineering (CAE) software and simulate the whole design before committing to building the robot.

The rest of the 10% of the time involved is the actual building of the robot. The tools that are necessary to build a robot range from the most common and cheap ones to the high-tech state of the art!

6)      Build and test the mechanical components - this can be done with basic tools like a hacksaw, a drilling machine, wrenches,screwdrivers, pliers, a utility knife or with a CNC machine depending on the budget and on the complexity of the project.

7)      Manufacture the electrical circuit - for this you need to know how to prepare a PCB and have basic soldering skills;electrical components can be bought from stores or recycled from old electrical devices that are no longer in use.

8)      Implement the software – once you have written the software in your chosen programming language, you need a programmer to upload it for the microcontroller you use in your project.

9)      Execute the final testing and troubleshoot if necessary.

For future improvements of your robots, repeat these steps.


Welcome to the world of robots!

October 25, 2009

Robotics is much more of an art rather than a science. This is why I love it so much as I can be creative and precise at the same time. You do not need fancy education to build a robot, just some basic mechanical and electrical skills, a desire to learn and imagination. You will find a lot of theoretical articles here because 90% of the time it takes to build a robot is designing it. The topics I deal with range from different mechanisms useful when considering a certain output, how to model the robot and its environment, biological approaches for different types of locomotion and a lot of other things.

Enjoy!


Follow

Get every new post delivered to your Inbox.