Saturday, December 18, 2010

Evolution Of Robotics

A short history of the evolution of robots

The heritage of the technology which now runs the world was to put it mildly eclectic, with huge gaps in time and space. Before the first electrician was born, the earliest reference to a “robot” was in ancient China, in the form of an organic robot given by an “artificer” called Yan Shi to King Mu of Zhou around 1000BC. The robot was made of leather and glue with actual human organs, and not entirely surprisingly ceased functioning when the organs were removed. The first Western robot, in the form of a steam powered pigeon, said to be capable of flight, was invented by Archytas of Tarentum in 350BC.

Da Vinci, Voltaire, and Vaucanson’s duck

Between 1500 and 1800, odd mechanical marvels were springing up all over Europe. Leonardo Da Vinci was the next known robot designer after the ancient period, inventing a mechanical man in knight’s armor. John Dee of England invented a flying wooden beetle during the Elizabethan era. Another machine was Vaucanson’s “Digesting Duck” in 1739, which was able to annoy real ducks, quack, “eat” grain, and produce fake feces. The duck was even referred to by Voltaire, albeit rather cryptically- “Without the duck of Vaucanson, you have nothing to remind you of the glory of France”.

The early computers- 1800

Computers, the other part of the equation for robots, were also developing while these machines were being erratically developed. In the 1800s, Charles Babbage designed an early general purpose computer, called the “Analytical Engine”. Englishwoman Ada Lovelace became the world’s first computer programmer by writing an algorithm for the machine, and the prophetess of the possibilities of computers.



Enter the name “Robot”, and then the real thing

In 1921, Josef Capek, brother of Czech writer Karel Capek, gave the name “robot” to the mechanical men of Karel’s play Rossum’s Universal Robots. “Robot” actually comes from the Czech word robota, or “servitude”. Robots rarely required electrical services prior to the Turtles, being still basically automatons. Real robots, including Japan’s writing robot Gakutensoku, were still mechanical and in some cases semi-fraudulent, although the famous Turtle robots were famous for being able to find their recharging point if their power became low.

In 1941, Isaac Asimov created the “Three laws of Robotics”, and invented the word Robotics. It was a timely word. Actual computerization in the 1940s in Germany, the UK and America finally created working autonomous systems for real robots able to operate on their own. Since then, “evolution” has been the key. Motive power, power to weight ratios and balance for bipedal “walking” robots have been major challenges, but the period from the 40s to the 2000s has seen the development of true walking robots, robot animals, robot extinct fish, nursing aid robots and the Mars landers, which are effectively robots on wheels.

Perhaps inevitably, the quirky development of robotic technology has recently produced “companion” robots, invented in America. The robots are designed to be sexual partners, with multiple personalities. Humanity’s infatuation with artificial people seems to simply diversify over time. If robots ever take over the world, it may be because someone thinks they should.

         


Monday, December 13, 2010

VHDL Based Robot PART-IV


AUTONOMOUS ROBOT FOLLOWING PREDEFINED PATH USING VHDL CODING - PART IV



In this final part we will discuss about the VHDL coding and the software used for the same.


LOGIC DISCRIPTION

1.   An entity named vlsi_robot is declared with its input and output ports. Its input is clock (clk) and outputs are display (d), output (o), and select signal (s).

2.   D is the bits for 7 segment display and select signal is 2 bit no. which is controlling the 7 segment display through latches.

3.   Output bit o which is 4 bit data is going to the JP5 header and through which goes to the driver circuit.

4.   In the architecture body, a intermediate variable q which counts the clocks, is declared.

5.    When positive edge of clock occurs, the value of q is compared and according to these values, robot is made to move in forward and left direction.

6.   After each comparison q is increased by 1.

7.   Output ports 'o' and'd' are assigned the values according to 'q'.

8.   When q is equal to 0000 or 0001 or 0010 or 0011 or 0100 or 0101 then output o is 0011 and display d is 0001110 (FF). When q is equal to 0110 or 0111 or 1000 then output o is 0101 and d is 0001000 (RR). S is selected "11".

9.   When q is equal to 1001 then q resets to 0000 and the robot again retraces its previous path.


SOFTWARE USEDQuartus II Version 8.0      
New Features, Enhancements, and Device Support:
"Quartus II software's incremental compilation feature offers users  productivity advantage, capable of delivering up to a 70 percent compile time reduction compared to a standard compilation. Assisting designers in maximizing the full benefits that incremental compilation provides, Quartus II software version 8.0 features a new design partition planner. During the process of creating incremental compilation design partitions, an interactive graphical user interface (GUI) provides real-time feedback, such as logic resource usage and inter-partition timing paths, enabling designers to explore and quickly determine the most effective partition scheme".

Additional Enhancements to Quartus II Version 8.0
  • New tasks window: Provides an interactive design flow console that guides users through the FPGA design: Offers support for incremental compilation  including JTAG and SPI interfaces.
  • Enhanced FPGA I/O planning: Accelerates board development with added pin-swapping capabilities in the Pin Planner.
  • Mega Core Library: Integrated in Quartus II software, making it easier for users to access Altera's portfolio.
DOWNLOADING THE PROGRAM
The following steps are used for downloading the program in the CPLD kit-
1.    In the new project wizard, the specifications about the CPLD kit are entered.
2.    Then in the new project wizard, new VHDL design is selected. It will open a new window in which program will be written.
3.    After writing the program the program is compiled in processing menu by selecting "start compilations".
4.    If the program is correct, the waveforms are made by using vector waveform.
5.    Then by using node finder, all the inputs and outputs are listed and then inputs are given user defined values.
6.    After this step simulation is performed by using simulation tool in which functional type of simulation is selected and simulation function is generated.
7.    Now the simulation is started by clicking the start icon. If simulation is successful, it will give the output waveforms according the input values.
8.    After this step, pins used in the CPLD kit are assigned to the input and output variables. This step is done by using assignment editor in which device and pin option is selected.
9.    The pin configuration is explained in the data sheet.

VHDL CODE:
Library ieee;                                        -- to use the library ieee consist
                                                        -- Of various packages
Use ieee.std_logic_1164.all;        -- to use all the names declared
Use ieee.std_logic_unsigned.all;   --in packages
Entity vlsi_robot is                         -- declaration of the entity name
 -- declaration of input and output ports of entity
Port (clk : in std_logic;                  
            d: out std_logic_vector( 6 downto 0);   
            s: out std_logic_vector(1 downto 0);
o: out std_logic_vector (3 downto 0)  ) ;
end vlsi_robot;                                    -- end of the entity
Architecture robot of vlsi_robot  is  -- declaration of architecture
Begin                         -- start of architecture statement
process (clk)            -- sensitive list
Variable q: std_logic_vector(3 downto 0):= "0000";   -- declaration of Intermediate variable

Begin
if clk'event and clk='1' then                     --  condition for clk
if q= "1001" then                              -- to reset the q
    q:= "0000";
end if;                                                -- end of if statement
if q= "0000"or q= "0001" or q= "0010"    -- condition on q for
or q= "0011" or q= "0100"                 -- forward movement
or q= "0101" then
s<= "11";                               -- outputs for indicating
d<= "0001110";                    -- forward motion
o<= "0011";
end if;                                         -- end of if statement
if q= "0110" or q= "0111"          -- condition on q
or q= "1000" then                 -- for left motion
s<= "11";                                -- corresponding outputs for
d<= "0001000";                    -- left movement
o<= "0101";
end if;                                              -- end of if statement
q:= q +1;                                         --increment of q
end if;                                                     -- end of first if statement
end process;                                           -- end of sensitive list
end robot;                                              -- end of architecture



Furthur Readings:

  
Project Author: Deepika Daluka

Composed By: Aditya Sharma