Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

Aksum University

College of Engineering and Technology


Department of Electrical and computer Engineering
Computer Engineering Stream

Internship Report

ICog-Labs

Done By:
 Eden Bekele AKUR/1087/06
 Yeshalem Mebrahtu AKUR/1274/06
 Brhanu Degene AKUR/1035/06

Submitted to: Mr. Iyasu


Mr. Amanuel
STUDENT DECLARATION
We spent the internship program for the last four months at iCog-Labs. Through these 4 months
we tried a lot to achieve the internship objectives and was able to do the tasks according to the guide
line. We have now compile all the data’s that we gathered and add prepared this report on what we have
been doing, what we have gained, and our conclusion and recommendation. So we declare that this
internship report is fully our own work.

Student Name: ID: Signature:


 Eden Bekele AKUR/1087/06

 Yeshalem Mebrahtu AKUR/1274/06

 Brhanu Degene AKUR/1035/06

Date……… Month …………. Year………….

Mentor

Name…………………………………………

Signature…………………………………………

Date……… Month …………. Year………….

i
Acknowledgment

ii
Executive Summary
This paper is written to explain our entire internship program activities and the new
things that we were able to grasp through this process. During the internship, we have gained
a lot of good and important skills that changed our life.

This report is organized in four chapters each discussing important details. We have
tried to make things as clear as possible, and have included links for those who want to explore
further more.

The first chapter discusses about the company: its history, products and services,
customers, company organization and work flow.

The Second chapter is dedicated to discussing our internship experience explaining


important details like how we got into the company, what we have been doing, the challenges
we have faced and the remedies we took.

The third chapter emphasizes on what experiences and skills we have developed in
during the internship in the company. Skills we gained in respect to practical knowledge,
theoretical knowledge, work culture, communication skill, and others are discussed in detail.

The last chapter is where we forwarded our conclusion and recommendation for
companies, students, and our university in relation to the internship program. We have also put
our personal recommendation for the company that we worked with, putting suggestions for
others who want to work in collaboration with the welcoming people there.

iii
Contents
Acknowledgment .................................................................................................................................... ii
Executive Summary................................................................................................................................ iii
Chapter One ............................................................................................................................................ 1
1. About our Hosting Company............................................................................................................... 1
iCog-Labs: AI Research and Software Development ............................................................................... 1
1.1. A Brief History of iCog-Labs.......................................................................................................... 1
1.2 iCog-Labs products and services ................................................................................................... 3
1.3. Customers .................................................................................................................................... 4
1.4. Organization and Work flow ........................................................................................................ 7
Chapter Two ............................................................................................................................................ 9
2. Internship Experience ......................................................................................................................... 9
2.1 How we got in to Company........................................................................................................... 9
2.2 Section of the company we were working on .............................................................................. 9
2.3. The way the project was organized ........................................................................................... 10
2.4 Workflow of the Project.............................................................................................................. 11
2.5. Challenges we Faced and measures taken to remedy............................................................... 17
Chapter Three ....................................................................................................................................... 18
3. Benefits we gained during our internship period ............................................................................ 18
3.1. Improving practical skills ............................................................................................................ 18
3.2. Upgrading Theoretical skills ....................................................................................................... 20
3.3. Improving interpersonal communication skills.......................................................................... 22
3.4. Improving team playing skills..................................................................................................... 23
3.5. Improving leadership skills......................................................................................................... 23
3.6. Improving work ethics and work culture ................................................................................... 23
3.7. Improving entrepreneurship skills ............................................................................................. 24
Chapter Four ......................................................................................................................................... 25
4. Conclusion and Recommendation .................................................................................................... 25
4.1 Conclusion ................................................................................................................................... 25
4.2. Recommendation....................................................................................................................... 26
5. References ........................................................................................................................................ 28
6. Appendices ........................................................................................................................................ 29

iv
Chapter One

1. About our Hosting Company

iCog-Labs: AI Research and Software Development


1.1. A Brief History of iCog-Labs
iCog-Labs is a research and development company based in Addis Ababa, Ethiopia,
collaborating with international AI research groups and serving customers around the world.
It helped its customers with a variety of projects, but the core specialty is artificial
intelligence, including machine learning based data analysis, computational linguistics,
computer vision, mobile robots and cognitive robotics, cognitive architectures and artificial
general intelligence.

The staffs bring experience contributing to international AI development teams, as


well as software and hardware development experience on Ethiopian government and
industry projects. iCog-Labs is the core contributor to the OpenCog open source AI platform
and utilize OpenCog within our projects as appropriate. The company had been working on
several Artificial Intelligence Research and Development projects, as well as, the
development of AI featured commercial software since 2013. The mission of iCog-Labs is to
advance science and technology for the good of all humanity, with a special focus on
advanced AI and on the use of cutting-edge technology to help leapfrog Africa in to the
future.

At the hub of this tech growth is an AI group, iCog Labs, co-founded in 2012 by a
young Ethiopian roboticist, Getnet Aseffa Gezaw, and an American AI pioneer, Ben
Goertzel. With a team of twenty-five Ethiopian software engineers, iCog pursues full-on
'Strong Intelligence,' the conviction that computers can potentially emulate the entire human
brain, not just aspects of it.

The ambitious lab has a bold mission: to create software that not only simulates the
brain, but pushes the envelope of what the brain can do. The lab also focuses on a host of
practical applications for clients around the world, including humanoid robots for Hanson
Robotics, makers of the renowned Robot Einstein; AI-driven automated pill dispensers
and elder-care robots for a Chinese company, Telehealth; and mapping the genetics of
longevity for two Californian corporations: Age Reversal Incorporated and Stevia

1
First. iCog also delves into 'deep learning' algorithms for vision processing and object
recognition (used in drones, satellites and security systems), machine learning algorithms
to predict patterns in everything from agriculture to electricity consumption, and algorithms
that react to English and a host of African languages. iCog's humanitarian work includes
developing software for AI tablets for children--distributed to Ethiopian villages--with games
that help children teach themselves elementary coding, mathematics and English. The
endeavor builds on One Laptop per Child's initiative which earlier distributed thousands of
tablets to rural children to help them learn computer programs in the language Squeak. iCog
recently doubled its office space and has collaborated with Addis Ababa Institute of Science
and Technology to form the first post-graduate AI program in the country. It is also a major
contributor to the OpenCog foundation, the largest open-source AI group in the world, co-
founded by Goertze land based in Hong Kong.

iCog-Labs closely work in collaboration with OpenCog which is an open-source


software project aimed at directly confronting the AGI challenge, using mathematical
and biological inspiration and professional software engineering techniques. It is a non-
profit founded in 2011 as a formal entity to foster research, guide the development of the
project, and encourage the adoption of the framework in universities and research centers
around the world.

OpenCog is currently being used at the Hong Kong Polytechnic University to power
the next generation of intelligent game characters. The framework is also being used to control
Nao robots at the BLISS lab at Xiamen University, China, to enable them to learn about
their environment and communicate more effectively with humans.

OpenCog is an ambitious project with many challenges. The however is confident that
its design and software is capable of human preschool-level intelligence after years -
not decades-of sustained effort along its roadmap. After that, progress will become
increasingly rapid.

iCog-Labs has many partners all over the world. iCog-Labs carries out its operations in
collaboration with a number of international partners including: US AI firm Novamente LLC,
US bioinformatics firm Biomind LLC, the Hong Kong Polytechnic University, and the
nonprofit futurist Humanity+.

2
1.2 iCog-Labs products and services
At any given time, iCog-Labs staff are involved with a number of different projects,
both commercial projects for international customers and R&D projects in collaboration with
the OpenCog Foundation. Some of its current area of focusinvolve:
1.2.1. Constructing mobile robots and enabling them with SLAM mapping, navigation
ability and vision processing. The Lab is interested in robotics, both for research
and development, and also for use in industrial automations other sectors robots
can participate. It specially focuses, as an AI company, on making robots
intelligent, smarted, autonomous, and versatile and general purposed.
The Lab works in collaboration with many international Robotics companies
(to state one, Hanson Robotics), and universities (especially Hong Kong
polytechnic university) to exchange knowledge sharing, hardware accessories,
latest technologies in the field.
1.2.2. Deep learning algorithms for vision processing and object recognition. The Lab
conducts many researches and experiments that relate to computer vision. It uses
many open source software and libraries that are written for this task. The Lab
has different international clients that outsource vision processing and object
recognition tasks to it.Some of the works done in this section are long term face
detection, face recognition, eye-ball tracking, lip movement detection, and so
on. Object identification from digital images. Object tracking using camera and
live streams.
1.2.3. Use of machine learning algorithms to predict trends in global consumption of
entertainment media. This projects involve machine learning based prediction
systems that use supervised learning systems to learn trends and predict
something about the future out of massive amount of data. This basically
involves curve fitting systems like regression, of neural networks, or support
vector machines (SVN) and also other unsupervised learning algorithms. One
interesting project in this section is the project undergoing for the well-known
chocolate manufacture HERSHEY’s. More detail is presented in the customer
sections.

3
1.2.4. Creation of automated systems to understand the English language, via mapping
English sentences into sets of logical relations that can be analyzed by
probabilistic reasoning systems.
1.2.5. Integrating hand-built knowledge sources like Concept Net and Freebase with
knowledge acquired via statistical language processing, within a common graph-
based knowledge store.
In addition to software development services and in-house R&D, they are planning a
product development effort that is initiated in 2014which is particularly focused
inexploring avenues for product development in:
o Computational linguistics for African languages, initially Amharic.
o Robots for education and surveillance.
1.3. Customers
Currently, all the customers of iCog-Labs are all abroad and are international
companies. These are the lists of companies that have been working with iCog-Labs.

1.3.1. Lenovo and Telehealth


The giant company Lenovo which is popular for making PC and tablet has
joined its force with a Chinese insurance company to develop what is called Telehealth.

Telehealth is the delivery of health-related services and information via


telecommunications technologies. Telehealth could be as simple as two health
professionals discussing a case over the telephone or as sophisticated as doing robotic
surgery between facilities at different ends of the globe.

The Chinese company wanted to develop AI-driven automated pill dispensers


and elder-care robots for the Chinese elderly community in collaboration with Lenovo.
Lenovo will supply hardware (tablet) that will be put on the robots and serve the
computing power.

iCog-Labs is involved in developing the full software that interacts with the
patients and dispenses the pill.

1.3.2. Hanson Robotics

Hanson Robotics is a robotics R&D company that is aimed with creating


humanoid robots with full range of human like facial expression. The goal of the
company is to bring-to-market the most compelling and engaging humanlike robots
with greater-than-human wisdom, that are capable of developing a deep, trusted
relationship with people.

4
Currently the company has built many humanoid robots, specifically the head
part including the famous Albert Einstein. There robot heads have full facial expression:
their face changes according to the emotion they feel, just like human beings. They can
show surprised, angry, happy, sad, and so many other expressions.

Moreover, the robots are installed with the best AI software that they can
interact with peoples in conversations.

Here is the list of robotic heads: Han, Jules, Joey Chaos, Alice-Eve, Bina48,
Philip K. Dick, Albert Einstein Hubo, and Diego-San.
These robotic heads work by the use of a broad range of leading-age innovations that
include:
 Emulation of over 62 facial and neck muscular architectures
 Machine vision via micro-cameras inside the eyes
 Face and speech recognition, eye contact face-tracking, and
conversational capabilities utilizing the latest AI software
 Portable, power-efficient battery operation
 API interface for collaboration

So, iCog-Labs in involved in the 2nd, 3rd and 5th part of the above stated
technologies. As the robots are expected to interact with human beings just like humans
would do, they need to identify when a person is talking to them, when a person is
leaving, and also they should be able to respond and ask questions (simply interact).

iCog-Labs works in developing software for face recognition and object


detection using machine learning and other AI algorithms.

1.3.3. HERSHEY’S

The Hershey Company is the leading North American manufacturer of quality


chocolate and non-chocolate confectionery and chocolate-related grocery products.
The company also is a leader in the gum and mint category. The relationship between
iCog-Labs and the Hershey’s company is that the company is interested in the
possibilities of the AI technology. The Hershey’s company (as a matter of fact anybody
in the business sector) believes that if you could predict the future (not perfectly, but

5
even if you could say something about the future), say like for example if oil supplying
countries could predict the possibility of other efficient energy source in the future that
can fuel cars, they would do something to cope up with that. To add another example,
had the Kodak company (popular for the non-digital photographic era) anticipated
the advent of digital photography, it wouldn’t have gone to bankrupt. So, the Hershey’s
company as a business owner wants to predict the future trend and shape its products
accordingly. To this end, the company beliefs that AI can help it in predicting the
future, and yes indeed it is possible. iCog-Labs is engaged in developing the predicting
techniques, using machine learning. The project involves parsing a lot of newsletters
from about 1925 that are written in relation to technology and innovation. The software
then analyzes that information and predicts what technology in the near future will
dominate the world ansd shape it.

1.3.4. Stevia First

In 2011, Stevia First Corp. was launched with a mission to provide a healthy
mainstream solution for our twin diabetes and obesity epidemics. They realized that
a powerful way to do this was to end our addiction to sugar, and so they enlisted
with the help of some of California’s brightest scientists and agronomists, and put
into action a plan to rapidly increase the global supply of stevia – the perfect natural
sweetener: the holy grail of sweeteners.

Now, with most full time staff located at the company’s R&D campus in Yuba
City, California, the company has grown to include more than 20 researchers and
technical experts, including ones spread across the world. They are a mission-
oriented group, focused on reinventing human nutrition, and we are dedicated to
solving the challenges that currently plague the food and nutrition industries, and our
collective public health.

Leveraging the processes, the company developed in its work with stevia, our
team is also actively exploring links between human health and longevity. In
particular, they’re pursuing “geroprotectors”, which have known effects on lifespan,
and that could prevent or even reverse metabolic disorder, obesity, and Type 2
diabetes. There R&D team includes bioinformatics specialists, i.e. people that
understand software, medicine, and statistics, and who are developing an “AI
Scientist” discovery platform to help make the process more efficient and automated.

6
They are initially commercializing nutraceutical products from this program,
which can be derived from plant products and can be quickly commercialized as
affordable functional food ingredients.

iCog-Labs is one of the firms which is working on the bioinformatics algorithms


section for the company. Teams in iCog-Labs work in close collaboration with R&D
teams from the company to the end of defeating aging.

1.4. Organization and Work flow


The company is organized in such a way that it is easy to communicate the works done,
the tasks to be done, challenges faced and possible solutions, since it is a software development
company.

They have what is called scrum-minute. Workers will discuss what they have been
doing last time, what they will be doing on that day, and what challenges they have faced.
Through that, they will exchange information and get help if anything difficult happens.

The scrum-minute is posted to a group email which is viewed by clients, other workers,
CEOs, and others in overseas.

The company also uses a messaging app called slack to facilitate communication
between clients, workers, and others.

Moreover, they have a monthly discussion between every worker, in which every
project is discussed in detail. A SWOT analysis is also undertaken.

Every project has a dedicated project leader, who is responsible to the CEO. Their task
is to manage the project, members of the project, and the inter project communication, plus the
client side communication.

Every six months, every worker is evaluated (Including interns). The worker’s work
ethics, work culture, work capacity, and project deliver rate are evaluated. Then quailed
workers get a raise according to their evaluation.

The company also uses a project management system software called Trello. These
software is good in a way people are able to create a board, the board is a task that you have
been

7
assigned on. In the board you can create subtasks you are going to accomplish. In addition, you
can assign and add peoples who are going to be involved in the project, assign deadlines to the
task. The software then automatically notifies members with progress of others, arriving
deadlines, or unmet deadlines.

8
Chapter Two

2. Internship Experience
2.1 How we got in to Company
In the summer of 2009 E.C, we contacted our internship office for the internship form
and began searching for companies relating to our field. But no luck that time.

But, one of our Instructor named “Inst. Iyasu” suggested us some companies and we have
chosen iCog-Labs as our internship company.

2.2 Section of the company we were working on


When we join the company there were more than three ongoing projects: Tele-Health
project, Teaching-Tablet project, Toy-Robot project, Longevity Project, and OpenCog R&D
project.

The Tele-health project was all about combining AI, ICT, and medicine together. As
mention in the earlier chapter, iCog-Labs was responsible on the AI and ICT part.

The Teaching-Tablet project was a project that was directed towards developing an
interactive software that can interact with children in a friendly and in a teaching way.
Important software will be installed on the android based tablet, the tablet will be distributed
to children, and it will be responsible for teaching them basic knowledge. The Customer for
this project was intended to be the Ministry of Education of Ethiopia (but nothing is decided
yet, ongoing), but also there is an x-prize competition that basically asks the same thing (an
interacting tablet that can teach students). So this project is intended for both the local market
and for the competition to, or to which ever it succeeds.

The Longevity project is an international project which is directed towards extending


the life expectancy of people. Generally, its goal is to decrease the rate of aging or eliminate
it at all. iCog-Labs is involved in this project in the what is called bioinformatics which is an
inter disciplinary field that develops methods and tools for understanding biological data, in
this case specifically genetic data relating to aging. At it is known decoding all those billions
and trillions of genetic information without the help of software and AI is impossible, and
thus iCog-Labs has been working on that front.

The OpenCog R&D is a research and development program that is aimed at creating
an open source frame work for artificial general intelligence. OpenCog Prime is a cognitive

9
architecture for robot and virtual embodied cognition that defines a set of interacting
components designed to give rise to human-equivalent artificial general intelligence (AGI) as
an emergent phenomenon of the whole system.

Much of the work on the project is inspired by the AGI theories of project co-founder
Dr. Ben Goertzel. But there is a lot of other stuff in the code base too, and the community is
generally welcoming to new ideas.

Toy-Robot Project is a project that was directed towards the company’s interest of
involving in robotics. The project was to be performed in collaboration with peoples working
in Hong-Kong poly-tech University.

Its task is to hack a very low cost popular humanoid robot called Robosapien.
Robosapien is a humanoid robot that was initially produced in 2004 by Mark-Tilden. It was
distributed and mass produced by a Chinese company called WowWee. At that time the robot
was sold at a price of $100 USD (a very cheap cost when comparing it with other humanoid
robots), and about 23 million copies were sold. This robot is remote controlled and has about
66 commands available including some demo dances that can display all the robot’s movement
capacities. Yet the robot has nothing that makes it intelligent, not even vision is supported by
the robot. So here in iCog and in Hong Kong, hacking this low cost robot to give it some form
of intelligence was to be undertaken.

From all the projects, we chose Toy-Robot because we were interested in robotics. This
was not commercial project, rather it was a research project. So, Details of the projects were
not that specified, but only the high level goal was set. We were experimenting what features
we can include in the robot as we proceed on working on.

2.3. The way the project was organized


This project was organized in a way that in the first Phase, iCog-Labs will be working
jointly with the Hong-Kong poly Tech University. The university has already began hacking
the robot, and thus we will be following them in what they do, like test what they were doing
here in our own robots.

Two Robosapien robots were brought to us with the necessary equipment’s including
wireless analogue camera, analogue to digital convertor (digitizer), Bluetooth and Wi-Fi
modules, ac/ac amplifiers, DC/DC amplifiers, microcontrollers (Arduino pro-mini), micro-

10
servo motors (metal gear), Inertial Measurement Unit (IMUs), Range Sensors (Sonar Sensors)
and so on.

A group of six students was formed to work on this project. Out of the six one was a
working staff, one was a senior intern who was 5th year at that time and others including us
were new interns. As explained in the workflow section for the company, we will meet every
day and discuss our progress and challenges. Our CEO was also working close with us, and
also we got all support from Hong Kong polytechnic University too.

On the second phase of the project, our team will take on its own way to and will be
working on adding its own unique feature on the robot. Those feature were not decided at that
time but was agreed on to research on those features while working on the first phase.

2.4 Workflow of the Project


2.4.1. First Phase

In the first phase of the project, our task was to keep up with the team in Hong Kong.
They were already half way done with their part.

Initially, it was decided to include Vision, Communication other than the Remote, and
Some interactive features for the robot.

For the Vision part, a wireless camera, for communication a Bluetooth between the
robot and android phone, and Bluetooth based controlling mechanism through the
android phone, and for the interactive part Speech to Text (STT) and Text to Speech
(TTS) features were targeted.

To that end first, we divided our team into three subgroups. One group was assigned
the task of build the hardware part of the hacking which is going to be added to the
Robosapien. Other group including us was assigned with the task of testing the electronics
(micro-controllers, Bluetooth, camera, IMUS, servo motors) with simulation in proteus and
testing it in hardware too. The remaining team was assigned the task of developing a
Bluetooth based android program that will simulate the remote controller so that anybody
can control the robot.

2.4.1.1. Hardware building: This task involved removing the head of the Robosapien
and replace it with the required electronics and a camera system that involved
pan/tilt capacity. The designed their own mechanical parts to place the electronics

11
and the camera (In this part they didn’t copy anything from the Hong Kong teams).
They worked on a pan and tilt system for the camera so that the camera can view
on different directions. They used two MG90s metal gear servo, one for pitch (y-
axis) and the other for pitch (z-axis).
They also decided and prepared a room for the Arduino pro-mini, IMUs, Bluetooth
module, power source, sonar sensor, audio amplifier (to be used for STT and TTS).
Generally anything involving mechanically was assigned to them. Finally, they
were also responsible for mounting the finalized hacked hardware in Robosapien.
2.4.1.2. Electronics Testing: This task involved testing each and every electronic element
to be added to the Robosapien separately. We were in this part of the project.

First, a simulation was conducted in proteus. We tested every electronics in that was.
We went to proceed to hardware testing once the simulation was done. Simulation
was only possible for Bluetooth, servos, IMUs, and not for camera.

Second, we tested all electronics separately in hardware. We made sure that every
part is working. Later we tested them in groups and finally we tested the whole
assembled electronics that is intended to be included to the Robosapien.

2.4.1.3. Bluetooth-based controller: this task involved simulating the Robosapien remote
controller in android phone. They designed the graphics for the remote controller, its
controlling function and its communication.

The idea behind this task was that if somebody wants to control the robot, it just
doesn’t need to have the remote. Anyone who has android phone can install the
designed app that they developed and they provided with GUI of the remote. Once
they press a button, the command will be sent to the robot controller i.e. Arduino pro
mini through Bluetooth communication.

Those tasks generally took about two week and half. As soon as we were done with the
first and the second task (hardware building and electronics testing), we mounted the hardware
on the robot.

Our next move was to test the codes written (most of which is written by the Hong Kong teams)
on our robot. In this task all the group members were involved.

12
The difficulty with that was we were not familiar with the codes and languages they
used. Part of the code was written for the Arduino micro-controller and was relatively easy to
understand and took less time. Since we are familiarized with Arduino environment and this
one took less time. But some part of the code is completely unfamiliar environment for us that
time. It uses ROS (Robot Operating System). This is an open source middleware platform for
robotics applications.

The company provided us with ROS training every Saturdays. So we were familiarizing
our self with that platform. In addition, the platform works best in Linux environments than in
windows, so we needed to make ourselves comfortable with Ubuntu systems too.
So will introducing ourselves with ROS and Linux, and also testing the code on Robosapien
took us some ample time. After some hard working, we finally managed to test and run some
part of the code. These included controlling the robot from android phone through ROS.

Also there were some features we weren’t still able to make work. These includes the Speech
to Text (STT), and Text to Speech (TTS). We had some difficulty with those tasks.

In the meantime, the other group who were working on the Bluetooth based controller also
tested their work on the robot. They were able to control the robot from android phone
connected to Bluetooth. The app completely managed to replicate the remote controller in
Bluetooth was a great success.

Whenever we had difficulty in our work, we were free to contact for help including those in
HK. We continuously worked in collaboration with them especially in the STT and TTS.
Finally, with the help of the teams from HK, we were able to run and test those remaining
functionality, i.e. STT and TTS.

Finally, with the completion of STT and TTS, we were able to catch up and complete our
assigned tasks on the first phase. We tested all the codes the HK team wrote.

2.4.2. Second Phase

Finalizing the first phase of the project was somehow a learning period for us. We were learning
as we were working.

At the end of the first phase we were equipped with the knowledge of ROS, electronic
interfacing, and python programming language. So we were ready to much for creating our
own project.

13
We studied OpenCV (Open source Computer Vision) which is a library written for image
processing. Color based detection, pixel wise manipulation, many different types of filters (low
pass and high pass filters), machine learning based face detection module (HaarCascade
classifier), circle, rectangle, polygon, straight-line detection algorithms (Hough transform), and
video processing algorithms are all provided by the library. In addition, it supports C++,
python, Java, and also android based systems are supported by the library.

Our research continued on other possible features that can be added to the robot. While we
were researching, an idea from our CEO came. He suggested that we should make the robot
play football. He pointed out what is called “Robot Soccer” to us.

Robot Soccer is an internationally accepted football league between robots whose aim is to
beat the world cup winner national team of human beings in the year 2050s. FIFA has
recognized the game and has enlisted it as an international game. Ever since 2005 interested
teams from all over the world were participating in the game. Most teams are from renowned
universities across the world. Prominent teams come from America, German, China, Japan and
so on. The match has been going on yearly till now. Recent games are in 2015.

Football involves many different cognitive skills and intelligent that seem trivial to human
beings. Even a very young kid knows not to pass border lines, where the opponents goal is,
where his/her goal is, who his team mates and opponents are, where the ball is, when to start
the game, when to stop the game, when a goal is scored and so on. These trivial tasks are very
difficult and require deep thinking when trying to implement these tasks on robots. Lots of
image processing, flexibility, team behavior, and intelligence are required. Thus anyone
involved in the Robot soccer will develop his/her skills of image processing, control system,
AI and programming.

When the international robot soccer started, it used color based detection for goal, opponents,
field lines, ball, and teammates. One of the teams for German University used three Robosapien
robots (Yes the one and exactly those we were hacking) equipped with PDA (personal digital
assistance) and a wide angle camera.

After watching and researching on all of that we started to implement just some part of the
robot soccer competition. As a starting point we started, implementing a simple algorithm that
will allow the robot to find a ball, go towards the ball and kick it without worrying about team
mates, opponents, goals, field lines etc.

14
Toward that goal, we wrote a code that uses color based detection to allow detection of the ball
using camera. We used OpenCV and PID controller. The code that we wrote tracks the ball
and gives an information about the (X, Y) coordinate of the ball with respect to the camera
window.

We could proceed to use the same PID controller logic if we had a wide angle camera. In
addition, due to the robot gait implemented on the robot, whenever the robot moves forward,
backwards or turns sideways, it causes a lot of vibration, thus the camera would lose the ball.

Due to that we started to develop a strategy to do things sequentially, one after the other, each
one supporting the other but not disturbed by the other.

We planned that the tracking should be done first. Once the ball settles, the camera tracking
also settles.

Next, taking into account where the ball is in reference to the camera, and where the camera
is in reference to the body, we wrote a code by how much the robot’s body needs to turn in
order to face the ball. In this case, it doesn’t matter if vibration occurs and the camera lost the
ball, because we didn’t depend on camera data for this part. We used digital compass
included in the IMUs (GY-80) we used.

After the robot faced the ball, the next sequence of action is to walk forward towards the ball.
Sometimes the robot turns in some direction rather than going straight forward (again due to
the robot’s gait). To elevate the problem, we made the code to repeat from step one to this
step until it finally kicked the ball. That is, Search and track the ball using camera, once
found turn the body in the balls direction, then go forward towards the ball.

Because we can’t access one leg independently (of the robot’s), the way the robot kicks the
ball is by just walking directly in the direction of the ball. So the luck leg that reached the ball
while walking would kick the ball. Not that accurate but works fine.

If the ball is lost from the camera or wasn’t there in the first place in the line of sight of the
camera, I wrote a sequence that search for the ball 360o around and about 90o in the forward
direction to look for the ball. Time taking algorithm but it will find the ball wherever it is, if it
is not obscured by another object that the camera can’t identify it.

Combining all those algorithms with my friend with the help of the middle ware ROS, we
managed to demonstrate a Robosapien that plays searches for a ball, track it, and kick it.

15
After some period of time, an idea came up that we should port the code to android
smartphones. The need arises due to the fact that the computer based system required so
many hardware’s including a dedicated pc and wireless camera. But if android smartphone is
used, the phone will be placed on the robot, eliminating the need for camera, microcontroller
(Arduino), IMUs, Bluetooth and others. All the needed hardware including computing power
is in the phone.

The only challenge that remained was only phones with the capacity of IR emitting will be
capable of ordering the robot around. Phones with no such capability needed additional
hardware.

To solve the problem, we found some research on audio based IR emitters that used stereo
audio files and two IR emitter diodes that can replace IR transmitters. We build the hardware,
decoded the IR signals and recorded audio files (wav format). When you play the
corresponding sound, the two IR LEDs connected to the audio jack will convert the audio signal
to the appropriate IR command, thus the robot will be controlled. This idea seems quite
wonderful but the android phone which is capable of generating IR is very expensive. So we
should think another idea. Finally we have got the best idea; the idea is that removing the head
of Robosapien and taking out two wires from it (+ signal and ground) and interface it with
NANOPI or Raspberry pi we can accomplish it perfectly.

We have also done another small projects. The first is android based toy car controlling
mechanism. We designed a simple RC car with Bluetooth many LEDs to simulate the state of
parking, stopping, front lighting system of real cars, resister based light sensor (photo
resister) ultrasonic distance sensor. To save time we have used android app that used before
for the robot. And we used Arduino mega to this project and wrote code for it. The aim of the
robot was to show high-school students simple hacking from locally available marked stuffs.

Another project that we done is AI based door opening system. Using the OpenCV library, we
have written a code that identifies and tracks human faces. Once the face is in the line of sight
of the camera. Firstly we used “haarcascade_Default_Frontal_face.xml” to detect the human
face. Haarcascade_Default_Frontal_face.xml is a pre trained human face detector that
identifies and detect human face. Then we have trained our face; the training takes more than
16 hrs. On core i7 desktop computer so that we have got simple solution to train but the problem
is that it is not as perfect as that of time taker. After training our face to the classifier the next
task will be fetching the trained .XML file and use it to the recognizer code. After all tasks are

16
completed we were able to detect and recognize our face. This project uses NanoPi A64 as
controller, camera to detect faces and servo motor to control the door. If the given person is
one of the trained person list the system will open door unless it will print “UNKNOWN” in
the screen.

2.5. Challenges we Faced and measures taken to remedy

Working in iCog-Labs is not an easy and trivial experience. As stated in some pages of this
report, it demands to know and understand new theoretical and practical skills.

Basically the only challenge we faced with lack of adequate knowledge and skills to work on
the projects that we assigned to. Mostly this was due to the fact that, the projects need intensive
reading, researching, and the ability to learn fast.

To remedy this problem, we have taken some measurements with the help of the company. We
have attended many online courses relating to the project and AI, courses were offered by the
company staffs during Saturdays, and also we have worked closely with other interns in
developing our skill gaps. Also Staffs of the company were very helpful in any solving many
difficulties that we have encounter.

All those are explained in detail in the next chapter that discusses about what benefits that we
earned from our internship experience.

17
Chapter Three

3. Benefits we gained during our internship period


In our 4-month stay in iCog-Labs we were able to gain heaps of benefits in overall life
skills. The place was the right place to improve one’s life. We will state the benefits in relation
to specific areas as follows. Benefits in relation to:

3.1. Improving practical skills


As we stated on the section describing what we were working on and able to
gain hands on experience with electronic interfacing, many latest, devices, and
microcontrollers. We were able to work directly on robots, testing whatever we do in
theory on real hardware.
In general speaking, during our stay we got the chance to work on:

3.1.1. Real robot – more than ten Robosapien (low cost humanoid robots) were
available in the company so that we got the change to experiment with their
hardware and software.
3.1.2. Real electronic sensors - like IMUs, Camera, Range sensors (sonar sensors, IR
sensors etc.….)
3.1.3. Arduino based programming - We used Arduino in most of our projects and
test experiments. We were just able to do more than simulating what a
microcontroller would do in some software like proteus, but do test
many experiments on real Arduino. We got the exposure to Arduino Pro-
Mini, Arduino-Uno, Arduino-Mega, including many sensor shields that work
in compatible with Arduino.
3.1.4. NanoPi A64 based programming - NanoPi A64 is the child of modern age latest
technology. It is a quad-core computer just only a bit bigger that Arduino-Uno,
but smaller than Arduino-mega. You can install Linux based operating system
designed for it named “Ubuntu mate”. The latest windows OS, Windows 10,
can also be installed on it.
So, basically NanoPi A64 is a computer that has not its own keyboard, mouse,
screen and other peripherals. But it has 4-usb ports so you can connect mouse,
keyboard, Bluetooth module, Wi-Fi module, printer, HDD, and anything that
supports the USB interface. In addition, it has HDMI port for Monitors,
dedicated camera port for High definition camera, audio output port supporting
3.5mm jack.
In our stay in iCog-Labs, we used this computer to port our code written for
Robosapien robot and tested it. It worked fine. We gained exposure to the latest
technological achievement that was only 3 to 6 months old.

3.1.5. Microsoft-Kinect-RGB-d camera - Microsoft Kinect is a color stereo camera


that has a depth sensor which is IR based. These kind of camera are called rgb-
d standing for (red, green, blue, and depth information it can collect). The

18
additional depth information is used for 3D mapping and reconstruction which
is very important in visual SLAM (simultaneous localization and mapping).
Initially, the camera was intended for the gaming industry by Microsoft.
Microsoft has released the Kinect-SDK (Software Development Kit) that
contains libraries and APIs to use the Kinect for gamming and other purposes.
It also contains demo examples like speech based board games, gesture
controlled games, gesture based robot controlling, speech based robot
controller, skeleton tracking, sign-language software and so many others.
Even if our assigned tasks didn’t require us to use the Kinect, we were able to
spend some time to use the device, watch as our friends demonstrated some
demos, and witness as staffs did marvelous things using it.

3.1.6. Turtlebot - Turtle bot is a popular differential drive robot which contain a third
Omni-directional wheel for balance. The turtle bot was designed in such a way
that a dedicated pc that can drive the robot is put on the robot while another pc
in a station will communicate with this pc to command the robot.
The two computers (one onboard on the bot and the other on the station)
will communicate usually using SSH (Secure Shell Protocol). There are a
number of open source codes and libraries based on ROS for the poplar
Turtlebot.
Usually the Turtlebot is used with Microsoft Kinect to provide it with
the important Sense - Vision. Some of the things we witnessed on the bot are
line follower, object/human follower, and Visual SLAM.

One other important project someone else worked on Turtlebot was


Tele-presence (Virtual reality). The person used Turtlebot, a wireless camera
with pan/tilt plus roll mechanism and Oculus rift (explained in the next part (g)).

The code written for it uses a keyboard controller to drive the Turtlebot,
it uses live streams to navigate through distant places using the Turtlebot and
the camera. The live feed is projected to the Oculus rift that gives a sense of 3D
view and virtual reality. That means you can see what the robot is seeing just
like you are in that place. In addition, to your surprise you control the
pan/tilt/roll mechanism by rotating your head (well the oculus is worn on your
head like an eye glass). So, for example when you turn left, you are able to
watch what is in the left, just like in reality. This had a very promising
application in virtual tourism and so many others.

3.1.7. Oculus Rift - – this is a 3D technology glass that simulates 3D views of the real
eye. iCog-Labs has this developer version called Rift. We have seen
interesting projects worked on this like explained in the above part (section f
above) and many others. Even if we didn’t program anything on it, we use it
and watched others as they developed using it.

19
3.2. Upgrading Theoretical skills
As it can be guessed after reading all the projects we have been working on and
others have been too, knowledge gained from our university for the past 4 year would
provide us with not that much of a skill to work there since university courses are more
of theoretical, mathematical intensive and difficult to implement, give no direction
where to implement them, and general and not specific to any task. We are not
complaining here about the system here, but just explaining the gap we had when
working there.

Moreover, most of the things the company works on are new and unexpected
not only for our country but also for Africa as a whole. Who would expect and believe
African Nations known for poverty, war, dependency, and backwardness to work on
anything like AI (Artificial intelligence). So in general speaking, not only interns, but
staffs too are not that expected to know detailed and specific knowledge to the task they
are assigned. Peoples working in iCog are generally expected to learn stuffs as they are
working on.

For that matter, the first thing every intern in iCog is demanded to take online
courses selected and suggested by one of the prominent AI scientist and co-founder Dr.
Ben Goertzel.

Thus, all of the interns in iCog-Labs took about 9 different online courses that
are directed towards improving out theoretical skills. The courses are in areas of
machine learning, data analysis, NLP (natural language processing), bioinformatics,
basing programming, working with big data, and automation. We will discuss the
courses we took and the benefits we gained briefly next. All the courses we took were
from well-known and renowned sites like EDX, Coursera, and Udacity. All the courses
are offered by great universities and great lecturers.

3.2.1. CS50 - this is a very interesting and life changing course offered by Harvard
University, by a great lecture David J. Millan. The course was offered through
the edx site.
The course was about basic programming using C, developing concepts
and finally it discusses important points about web programming using HTML,
PHP, and java script.
The course has a weekly programming problem sets that are very nice and help
to work hard and explore by yourself. It lasts for about 10 weeks.

We were able to develop our programming skills, general knowledge


about make files, building and compiling C codes, working in Linux
environment, about digital photography, about web-servers, web based
programming, internet security, and about the general overview of the
programming world.

20
3.2.2. Machine Learning - this course is offered by Stanford University with a great
and enthusiastic lecturer. This course was offered through the Coursera site.
The course involved 11 weeks of lecture video and weekly programming
assignments. It uses matlab (or octave) environment for programming.

The course was generally about learning – supervised learning and


unsupervised learning. Regression (linear regression and logistic regression),
neural network, principal component analysis (PCA), support vector machines
(SVN), k-means clustering, classification, and optimization.

We developed the skill of machine learning and how to apply it in many


different problem solving skills. The course demonstrated practical and real
world examples including email spam checker, self-teaching self-driving cars,
drones that learn how to drive themselves and etc….

3.2.3. An Introduction to Interactive Programming in python (part 1and 2) –


This two-part course is designed to help students with very little or no
computing background learn the basics of building simple interactive
applications. Our language of choice, Python, is an easy-to learn, high-level
computer language that is used in many of the computational courses offered
on Coursera. To make learning Python easy, we have developed a new
browser-based programming environment that makes developing interactive
applications in Python simple. These applications will involve windows whose
contents are graphical and respond to buttons, the keyboard and the mouse. In
part 1 of this course, we knew the basic elements of programming (such as
expressions, conditionals, and functions) and then we used these elements to
create simple interactive applications.
In part two of this course we knew more elements of programming such as
lists, dictionaries, and loops. Then we used this part to implement most of our
projects there in iCog-Labs.
3.2.4. Version control System - GitHub: Version control is a very important concept
in programming. When you develop a software you might want to save your
code as soon as you do something useful. But if you discover that you needed
your earlier version of your code (that happens very often like if your recent
code breaks or something happens), you are doomed if you don’t have another
backup. That is when version control saves you. There are tools developed by
programmers that easy your life for such events. They save all your work
progress without you worrying explicitly. When you need your older softer,
you ask for it, and you get it.
There are so many software developed for this purpose, but GitHub is
one of the most and well known especially in the Linux world who advocate
open source software.

21
GitHub and git are open source version control software, one works on
with online (GitHub) for sharing, the other works on your pc (git). These
software allows you to do your job in organized way.

Through a three-week course offered through Udacity site, we were able


to learn about git and GitHub version control system.

3.2.5. ROS - Robot Operating System is a middle ware robotics platform that is
widely used by many organizations including renowned universities. The
company offered us a course on ROS on Saturdays by a senior staff Dagim
who was an intern student in iCog and continued working in iCog-Labs at the
moment.
ROS is not a programming language by itself but a middle ware
supporting C++ and python programming. It has so many important features
that we have used it in our main project.

3.2.6. OpenCV - as explained in some pages of this report, it is an Open Source


Computer Vision library that implements a wide verities of algorithms relation
to image and video processing. We reading the online tutorial and
documentation provided by a dedicated site the software.
3.2.7. Android programming - even though we couldn’t say we have learned all of
android, we were able to gain a good knowledge about the working
environment with android, how the system works, how to write basic
programs in it, and how to use the camera system in android.
3.2.8. Others - important yet brief knowledge we gained include blender – a powerful
animation and 3D rendering software in which we got some exposure to it.
In addition to all the above courses we took by the recommendation of the
company, we have also developed the habit of taking online course out of our
own will and accord.

3.3. Improving interpersonal communication skills


Working in iCog-Labs is generally will place you in a challenging environment
and as explained in the work flow of the company, you are in a continuous discussion
from your team mates and others from other teams. It also gives you the exposure to
great scientists and researchers all over the world who are specially working in the field
of AI (Artificial intelligence).

We have developing the habit of email communication, asking for others help
whenever face with difficulties, learn from others, appreciating others work, and
discover how people solve problems in different and intelligent ways.

22
3.4. Improving team playing skills
As we have discussed earlier pages of this report, all the projects in iCog-Labs
are worked in teams that contain from the least number of two people to many groups
of people here in the lab and all over the world.
Some projects involve people across, the world in different places. For example, the
OpenCog R&D program is an open source and more than 20 programmers around the
world including anyone who want to join and contribute can work.

Even in the main and other small projects we involved, all tasks were done in
teams. That’s why we forced to use words like (“we did that”, “we accomplished this”,
“we solved that”, “we were faced with challenges”) and etc…. we never used the word
“I” in this report because all that we have done is together.

Therefore, working in iCog-Labs not only improve your skills to work on teams
but learn to appreciate its benefits.
Had it not been for those teams in Hong Kong, we would be able to succeed to work on
great things in a completely strange robot, had it not been for those team members who
worked on the robot with us, we wouldn’t have accomplished anything, had it not been
for the great friends we met (interns just like me), we wouldn’t have managed to
complete our internship in iCog-Labs, take all those online courses.

Generally, in our stay in iCog-Labs, we were able to entertain the benefit of


working in team with great minds: we understood that others can solve problems that
seemed difficult in a clever way, persist in doing something, learn things from scratch
by yourself, and so many other things not explained here.

3.5. Improving leadership skills


iCog-Labs generally encourages every member to take responsivity to lead a
project you are assigned in. Take initiatives to find out problems, find solutions, initiate
discussion, change the course of action, and even you can convince others including
clients to change projects plans whenever you have something solid to say so.

These and other things including the working environment shapes you towards
developing and improving your leadership skills.

3.6. Improving work ethics and work culture


In iCog-Labs, work ethics and work culture are two important qualities you need
to possess and develop every day. Daily scrum-minutes will force you to work on
something tangible you can present, be punctual for work, deliver projects in a timely
basis, develop team behavior, develop the culture of learning through working, and
learning always.

The friendly staff members are exemplary in different aspects, they are willing
to share what they know, ready to help you whenever you are faced with difficulties,

23
suggest you with reading materials, and thus creating a peaceful and welcoming
working environment.

These things added with continuous evaluations will shape you towards
developing a very important work ethics and culture.

3.7. Improving entrepreneurship skills


In iCog-Labs, innovative ideas are here and there, always present in someone’s
mind and are shared among workers in no-time. Interesting technological innovations
are chat through emails, slack, and other messaging tools.
Staffs are from different background including biology, computer engineering,
business, accounting, computer science, control engineering, electronics, journalism,
architects, art people and many others. You can guess what entrepreneur ideas can come
out from such collection.
In addition, some members love DIY (do it yourself) projects that involve
simple hacking. When you saw what those people have in mind when they worked on
those projects, it really improves your insight towards business and innovations.

24
Chapter Four

4. Conclusion and Recommendation


4.1 Conclusion
Based on our experience while we were internship, we were able to understand the fact
that internship is the best time a student will get exposed to the real world. The university is
generally an ideal world teaching you all the mathematics and science in a general and broad
way.

Watching those things work in reality to solve real life problems would impress anyone.
Through internship a student will leave the ideal world of university and explore what his/her
environment looks like. What people do for living, what the current needs of the surrounding
is, how knowledge is transformed into business, and more importantly how the things you learn
will be useful in real applications.

Internship programs expose the student to work in teams, explore working


environments of companies in the surrounding, learn work cultures, work ethics, learn local
markets like where to find materials you will need for your work (this is one unique change the
student would get as an intern because no university in Ethiopia actually gives any information
about where to purchase items from local market or aboard).

In addition, a student will get the chance for the first time to starting in terms of
producing and delivering something, working hard and sweating not for some Grade he/she is
going to receive but for either financial benefit, or for the real need to learn something, or for
satisfaction. We believe this creates a unique change of environment for those who needed
such environments

The internship program also provides another unique chance for students to test how
they would perform in professional work once they graduate. It gives the student the chance to
learn and develop necessary skills other than the academical that would insure the success in
the working environment.

Most students would also be able to observe what unmet and unaddressed problems are
in, their surrounding allowing them to find ways to apply what they have learned to solve those
problems.

Most importantly, most students would also decide or conceive their semester and
graduating project during the internship period. Through this unique time of exploring the
world, a student will find out his/her capacity, current and demanding problems waiting for
solutions, other attempts to address the issue, professional suggestions from qualified staffs,
market places for hardware equipment’s, very important networks and connections, and other
countless important aspects that would help the student to discover their talent and applicable
projects.

25
Furthermore, in this time, most students would find their hiring companies too. Some
companies like iCog-Labs headed towards shaping interns so that they would get skilled and
ethical man power for their need. Additionally, interns would also make so many important
networks and connections that would prove fruitful for their future.

So our final conclusion will be that internship is one of the most quality time any student
can have during his/her academic stay. So both students and the university should give the
outmost respect and attention for invaluable program.

Specifically, we think iCog-Labs is one of the best places any intern could find to
develop overall life skills, and also the best company to work with.

4.2. Recommendation
Saying all those things stated in our report, generally how important the internship time
is, how interns are benefited from the program, and specifically how great iCog-Labs and its
working environment is, we have the following recommendations for the university, for
students, and for the company.

For the university – considering the fact that the internship program is valuable and
very important, we think the university, as one of the new but fastest growing university in
Ethiopia, should give enough attention for the program. By this we mean that the attention the
university gave for the program is quite below the attention it deserves. Specifically, the
universities contact with industry seems lacking, the university is very slow (compared to other
universities) when giving internship forms for students, again compared to other universities,
pocket money for students are not given in the appropriate time. We believe that the university
can do much better than what it is currently doing. And the university should buy some robotics
materials in order to apply what we have learned, and share it with other students that have not
get the chance

In light of our recommendation for companies, we would like other companies in


Ethiopia to take the example of iCog-Labs.

In iCog-Labs interns are treated like every other staff. They are assigned in projects that
are of great values, trust is given on them to deliver tasks, they are considered important and
valuable adding a value to the company, respected by the staffs, and considered to be the futures
of the company.

The company invests heavy on interns, following up, suggesting courses, providing
reading materials, proving on job trainings, free for experimenting with company property, and
provide trainings on Saturdays with great staff members.

In addition, interns are free to choose on what project to work on or come up with their
own project ideas. The company provides required material for the projects.

Also, interns are evaluated just like staffs, telling them their weakness, strength,
opportunities, and others. Staffs are friendly and treat interns like their friends.

26
So we believe and recommend iCog-Labs as one of the best company in Ethiopia that
is suitable for internship and also for work. We believe the university should create a strong
relationship with the company which is one of a few companies that are willing for such
relationship with educational institutions! .

We recommend for the students to join iCog-Labs in order to get much knowledge and
to learn more about robots and how to program it.

27
5. References

 http://www.icog-labs.comgeneral information about the company


 Wikipedia
 www.udacity.com
 www.stackoverflow.com
 www.coursera.com
 www.udemy.com
 www.opencog.org
 www.angular.io
 projects from GitHub
 www.ros.org
 www.opencv.org

28
6. Appendices

29

You might also like