Fuzzy Logic Control in Autonomous Robotics:

(Pure Extraction)

Fuzzy Logic Control in Autonomous Robotics:

Investigating the Motorola MC68HC12 on a Line Following Robot

 

David Olsen

Department of Electrical and Computer Engineering

University of Minnesota Duluth

1023 University Drive

Duluth, MN 55812.  USA

 

Faculty Advisor: Dr. Marian S. Stachowicz

 

Abstract

 

Autonomous robot systems require complex control systems.  Fuzzy Logic, a mathematical system developed by Professor Lotfi Zadeh, helps to reduce the complexity of modeling nonlinear problems.  In the 1990s, Motorola developed the MC68HC12 microcontroller with native Fuzzy Logic instructions.  This research determined the effectiveness of the MC68HC12’s Fuzzy Logic instructions for robotic control.  This research involved designing a robotic platform using the MC68HC12 and testing binary logic control systems against Fuzzy Logic control systems.  The research analyzed the two systems using four criteria:   (1) the size of memory required to develop the control system, (2) the ease of writing the control software, (3) how well the control system managed the functions of the robot, and (4) the overall processing power of the system.  The results showed that Fuzzy Logic uses less memory than binary logic and is much easier to design, although more difficult to program initially.  Fuzzy Logic can control more functions of the robot and has greater processing capabilities.  The power, ease of use, and small size of Fuzzy Logic instructions make Fuzzy Logic a practical solution to autonomous robotic control systems.

Keywords: Fuzzy Logic, robotics, control systems, HC12

 

  1. Introduction

 

The expansion of robotics and microcontrollers into the facets of everyday life increases the need to develop efficient control systems.  A non-traditional approach to control system design is the use of Fuzzy Logic.

Fuzzy Logic extends from the traditional crisp boundaries of Aristotelian logic (true or false) to include the concept of partial truth – having truth-values between ‘completely true’ and ‘completely false.’  Dr. Lotfi Zadeh ofUniversity of California Berkeley first introduced these fuzzy methods in 1965 [1].  These methods allow the engineer to use natural language to describe and implement the control system.  Fuzzy Logic uses linguistic values to represent part of the range an ordinary crisp variable may assume [2].  For example, a variable t, that represents temperature, may vary from 0 oC to 100oC.  A linguistic value, COLD may be used to represent temperatures from 0oC to 10 oC while other linguistic values represent other ranges.  Fuzzy Logic makes it possible to solve complex, ill-defined problems where there is a large degree of expert knowledge or the solution is easy to describe linguistically [3].

Applications of Fuzzy Logic are appearing in many industries.  Fuzzy Logic enables designers to model complex systems more quickly and effectively than traditional approaches.  Consumer appliances, automobile engines, transmissions, and industrial systems are all using Fuzzy Logic techniques.

Motorola’s HC68HC12 (HC12) microcontroller incorporates several Fuzzy Logic primitives directly in its instruction set.  The instruction set contains the Fuzzy Logic operations of trapezoidal membership, rule evaluation, and weighted average defuzzification.  The microcontroller also includes other instructions that are helpful in Fuzzy Logic applications such as MIN / MAX instructions and table lookups [4].  Motorola’s HC12 allows the development of low-level applications that can utilize the unique features of Fuzzy Logic.

The goal of this project is to design and build an autonomous line following robot based on Fuzzy Logic techniques.  The robot uses the Motorola HC68HC12 microcontroller.  This project involves investigating the HC12’s Fuzzy Logic instruction set and analyzing its ability to control an autonomous robot.  The robot in this project serves as a test bed for several pieces of software.  These software programs include initial test scripts, several control system based on traditional logic, and several control systems based on fuzzy systems.  The best classical logic and fuzzy control systems are compared in various tests.  These tests involved the robot following a black line on the floor.

 

  1. Fuzzy Logic on the HC12

 

As stated in the introduction, Motorola designed the HC12 with advanced capabilities to handle Fuzzy Logic calculations.  The HC12 contains four instructions that are specific to Fuzzy Logic.  These instructions are:

 

  • MEM                      Evaluates the trapezoidal membership functions
  • REV/REVW           Performs unweighted/weighted MIN-MAX rule evaluation
  • WAV                      Performs weighted average defuzzification

 

The following section describes the basics of Fuzzy Logic on the Motorola HC12.  This section will only serve as an introduction to fuzzy programming on the HC12 and is not a replacement for the manufacture’s documentation.  This section assumes that the reader has some knowledge of Fuzzy Logic.

 

2.1 fuzzy logic basics

 

The design of a Fuzzy Logic interface for the HC12 consists of two parts.  First, the user must design a knowledge base that contains the membership functions and the rule set.  The second part is the inference kernel that takes the system inputs and produces the system outputs based on the knowledge base [5].  Figure 1 shows the basic structure of the Fuzzy Logic system.

Figure 1: Block diagram of a fuzzy logic system [5].

 

2.2 fuzzification strategy (MEM)

 

Fuzzification is the process by which system inputs are evaluated to determine the degree at which they belong to a particular fuzzy set, on a scale from 00 to FF in hexadecimal [5].  The MEM instruction evaluates trapezoidal membership functions.  These functions define the fuzzy set, the foundation of Fuzzy Logic.  A fuzzy set is a set without a crisp, clearly defined boundary.  It can contain elements with only a partial degree of membership.  For example, the membership function for COLD could equal FF for temperatures below 7oC and slope down to 00 toward 10oC.  The MEM instruction compares the system input against the membership function to determine the degree of truth of a fuzzy input.

The y-axis in Figure 2 represents the degree of truth from completely false (00) to completely true (FF).  The x-axis represents the range of input values for the particular system input.  The MEM function works by finding the y-value, given a system input (x-value) and the membership function.  MEM returns the percentage of truth (y-axis value) for the particular fuzzy set.  The result is a set of fuzzy values that describe characteristics of input variables in the system.

Figure 2: Trapezoidal membership function.  The x-axis represents the input range and the y-axis represents the degree of truth [5].

 

To define a trapezoidal membership function for the HC12, you need four values: (1) the start of the trapezoid, (2) the first slope, (3) second slope, and (4) the end point of the trapezoid.  Figure 2 labels these points and shows the memory representation.  The user should define the trapezoidal in memory as follows:

 

LABEL_MF    DC.B  $40,$D0,$08,$04

 

The program should use a descriptive label because the programmer will need this label during fuzzification.  For example, COLD_MF could represent a membership function of the fuzzy set COLD where the postfix _MF reminds the programmer that this variable represents a membership function.  A trapezoidal definition is needed for each membership function.

 

2.3 rule definition and evaluation (REV/REVW)

 

Rule evaluation is how Fuzzy Logic performs calculations.  The fuzzy values produced by the MEM function are passed through the rule list to find the fuzzy output.  The two types of rules that the HC12 allows are weighted (REVW), where each rule can have a different weights; and un-weighted, (REV) were all rules have equal weight.  An example of a rule list:

 

If temperature is COLD and wind is HIGH, then heat is on HIGH.

If temperature is WARM and wind is LOW, then heat is on LOW.

If temperature is HOT and wind is LOW, then heat is OFF.

 

After the fuzzy inputs are evaluated with REV/REVW, the system’s fuzzy outputs indicate the degree to which an output should have a specific value.  These outputs must then undergo defuzzification before their values are useful.  Creating the rule list is actually very simple.  The antecedents (left side of the rule) are the fuzzy inputs created by the MEM instruction (e.g., a temperature reading evaluated with the COLD, WARM and HOT membership functions).  The consequents (right side of the rule) are the fuzzy outputs of the system.  During REV, each antecedent is joined using the fuzzy and operator (MIN).  This minimum value is compared to the current fuzzy output of each consequent using the fuzzy or operator (MAX), and the maximum of these two values is stored in each consequent (fuzzy output).  In other words, the overall “truth” of a rule is stored in the fuzzy outputs and if a subsequent rule is “truer,” then the fuzzy outputs are updated to reflect this new value.

The rule list is stored in memory as a list of pointers to fuzzy inputs (antecedents), a reserved separator value, a list of pointers to fuzzy outputs (consequents), and then another separator.  Each rule follows this pattern and the rule list is terminated by an end rule reserved value.

 

RULE_LIST        DC.B   P_TisCold, P_WisHigh, SEPARATOR, P_HeatHigh, SEPARATOR

DC.B   P_TisWarm, P_WisLow, SEPARATOR, P_HeatLow, SEPARATOR

 

2.4 defuzzification strategy (WAV)

 

The final step in the Fuzzy Logic calculation is defuzzification, when the raw fuzzy outputs are evaluated to create a composite system output.  Unlike the input, the fuzzy output membership function is not trapezoidal but a singleton.  This singleton indicates one system output value for each fuzzy output.  The output membership singletons are arraigned in memory in the same order as their corresponding fuzzy outputs.  WAV calculates a sum of products of each fuzzy output value times its singleton value and a sum of all of the fuzzy output values.  The first sum is divided by the second using EDIV to produce an overall value that is the defuzzified output of the system. Defuzzification creates a weighted average system output based on the truth of the fuzzy outputs.

 

2.5 fuzzy inference kernel

 

The inference kernel contains all of the instructions that make up the fuzzy system.  The kernel utilizes the knowledge base to create a system output from given system inputs [5].  All of the fuzzy instructions require proper initialization of the accumulators, index registers, and fuzzy values.  These details are beyond the scope of this paper and can be found in the manufacture’s documentation.  The sample program listing, Appendix A, also includes comments on developing the fuzzy kernel.

 

Readers wanting more information are encouraged to refer to the “Fuzzy Logic Support” chapter in the Motorola 68HC12 CPU12 Reference Manual for a detailed explanation of the Fuzzy Logic instruction set.

 

  1. Control Software

 

To test if Fuzzy Logic is a superior solution to the problems of autonomous robotic control, this project involved creating two control systems.  The first system uses traditional logic to control the system.  This system does not use any of the microcontrollers embedded Fuzzy Logic functions.  The second robot relies solely on the HC12’s Fuzzy Logic instructions.  This second system uses Fuzzy Logic for all of its control processing.  Both control systems only used the HC12’s onboard RAM area (512 bytes) for program storage.

 

3.1 traditional control system

 

The traditional control system does not use an of the Fuzzy Logic instructions on the HC12.  It relies on testing each input as true or false and then uses an if-else programming structure to determine the correct system output. Because of the limited size of RAM available for programming, the binary robot relies on an external chip to convert the analog signals from the sensors to a binary, on or off, form.  The control structure is simplified to reduce the necessary amount of memory needed for storage.  The traditional control system uses the following rules:

 

  • Center sensor on                  Go Straight
  • Left sensor on                      Turn Right
  • Right sensor on                    Turn Left
  • No sensors on                      Stop

 

The motor control of this system is limited to one speed for straight, left, and right.  Because the system relies on an external chip to convert the analog sensor values, it is unable to detect when the sensor is partially on the line. While this simplifies programming, it reduces the effective resolution of the sensors.

 

3.2 fuzzy control system

 

The small amount of RAM also limits the fuzzy control system.  However, the fuzzy instructions are able to handle far more control system computations than the traditional system in a similar amount of memory.  First, the fuzzy system uses the analog values from the sensors.  This gives the fuzzy robot the benefit of being able to tell exactly when the sensor is leaving the line and to be more robust to changes in the environment.  Second, this system has three levels of speed for each direction.  This gives the fuzzy control system improved turning ability.

The fuzzy control system takes the analog value from the sensors and assigns a level of “truth” to a fuzzy value.  This control system used two fuzzy membership functions for each sensor: ON and OFF, to create a total of six fuzzy input values.

Fuzzy control systems are based on “rules.”  The control system uses these rules to evaluate the fuzzy values and create a fuzzy output.  Table 1 shows the rules based upon the truth of the fuzzy input values and the corresponding fuzzy outputs used in this control system.  In the table, there are ON and OFF fuzzy values for each of the three sensors.  The system combines the “truth” of the three fuzzy inputs for each rule using the fuzzy MIN operator.  This minimum value is stored in the fuzzy outputs unless the outputs already have a greater value stored from a previous rule.  The system finds the output that best fit the fuzzy inputs.

 

Table 1.  Fuzzy Rule List.  This table shows the rule list that evaluates the output speed and direction given the fuzzy input variables.  This rule list is evaluated using the REV instruction on the MC68HC12.

Fuzzy Inputs Fuzzy Outputs
Left Center Right Speed Direction
Off Off Off Stop Line Finder
On Off Off Slow Hard Left
On On Off Medium Left
On On On Slow Line Finder
Off On Off Fast Straight
Off On On Medium Right
Off Off On Slow Hard Right
On Off On Stop Line Finder

 

  1. Hardware Implementation

 

This project uses a custom robot designed to test the various control systems.  This robot has a line sensor and two motors.  The robot can also handle IR distance sensors, but the distance sensors are not uses in the testing portion of this project.

 

4.1 base and motors

 

The test robot consists of a plywood base and uses differential steering.  The motors are two servos, modified to allow continuous revolution.  Servos are useful for small robots because the servo has an integrated motor controller and it provides adequate torque for a small robot [6].  Ball casters support the front and back of the robot.  This allows the robot to turn on its center.  A rechargeable battery pack powers the motors, line sensor, and the microcontroller.

 

4.2 line sensor

 

The custom line sensor is a collection of three IR phototransistor, transmitter pairs that sense when the robot in centered on the line, to the left, and to the right.  These sensors feed analog data into the HC12’s A/D ports for processing.  The analog values represent the IR reflectivity of the surface below the line sensor at three points.  Because the sensor contains IR transmitters, sensor works without ambient lighting.

 

  1. Testing

 

The two robot control systems were tested on a variety of tracks.  These tracks were created by placing black electrical tape on a wooden, carpeted, and cement floor.  The tracks included a straight line, a 45-degree angle turn, a 90-degree angle turn, and a 12-inch radius oval shaped ring.  The lighting level was kept constant throughout the trials.  The testing measurements include a qualitative description of the robots ability to stay on the line without “wiggle” or overcorrection.

 

 

  1. Results

 

For each of the test tracks, both robots maintained control and followed the line.  The traditional control system did have more “wiggle” as it moved down the straight section.  This robot was unable to center itself on the line and instead zigzagged down the line.  The fuzzy robot system was able to quickly find and hold the true course of the line.  The fuzzy robot system also made fewer corrections during the turns in the oval test track.  The traditional robot had to correct its course many more times during the oval turns.  The fuzzy robot system had a much smoother course throughout the track.  Neither robot was unable to make any of the turns in the test.

In addition to comparing at the performance of the two different control systems, this project also looks at the memory requirements, the ease of writing the control software, and the processing power of the system.  For the two systems tested, the Fuzzy Logic system used more memory.  However, it also processed significantly more information and gave results with finer resolution.  Achieving this same level of processing using the traditional system would have made the traditional system’s memory requirements much larger.

The fuzzy system is initially more difficult to program because the syntax of the instructions and the format of the knowledge base in memory is unclear.  However, it is much easier to modify the fuzzy control system to changes in the environment or system outputs because only the membership functions need to change.  For the traditional system, the entire logic of the control system may need to be modified.  It is more intuitive to program in Fuzzy Logic because of the ease of creating a linguistic solution to the control problem.  This intuitive nature makes Fuzzy Logic easier to program than traditional logic for complex control problems.

 

  1. Conclusion

 

Fuzzy Logic represents a tremendous advancement in autonomous robotic control systems.  The Motorola MC68HC12’s instruction set will make designing fuzzy solutions on microcontrollers much easier than in the past.  Fuzzy Logic is well suited for complex control problems like autonomous control, but it may be too difficult for simple control systems.  The HC12’s fuzzy instructions simplify the design cycle for control system designers and provide an alternative to traditional control methodologies.  The fuzzy system developed by Motorola is a very powerful set of instructions that will have a dramatic impact on control systems in many industries.

 

  1. References

 

[1]   Reuss, Robert F, et al.  “Fuzzy Logic Control in a Line Following Robot.” http://www.cs.unr.edu/~simon/fuzzy/fuzzylogic.htm [01/22/2002].

[2]   Kandel, Abraham, et al.  Fuzzy Control Systems.  Boca Raton: CRC Press, 1994.

[3]   Stachowicz, M.S. and Beall, L., “Fuzzy Logic Package for Mathematica®”, Wolfram Research, Inc., 2000.

[4]   M. S. Stachowicz and C. Carroll, “Intelligent Systems on Motorola’s Microcontroller:  A Team Design Workshop,” Proceedings of the 2000 International Conference on Engineering Education, Taiwan, August 14 -18, 2000.

[5]   Motorola Semiconductor, CPU12 Reference Manual. Motorola Inc., 1999.

[6]   McComb, Gordon. The Robot Builder’s Bonanza.  New York: MCGraw-Hill, 2001.

 

 

Appendix A. Example Fuzzy Assembly Listing

 

The follow code example lists the overall structure of an assembly program for the HC12 that utilizes Fuzzy Logic.  This simplified example takes two system inputs, temperature and wind speed; and produces one system output, heat.  Input variables, stored in $0800 and $0801, have been scaled from 0016 to ff16.  The range of the heat output is from 0016 to ff16.  Refer to section 2 for details on the Fuzzy Logic operators.

 

ORG $0900      ;Memory location for Fuzzy Knowledge Base

 

;###  Fuzzy Constants ###

MARKER   EQU  $FE              ;Used to separate rule sections

ENDRO    EQU $FF              ;Used to finish the rule list

;### Relative Pointers ###

P_COLD   EQU  $00              ;Pointers to the relative locations of the fuzzy

P_WARM   EQU  $01              ;Input and Output variables

P_HOT    EQU  $02

P_CALM   EQU  $03

P_WINDY  EQU  $04

P_NoHt   EQU  $05

P_LowHt  EQU  $06

P_MedHt  EQU  $07

P_HiHt   EQU  $08

;###  Membership Functions ###

COLD_MF  DC   $00,$76,$00,$05  ;Temperature Membership functions

WARM_MF  DC   $56,$AC,$07,$07  ;Point 1, Point 2, Slope 1, Slope 2

HOT_MF   DC   $8C,$FF,$07,$00

CALM_MF  DC   $00,$60,$00,$07  ;Wind Membership functions

WINDY_MF      DC   $50,$FF,$07,$00

;###  Output Singletons ###

No_Heat_FS    DC   $00               ; The Fuzzy system will take the weighted average

Low_Heat_FS   DC   $56               ; of these values based on the truths of the

Med_Heat_FS   DC   $AC               ; corresponding Fuzzy output variables

High_Heat_FS  DC   $FF

;### Fuzzy Variables ###

COLD_FI  DS   $01              ;These instructions reserve bytes for the Fuzzy

WARM_FI  DS   $01              ;  input and output variables.

HOT_FI   DS   $01              ;(NOTE: This variable ordering is what determines the

CALM_FI  DS   $01              ;       relative locations stored above and can be the

WINDY_FI DS   $01              ;     same ordering as the membership functions.)

NoHeat_FO     DS   $01

LowHeat_FO    DS   $01

MedHeat_FO    DS   $01

HHeat_FO DS   $01

;### RULE Definitions ###

RULE_START

DC   P_COLD,P_WINDY,MARKER,P_HiHt,MARKER      ;This section defines the rule list

DC   P_COLD,P_CALM,MARKER,P_MedHt,MARKER      ;The rules are defined as relative

DC   P_WARM,P_WINDY,MARKER,P_MedHt,MARKER     ;pointers to the locations of

DC   P_WARM,P_CALM,MARKER,P_LowHt,MARKER      ;Fuzzy input and output variables.

DC   P_HOT,P_WINDY,MARKER,P_LowHt,MARKER      ;MARKER and ENDRO are constants

DC   P_HOT,P_CALM,MARKER,P_NoHt,ENDRO         ;$FE, $FF respectively

 

org $0803      ; Memory starting location for Inference Kernel

;### Fuzzification for temperature data ###

LDX  #COLD_MF   ; First of three membership function for temperature

LDY  #COLD_FI   ; Location of first fuzzy input variable for temperature

LDAA $0800            ; Location of temperature data in system

LDAB #$03       ; Number of membership functions for temperature

TEMPFUZZ:     MEM              ; This loop will process each of the three membership functions

DBNE B,TEMPFUZZ ; and create the three fuzzy input variables

 

;### Fuzzification for wind data ###

LDX  #CALM_MF   ; First of two membership function for wind

LDY  #CALM_FI   ; Location of fuzzy wind (These last two lines are optional because

; Accumulator X and Y already have the correct values)

LDAA $0801            ; Location of wind data in system

LDAB #$02       ; Number of membership functions for wind

WINDFUZZ:     MEM              ; This loop will process each of the two membership functions

DBNE B,WINDFUZZ ; and create the two fuzzy input variables

 

;### RULE EVALUATION ###

RULE:    LDAB #$04       ; First you must clear out the fuzzy output variables

CLEAROUT:     CLR  1,Y+

DBNE B,CLEAROUT

LDY  #COLD_FI   ; Point at start of Fuzzy Input variables

LDX  #RULE_START      ; Point at start of rule list

LDAA #$FF       ; Must load AA with $FF

REV

;### DEFUZZIFICATION ###

LDX  #No_Heat_FS      ; Point to singleton positions

LDY  #NoHeat_FO ; Point to Fuzzy Output locations

LDAB #$04       ; Number of Fuzzy Outputs

WAV            ; Calculate sums for weighted average

EDIV           ; Final divide step

TFR  Y,D        ; Move the results to A:B

STAB $0802            ; Store system outputs

 

Robot Programming languages

A robot will require a programming language for describing the operations that are to be done. Recently, there are plenty of robot programming languages available. Among them, five robot languages are commonly and basically used. They are:

  • RAIL
  • AML
  • VAL
  • AL
  • RPL

RAIL:

RAIL will be a best language for controlling two major tasks such as the manipulation and visionsystem. It is a high – level robot language based on Pascal, and it will implement a Motorola–68000 central processor, teach pendant, and terminal. This language was designed by Automatix for arc welding and inspection purposes.

RAIL comes with three different kinds of systems, namely:

  • Hitachi Process Robot – Arc Welding
  • Cartesian Arm – Assembly functions
  • Vision system without arm

AML:

AML (A Manufacturing Language) is a high level language based on sub routine, which is mainly implemented to manage RS / 1 Assembly Robot, End Effectors Active Force Feedback, and Cartesian Arm with hydraulic motors. The RS / 1 assembly robot incorporates a mini – computer (IBM Series/1), 192 KB memory, matrix printer, disk drive, display terminals, and keyboard. AML was developed by IBM Corporation for robot programming. An important reason for creating this language is to offer simple subsets and as well as powerful base language.

VAL:

VAL (Variable Assembly Language) Robot Programming Language is adopted mainly forUnimation Robots. As this language is designed with simple syntax, it is capable of illustrating the robot functions very easily. It includes two major tasks such as:

  • Program instructions are used to provide VAL programs in order to manage the robot functions.
  • Monitor commands are used to execute the user written programs.

AL:

AL robot language was developed in Artificial Intelligence Lab at Stanford University. It is the second generation language based on simultaneous Pascal. The programs are written and executed on PDP – 10. If the program is developed with high level code, then it should be written in Stanford Artificial Intelligence Language (SAIL). The AL system includes a big mainframe computer, and it generally runs on PDP 11/45. The PDP 11/45 implements one terminal, 128 KB RAM memory, and floating point processor. This language has got the capability to control two Stanford Scheinman and two PUMA 600 arms simultaneously.

RPL:

RPL robot language makes the improvement, checking, and correction of control algorithms very easy. It can be done even by an unskilled programmer like line foreman, production engineers, etc. The RPL programs are translated to interpretable code with the help of a compiler in SRI Robot Programming System. The programs are typically written in BLISS – 11 and run in RT – 11. The DECPDP – 10 is cross compiled into the LSI – 11 or PDP – 11. This robot language was designed in SRI International.

#language, #programming, #rail-aml-val-al-rpl, #robotics-2, #science, #technology

ARE YOU SMARTER THAN AN A.I. SEARCH ENGINE?

Google uses different signals to make sense of the searches, most of which are based upon the findings and judgment of staff. Nevertheless, RankBrain is the first system that is able to learn from previous mistakes.

Rankbrain converts words into mathematical entities called vectors that the computer can understand. The system then filters the results and provides links which it deems the most appropriate for each query.[1]

If RankBrain sees a word it does not recognize, the machine makes an educated guess based upon words that have a shared meaning. Each time it makes a guess, it monitors how the person responds to the results and makes adjustments in the filtering process.

The A.I. system has even managed to outcompete Google staff. Research engineers who developed the algorithm behind the software were asked to review some pages and guess which among the results they thought Google’s search engine would place on top. The staff guessed correctly 70 percent of the time, whereas RankBrain guessed correctly 80 percent of the time.[1]

ROBO LANGUAGE

RankBrain is the newest A.I. system to respond to a series of queries. In June, Google trained a computer to have conversations with people by asking it questions about technical support, common knowledge and philosophy. It was called “conversation model” and was developed by research scientists at Google Brain.[1]

The research scientists used a sequence-to-sequence framework in the exercise, which converses by predicting what the next sentence will be in a dialogue. The device predicts what the next question will be by drawing upon data provided by IT helpdesk manuals, book quotes, subtitle data bases and more.[2]

For example, during a technical support question, the machine was able to diagnose why the browser of a computer crashed. It was then asked a wide range of questions, some of which were common, while others, profound.

The computer registered fairly good results when asked about common knowledge questions, such as recognizing who Luke Skywalker was, whether a cat can fly and whether the sky was blue.[2]

On the other hand, the computer had mixed results when it came to answering existential questions pertaining to the human condition. For instance, when the computer was asked what the purpose of life was, it responded, “to serve the greater good and to live forever.” Nevertheless, when the machine was asked to provide a definition of morality, it responded, “I don’t have ethics.”[2]

The machine had trouble identifying with human emotions too. It stated having a child was immoral. When pressed to provide a definition of altruism, the machine seemed confused and replied, “If you don’t believe in God, you don’t know.”[2]

It also failed to answer simple math questions and claimed that a spider has three legs.

Preliminary trials aside, RankBrain is now the third most important signal which determines what search results a user views.

Sources:

[1] Bloomberg.com

[2] DailyMail.co.uk

#robo-language, #robotics-2, #science, #technology

A social-dancing Robot with Arduino and MQTT

The goal was bit optimistic for the time given, but still, using also some additional time until the end of the event (hackathon took place on the 1st day), I managed to build the social-dancing Robot that was demonstrated during the closing of the event:

The idea was to make the robot more IoT-enabled and interactive with the audience. So, I built a webpage that runs on a smartphone and gets events from the tilt sensor of the phone and delivers a dancing command to the robot through MQTT. When more than 2 people use the webpage and tilt (dance with) their phones, the command changes, and the robot performs a different-better type of dance.

#robotics-2, #science, #technology

PLEN2 is the world’s first printable, open-source robot


Say hello to your new robotic sidekick. 


R2-D2. GERTY 3000. Marvin. K-9. Jinx. These are just a few of the most well-known robotic sidekicks that super geeks like us have come to love over the years. Soon, PLEN2 may join the ranks of these memorable sci-fi characters, with the only difference being actual use in the real world. Whether you’ve ever wanted someone to go to class in your place, to break the ice with an attractive girl at the bar, or to fetch your morning cup ‘o joe, you’re in luck.

Launched on Kickstarter by Japan-based PLEN Project Committee, the 3D-printable, humanoid robotic kit consists of a control board, servo motors and other electronic accessories that allow Makers of all levels to put together themselves. What’s more, you don’t need any technical knowledge or special tools in order to bring your open-source PLEN2 to life.

photo-1024x768

3D data for the main components of the robot are provided free of charge, and with the help of a 3D printer, users can customize the data as well as make their own original parts. Upon completion, the easy-to-manuever and highly-agile humanoid stands approximately 7.87” tall, weighs just over 21 ounces and boasts 18 degrees of freedom. Designed to mirror its human counterpart, PLEN2 aspires to revolutionize the relationship between homo and robo sapiens. To help spur this adoption, the project’s creators have made its kit super simple to assemble, personalize, and of course, use.

7ed8ffaf875684f59ac578342a4b3c55_large

The robot’s command center is built around an Arduino Micro (ATmega32U4), and by employing some open-source software, can be programmed to meet any Maker’s wants and needs. PLEN2 is equipped with 24 RC servo motors, 1Mb of on-board EEPROM and an RS-485 communication port in both its control and head board. The head unit also comes standard with a BLE113 Bluetooth Smart module and a six-axis motion sensor, while PWM will drive the LEDs that PLEN2 uses for eyes.

949b2d6cc8cd892341a8e428c30cbcbe_original

Gadget-lovers can take pleasure in knowing that each PLEN2 can be customized not only in color and design, but in the way that it is controlled as well — this includes by iOS or Android smartphone, facial expression, gestures, myoelectrics and brainwaves, among countless other input methods.

d8f91891c3f965907f7b8f1437d98478_large

Not only for leisure activities, the humanoid can play an integral role in both educational and medical settings. A wide-range of uses cases include communicating with others in your place, carrying small items around, throwing a pickup game of humanoid soccer, as well as improving medical rehabilitation. What’s more, it can help entice children to pursue STEM disciplines and enable them to experience the joy of making things themselves.

As to whether this project takes off, or if you decide on programming a PLEN2 of your own, one thing is certain: Its theme song will get stuck in your head. Consider yourself warned…

…We told you so. Interested in learning more? Head over to its official Kickstarter page, where its team is currently seeking $40,000. If all goes to plan, you can have can have a PLEN2 alongside of you come November 2015.

#internet, #plen2-is-the-worlds-first-printable-open-source-robot, #robotics-2, #science, #technology

Artificial Intelligence program has the language skills of a four-year-old

Language is a distinctly human, innate mental structure. It is a prime example of a mental algorithm, which strings words into new combinations by plucking them from a memory bank. Recently, scientists have replicated this mental algorithm by developing an artificial intelligence (A.I.) software, which has the language skills of a four-year-old.

The machine mirrors the way a human brain functions. It was given 1,500 sentences from literature about language structure. It then drew from these words in order to sew new conversations together as the machine spoke with people.

The sentences didn’t flow out of the program naturally, but had the occasional hiccups of a typical A.I. program. The researchers claim the computer, dubbed Artificial Neural Network with Adaptive Behaviour Exploited for Language Learning or ANNABELA, had the language capacity of a four-year-old.

TALKING THE TALK

While having a dialogue with an adult, ANNABELA was able to churn out 500 sentences. The computer reflected the way children learn to speak by listening to their parents and understanding how words are used in specific contexts.

According to Dr. Bruno Golosio, a computer scientist at the University of Sassari in Italy, “The system is capable of learning to communicate through natural language starting from tabula rasa (blank slate), without any a priori knowledge of the structure of phrases, meaning of words, role of the different classes of words, only by interacting with a human through a text-based interface, using an open-ended incremental learning process.”

“It is able to learn nouns, verbs, adjectives, pronouns and other word classes, and to use them in expressive language,” he added.

What is unique about ANNABELA is that instead of having a pre-coded knowledge of language, as is the case with other speech recognition programs, the machine starts off with a blank slate. Researchers from the University of Sassari in Italy and the University of Plymouth in the UK orchestrated the system by weaving together two million artificial neurons.

It is hoped this artificial tapestry of neurons will enable A.I. systems to become more human-like, as portrayed in various Hollywood films. ANNABELA reflected the brain’s plasticity, which refers to the brain’s ability to form new connections between neurons. The brain is not cemented in time, but can morph and change throughout life.

The researchers breathed 1,587 sentences drawn from literature into the system, in order to assess the development of language in children. They asked the machine various questions a typical four-year-old could answer, such as “What is your father like?” and “How many games do you play?”

MACHINES THAT THINK

The study was published in the journal Public Library of Science One. The researchers claimed the system learned how to count, understood the concept of a friend and was able to execute personal pronouns like “her.”

Cognitive scientists are interested in understanding how language develops in order to catch a glimpse into the window of the human mind. In fact, some schools of thought even suggest we wouldn’t be self-aware in the first place without language.

In particular, a toddler develops a sense of self by executing referential pronouns like myself. It is a piece of grammatical English used to express a reflexive form. Without self-referential pronouns, so it is argued, we would be aware, but we wouldn’t be self-aware. In other words, we would be autopilot objects projecting into to the void.

If ANNABELA indeed has a sense of self, it is yet a very crude sense of self currently unworthy of the name. Nevertheless, the A.I. system is a remarkable achievement, as it illustrates that, at least, some mental structures can be replicated.

Source:

[1] Journals.Plos.org

#artificial-intelligence-program-has-the-language-skills-of-a-four-year-old, #programming, #robotics-2, #science, #technology

Service Robots : Glance

Definition of Service Robots

(Extracted from IRF)

In a joint effort started in 1995 the United Nations Economic Commission for Europe (UNECE) and IFR engaged in working out a preliminary service robot definition and classification scheme, which has been absorbed by the current ISO Technical Committee 184/Subcommittee 2 resulting in a novel ISO-Standard 8373 which had become effective in 20121.  A preliminary extract of the relevant definitions is given here:

  • A robot is an actuated mechanism programmable in two or more axes with a degree of autonomy, moving within its environment, to perform intended tasks. Autonomy in this context means the ability to perform intended tasks based on current state and sensing, without human intervention.
  • A service robot is a robot that performs useful tasks for humans or equipment excluding industrial automation application. Note: The classification of a robot into industrial robot or service robot is done according to its intended application.
  • A personal service robot or a service robot for personal use is a service robot used for a non-commercial task, usually by lay persons. Examples are domestic servant robot, automated wheelchair, personal mobility assist robot, and pet exercising robot.
  • A professional service robot or a service robot for professional use is a service robot used for a commercial task, usually operated by a properly trained operator. Examples are cleaning robot for public places, delivery robot in offices or hospitals, fire-fighting robot, rehabilitation robot and surgery robot in hospitals. In this context an operator is a person designated to start, monitor and stop the intended operation of a robot or a robot system.

A robot system is a system comprising robot(s), end-effector(s) and any machinery, equipment, devices, or sensors supporting the robot performing its task.

Please note: According to the definition, “a degree of autonomy” is required for service robots ranging from partial autonomy (including human robot interaction) to full autonomy (without active human robot intervention). Therefore, in addition to fully autonomous systems service robot statistics include systems, which may also be based on some degree of human robot interaction or even full tele-operation. In this context human robot-interaction means information and action exchanges between human and robot to perform a task by means of a user interface.

With this definition, manipulating industrial robots (which can be either fixed in place or mobile) could also be regarded as service robots, provided they are installed in non-manufacturing operations. Service robots may or may not be equipped with an arm structure as is case with some industrial robots. Often, but not always, service robots are mobile.

In some cases, service robots consist of a mobile platform on which one or several arms are attached and controlled in the same mode as the arms of industrial robot. Furthermore, contrary to their industrial counterparts, service robots do not have to be fully automatic or autonomous. In many cases these machines may even assist a human user or be tele-operated.

Due to their multitude of forms and structures as well as application areas, service robots are not easy to define.

 REFERENCE

 

#robotics-2, #service-robot, #technology

World Robotics Survey: Industrial robots are conquering the world

IFR press release

(Pure Extraction)

World Robotics Survey: Industrial robots are conquering the world

Frankfurt, 30 September 2015 – By 2018 global sales of industrial robots will on average grow year on year by 15 percent – the numbers of units sold will double to around 400,000 units. Five major markets representing 70 percent of the total sales volume:  China, Japan, USA, South Korea and Germany. So says the 2015 World Robot Statistics, issued by the International Federation of Robotics (IFR).

“The main driver of this development is the global competition of industrial production. The automation witnessed by the automotive sector and the electrical/electronics industry comes out top here with a market share of 64 percent”, says Arturo Baroncelli, President of the International Federation of Robotics (IFR).

Within this context, the rapid automation in China represents a unique development in the history of robotics. The number of industrial robots sold increased by 56 percent alone last year in comparison to 2013. China is the largest and fastest growing robotics market in the world. The potential remains enormous despite the recent economic downturn. After all Chinese production industries currently have a robotic density of just 36 units per 10,000 employees. To compare: As the front-runner South Korea deploys 478 industrial robots per 10,000 employees followed by Japan (315 units) and Germany (292 units). It is estimated that more than one-in-three of the global supply of industrial robots will be installed in the Republic of China in 2018.

The statistics on robotic density likewise indicate huge opportunities for growth in the USA. Production industries there deploy just 164 industrial robots per 10,000 employees right now. The USA is currently automating its economy at high speed. The aim is to strengthen the country as an industrial centre and to retrieve outsourced production. In 2014 the number of installed robots increased by 11 percent to around 26,000 units – making it third in the world.

In Europe it is Germany that takes the lead by some distance. Within one year (2014) the sales figures increased by around 10 percent to about 20,100 units – to date the largest number of sales registered within twelve months. Despite the already very high robotic density existing there, the world’s fifth largest robotics market remains on a path of expansion – driven primarily by the automotive industry.

Global investments made by the automotive industry in industrial robots have increased significantly since 2010. 2014 was a new record year with about 100,000 newly installed robots – up 43 percent compared to the previous year. This boom has been fuelled by new production capacities in emerging markets and a wave of modernisation sweeping through established auto-making countries. A large proportion of robotics technology in 2014 was purchased by suppliers of electronic components to the automotive industry. These include battery manufacturers and car IT enterprises.

In 2014 the electrical/electronics sector likewise posted a new record – sales increased by 34 percent compared to the previous year. The strong demand for industrial robots in the production of consumer electronics, communication equipment as well as computer and medical technology adds up to a total global market share of 21 percent.

The wave of digital transformation and automation will continue to drive the triumphant march of industrial robots onwards up to 2018. “Industry 4.0” projects mean that human-robot teams, for example, are on the cusp of a break-through. Simplification of the use of robots will additionally open up the market for new applications. This is equally true of small and medium-sized companies as it is for large corporations in all sectors. Besides the automotive and electronics industries, this development is also being increasingly felt in the metal processing, plastics, food and packaging industries.

“The market volume available to industrial robots is enormous. Including supporting services we estimate the global market value to be 32 billion US dollars for 2014”, sums up IFR President Baroncelli.

Further files are ready for download below. In addition you may watch video statements on our YouTube channel.

REFERENCE

#industrial-robot, #irf, #robot, #robotics-2, #sci, #science, #technology

Robotmaster : A Revolution

Getting the most out of robots

Enabling industrial robotics in manufacturing

With Robotmaster, manufacturers can program robots quickly and efficiently, using industry proven CAD/CAM software technology. Driven by the growing trend towards lean and flexible manufacturing, robots are progressively replacing conventional dedicated manufacturing units, such as CNC milling machines. Robots, once perceived as only positioning devices, have advanced in accuracy and rigidity, and are now being used increasingly for manufacturing and material removal. With industrial robotics, manufacturers are producing higher quality products at lower cost, and are achieving the speed and flexibility they need to challenge their competitors throughout the world.

According to the International Federation of Robotics as of 2013 over 1.5 million robots were estimated to be in operation in industrial applications worldwide, and an additional 160,000 are being sold every year. While many companies currently using CNC machines have been exploring the opportunity of manufacturing with the use of industrial robotics, they have been limited by a lack of time and cost-effective robotic programming tools. Currently less than 1% of robots are programmed using CAD/CAM (computer aided design and manufacturing) software because of a lack of mature robotic programming solutions. Robotmaster eliminates this barrier.

Robotmaster delivers:

  • Cost-efficiency and flexibility of robots coupled with the ease of programming.
  • Programming of robots from CAD/CAM software as easy as CNC machine programming.
  • A sure way to beat the competition -worldwide- on cost, flexibility and response time.

Revolutionary CAD/CAM approach to robot programming software

Our strong background in CAM (Computer Aided Manufacturing) software has enabled us to bring a revolutionary approach to programming for industrial robotics. Unlike the wide range of simulation software packages that claim to be off-line programming for robots while truly only offering very limited programming capability, Robotmaster delivers easy programming of precise tool motion control and quick generation of long tool path trajectories with minimal programmer intervention.

Robotmaster uses mature CAD/CAM software technologies for robotic programming with the same flexibility and speed as software used for programming CNC machine tools. Conventional off-line robot software programming solutions are based on either a very cumbersome and tedious point to point programming approach or a post-processor solution that offers very little flexibility and functionality.

Robotmaster CAD/CAM programming:

  • Generates more profit with your robot. Robotmaster generates programs off-line and eliminates lost production time during programming.
  • Delivers closest conformance to design. Robotmaster creates simple or complex robot trajectories accurately without teaching points.

Integrated robot programming software solution

Robotmaster seamlessly integrates programming, simulation and program generation to any CAD/CAM platform. The multi-software approach of conventional off-line robot software solutions forces the use of one software for CAD/CAM programming, another for converting trajectories to robot positions and finally a third to simulate and validate the programmed trajectories.

robot

Robotmaster Integrated Solution

robot

Multi-software Approach

Integrated programming produces:

  • Quicker robot programming, validation and code generation.
  • Easy program updates and revisions.

Evolution of robot programming

evolution chart

Using MANUAL TEACH PENDANTS, robots “learn” from the operator jogging the robot through the trajectory and recording points, one point at a time, using the robot’s teach pendant. Robotmaster takes the process off-line and engineers the robot program from the design drawings.

OFF-LINE EMULATORS reproduce the manual teach process in an off-line setting, using a simulation software environment in place of the robot’s teach pendant. Robotmaster follows the path-intensive CAD model accurately and automatically and permits easy updating and revision of the program.

GENERATION 1 OFF-LINE SOFTWARE provides a CAD software environment for manual input of robot parameters for every point of a desired path, one at a time, on a CAD model. Robotmaster automatically generates the full robot trajectory from any CAD/CAM tool path strategy in a fraction of the time.

GENERATION 2 OFF-LINE SOFTWARE generates a robot trajectory by following trajectories drawn manually within a CAD modelling software. Robotmaster automatically generates the full robot trajectory from any CAD/CAM tool path strategy, building direct links between the CAD model and the tool path, without the need to manually draw any additional geometry.

A CAD/CAM POINT CONVERTER is a CAD/CAM post processor, robot simulator utility or standalone software that converts tool path output by CAD/CAM software into a robot trajectory for a specific model or brand of robot. Robotmaster is a fully integrated solution that permits seamless interaction between CAD/CAM and robot programming functionality, allowing trajectory optimization and integrated robot kinematics and simulation for a wide portfolio of robot models and brands.

Solving programming challenges

Struggling to program a robot the way you do a CNC machine tool? Robotmaster is up to the challenge:

Not easy to check intuitively robot joint limits and robot-to-part collisions?

Robotmaster automatically checks programs for joint limits, robot reach limitations and collisions.

solving

Need to do manual touch-up and rework of your off-line programmed points?

Robotmaster inherently calculates robot joint values and properly sets parameters to give seamless program playback without manual intervention.

solving

CAD/CAM data is not enough to provide position and orientation data for a 6-axis robot?

Robotmaster uses automated settings for orienting the robot tool to manage trajectories with complex orientation changes.

solving

Your program produces errors and stops running when it passes through one of your robot’s singularity zones?

Robotmaster checks for singularity and has powerful tools to correct programs containing singularities.

solving

How to select from the up to 8 possible configurations that your robot has to achieve everyone of its programmed points?

Robotmaster can vary configurations for optimal programming of trajectories or follow your specific robot configuration choice.

solving

Inaccuracies in your part or tool setup cause production delays as you make manual adjustments?

Robotmaster eliminates adjustments and increases program accuracy by calibrating the physical part and tool setup with the virtual CAD model.

solving

REFERENCE

Billard-handbook

We are indebted to them and the sharing is non commercial

Best Regards

Rohan Chataut

#robot, #robotics-2, #robotmaster, #science, #technology