• Twitter
  • Facebook
  • Google+
  • Instagram
  • Youtube

Skills & Things about me

photographer
93%
Programmer
Punctual
52%
Android Software Developer
Robotic Developer
64%
Blogger

Portfolio

My latest projects


Thursday, February 18, 2016

Ngoprek day : Lampu Mendeteksi Gerak


Friday, January 29, 2016

Part 1 : Artificial Intelligence Bot

Hello guys,

welcome back to my blog! now, I am studing about Artificial intelligence. Since the world is getting more and more complicated. I need narrow down somthing what i want to invest and something what have to be taken AI. Simply, i undirectly make my other self to work at same time. There are a lot of refrences about chatbot. and i need you forget all of them. lets get straight and think about "How could you speak and understand the others with their language?" of course studing!. "How did you study?" clearly, you were learn form your parents, right? Then, if you get the simple sentence like this

I play football
I visit the park

of course they have the pattern. Subject+Verb+Adj+Object. Take a look the other example :

Who are you?
How were you made of?

Those sentence have too. Who/How+Be+Subject+Verb.
So, first thing i need to do is separate a sentence into many words. lets pull them off!

if i have the sentence :
"I visit the park".

The output would be :
I
visit
the
park

The question is "Is there any function of C code to separate it into words?". oh sorry i forget to tell you. I work on C code. When i look over ISO/IEC 9899:2011 (Reference of C programmer)i put my eyes on strtok function.

Following is the declaration for strtok() function.
char *strtok(char *str, const char *delim)

As results :
The sentence is "dog jump the roof" :


The sentence is "i visit the park"
Note : Tidak ada dalam kamus = There is no word in its dictonary

As you look,it only recognizes some words (dog, jump, the, and roof). how can it possible? yes, i teach it the word what i wanna to teach. so basically, it has already had a dictionary that it can recognize my sentence into words. here is its dictonary :
The bad news is i need write down 1 million words into notepad. How suck is that?
So, lets get simple!, there are a lot of dictionary apps. The thing is "how hack the data of those app?".
ok, i think it is over now. that's what i have wrote down. if i make a progress. i'll post as soon as possible. keep in touch!

Sunday, September 20, 2015

Behind The Robot Arm : Interface of 5DOF Arm


Thursday, September 17, 2015

Behind Of Robot Arm : Solidwork + Matlab = Legit!



Thursday, August 6, 2015

Behind of Robot Arm : Cubic Trajectory Planning

Holiday had gone out of existence. yeah. it was really nice how holiday went. it made me realize that was good chance to know that time is so worth. Of course, time makes sense in small pieces. But, when we look at huge stretches of time. it's almost impossible to put it into the perspective. The only time that only matter is now. So,  that cute girl you like, ask her out.

This time i explain how cubic polynomial trajectory works. what is trajectory planning? how does it work?
Trajectory planning is one of control method to make your arms go what you want and move smoothly. It has many methods. One of them is cubic polynomial trajectory. There are four boundary conditions, and therefore a polynomial of degree 3 must be considered. In mathematics, a Cubic function is shown below :
Where the four parameter a0, a1, a2, a3 must be defined so that the boundary conditions are satisfied. From the boundary conditions, it follows that :
where :
So, the question is "How do i find out those parameters?"
They depend on you. you want to solve it by forward or inverse. if you want solve them by forward. you need define parameters first. Otherwise, if you want solve them by inverse you need define start angle, start speed, final angles and final speed. But, if you pick "forward", you need change parameters every you make move. Because, parameters you define actually for specific angle & speed.

To understand how inverse works, first we must look at forward. We know the current angles of each joint based on our live measurements, and we know the shape and connectivity of the arm. Each segment of the arm can be seen as a simple rod of length ai connected to the previous joint and rotated by some angle θi:


According the image, we have 5 degree of freedom. here is the deal. we put eyes on one of them. okay, we concern with angle θ2. Based on our live measurements, we can get Initial Angle.. Then, we would like 1 second to reach the target.

lets we start when t = 0 :
According to initial angle, we can get :

According to initial speed, we can get :

when t = tf  = 1 :
According to Final Angle, we can get :

from equation 1 & 2, we can substitute to equation 3 :

According to Final Speed, we can get :


From equation 2, we can substitute to equation 5 :

And finally,  from equation 4 and 6, we'll get 2 additional parameters (a2 and a3).  that's quite easy, right? we have done forward method of cubic polynomial trajectory. But, that isn't simple enough to be implemented to robot arm. As robot arms move different start angles and final angles every time, we need robot arms to be adaptable. They're actually dumb. we need change the methode to be inverse way. it means robot must be able to translate human perspective (cartesian space) into robot needed (joint space).


form those equtaions, i would like represent it to be matrix, so here it is :

Hence,

As parameters need to be found, we inverse T matrix from left side to right side.
I recorded 4 moves to GUI with different time, angle and speed. so, Here is the result :

Here is the GUI :

Sorry, i forget to put A matrix on GUI, So, we don't know if A matrix is changeable. But, i'm pretty sure, it changes if i make every move. As you see, speed servos work as books told.

Reference :
  • Biagiotti, Luigi and Claudio Melchiorri.  2008. Trajectory Planning for Automatic Machines and Robots. Germany : Springer.
  • http://www.diag.uniroma1.it/~deluca/rob1_en/13_TrajectoryPlanningJoints.pdf
  • http://www-lar.deis.unibo.it/people/cmelchiorri/Files_Robotica/FIR_07_Traj_1.pdf



Monday, July 20, 2015

Behind of Robot Arms : Project Intro


Welcome Guys,



There is a lot thing i had done with a thing which is called a "project". But, i never share them yet. some of them are Smart Home, Line FollowerDigital Periodental Probe, hacking the system, Battery Management System etc. Now, i'm doing research with arm robot. As it turns out, spending 100% of my mental energy on Real Research drives me insane and lowers the quality of my work on the outside. Most of what I do might be considered data analysis. While i enjoy finding and learning new algorithms and bits of math, trying them out on research data can often lead to overly-complicated and poorly-understood results. This is the biggest project i ever done at my 20++ age with some advance data analysis and longest time it took to learn than the others.

Project Description
Last year, I bought robot arm with 5 degree of freedom for kinematic, jacobian & trajectory planning. as months pass, i had many ideas to add something to it. one of them is i added potensiometers as sensor how far my robot moves. Of course, they are absolutly cheaper than other sensor i ever know and easier to get. This project, i mostly use Matlab to write down the code. Matlab is able to connect to arduino with some packages. That makes me easier to analyze and plot the graph and data.

Robot Arm 5 Degree Of Freedom

Table Of Contents
Season 1 : Introduction
                  Episode 1 : Intro
                       This episode, i talked about spesification of my robot arm and sensor configuration.
                  Episode 2 : Analog Servo VS Digital Servo
                      This episode, i talked about what is different between Analog & Digital Servos.

Season 2 : Kinematic
                  Episode 1 : Forward Kinematic
                      This episode, i talked about how solve forward kinematic of 5 degree of 
                      freedom manipulator configuration. if i have time, i'll share inverse kinematic.

Season 3 : Trajectory Planning (Coming Soon on August!)
                  Episode 1 : Cubic Polynomial Trajectory
                       This methode is used to be smooth move and path planning.
                  Episode 2 : Quintic Polynomial Trajectory

Season 4 : Jacobian

Season 5 : Matlab GUI