Sapto Condro loves Science and Technology

Catatan seorang pelajar yang tertidur…

Gokiraji, Roboroach

“Gokiraji” is a combination of “Gokiburi” (cockroaches) and “Rajikon” (remote-controlled). This is Gokiraji, the Japanese electronic cockroach which can be charged with USB.

The price is about 21 US dollars.

In robotic, there are two research fields which related to animal and robotics. First, biomorphic robotic is a sub-discipline of robotic, focused on emulating the mechanics, sensor systems, and computing system to mimic the behaviour of animals (wiki). The other is animatronic, which is the use of mechatronic to animate rather than robotic (wiki: en,de). Jurassic Park, the movies, are example of the usage of animatronics.

Nürnberg, 13 Mei 2012

iscab.saptocondro

May 13, 2012 Posted by | Uncategorized | Leave a Comment

cpp & cmm

Beberapa minggu lalu, kudapat pekerjaan mendebug (menghilangkan kutu?) software eh perangkat lunak pada ECU mesin Chrysler Tiger Shark. Mesin ini akan digunakan di tahun 2013 pada mobil Dodge Dart. Suatu alat bernama Trace32 dari perusahaan Lauterbach digunakan untuk mendebug.

Alat ini terdiri dari perangkat keras dan lunak. Perangkat lunaknya memiliki tampilan GUI yang dibuat dengan Qt. Perintah-perintah teks yang dipakai menggunakan bahasa Python. Cara mengonfigurasi Trace32 mengandung file cmm. Apa itu file cmm?

CMM adalah C minus minus, lawan kata dari C plus plus (C++). Pada C++, file cpp digunakan untuk source code. Pada C, tentu saja file c. Bahasa C/C++ adalah bahasa pemrograman terstruktur, sedangkan CMM adalah bahasa scripting. Dengan CMM, kita membuat batch untuk menjalankan beberapa perintah pada Trace32.

Bahasa C ada sejak tahun 1971, menggantikan bahasa B yang lahir tahun 1969. Berbahasa C sangat baik buat orang yang senang dengan suatu bahasa pemrograman yang dekat dengan bahasa level rendah seperti assembly yang kata orang jaman dahulu disebut sebagai bahasa mesin. Orang yang ingin mengerti bagaimana hubungan prosesor dan memori bekerja, bisa mengutak-atik konsep pointer dan reference dalam bahasa C. Sebetulnya, aku juga masih tak mengerti tentang ini, jadinya suka kena error yang bukan compiling error. Biasanya galat ini disebabkan aku kelupaan melakukan release atau delete pointer.

Bahasa C mulai ditambah dengan konsep class dalam pemrograman berorientasi objek (OOP) pada tahun 1983. C with classes ini kemudian dikenal sebagai C++. Begitulah nostalgia C/C++. Pointer digabung dengan class adalah cara yang dipakai programmer jaman sekarang untuk membuat dan memakai handle pada Qt, COM, ActiveX, dan berbagai perangkat lainnya.

Kalau ingin belajar konsep OOP (object-oriented programming) yang sesungguhnya, Java adalah bahasa yang tepat. Bahasa Java ini sejak 1991. C++ adalah bahasa tanggung. Berbahasa C++ seperti berdiri di atas dua kaki. Satu kaki C dengan kerumitan pointer dan satu kaki OOP tanggung.

Pada tahun 1992, perusahaan Nombas berusaha membuat suatu bahasa scripting untuk embedded system. Bahasa ini harus cukup tangguh menggantikan makro dan cepat dipelajari seperti C++. Hasilnya adalah C minus-minus (cmm). Bahasa ini masuk dalam suatu “package” shareware CEnvi. Menurut sejarah, ide dari cmm ini melatarbelakangi pembentukan Java Script di tahun 1995.

Nah, kembali ke embedded system. Bulan ini dan bulan depan, aku perlu mempelajari cmm. Bahasa scripting ini penting karena ECU buatan Chrysler dan Continental ini belum berhasil didebug. Proyek-proyek lain dari Fiat yang menggunakan ECU dari Magneti Marelli, telah bisa didebug. Semoga bahasa ini bisa kupelajari dengan cepat demi masa depan cerah di bidang ini.

Gaptek yang tak kunjung padam!
Habis gaptek terbitlah terang ilmu!

Nürnberg, 21 April 2012

iscab.saptocondro

 

April 21, 2012 Posted by | Uncategorized | Leave a Comment

Information transfer rate (ITR) and Poco-poco dance

Information transfer rate (ITR)
ITR = B \cdot v
with B as bits per transfer and v as speed

Speed/rate (v)
v = \frac{n + e}{t}
with n as good information transfer, e as error and t is transfer time

Bits per transfer (B)
B = \log_2{N }+ P \cdot \log_2{P} + ( 1 - P ) \cdot \log_2{(\frac{1 - P}{N - 1})}
with N as the number which shows how many kinds of information you can transfer,
P as the accuracy, which means the number of good information (n) divided by the total information

Accuracy (P)
P = \frac{n}{n + e}

***

First Example:

I am learning how to dance. The basic steps are just go to left and right. The dance instructor will tell “left” and “right”.
One example is “left, left, right, left, right, right, left, right” That are first eight step of line dance.

In this case, the information type is just LEFT and RIGHT.
N = 2

In 15 minutes, the instructor has just taught me a dance routine. There was 100 steps. Fiuh, I am sweating. Because I am a beginner, I made 60 mistakes and 40 good dance.
n = 40
e = 60
t = 15 minutes

The Accuracy (P)
P = \frac{40}{40+60} = 0.4 = 40 percent

The learning speed (v)
v = \frac{100}{15} = 6.67

The bits per learning (B)
B = log_2{(2)} + 0.4 \cdot log_2{(0.4)} + (1 - 0.4) \cdot log_2{(\frac{1 - 0.4}{2 -1})}
B = 1 + 0.4 \cdot (-1.32) + 0.6 \cdot (-0.74)
B = 0.03 bits per learning

The information transfer rate
ITR = 0.03 \cdot 6.67 = 0.2
So I am learning how to dance with a rate of 0.2 bits per minute.

***

Second Example:

Now, I learn how to dance Poco-poco. This line dance comes from North Sulawesi in Indonesia.
The basic steps are

  • move left
  • move right
  • move forward
  • move backward
  • lean forward
  • lean backward
  • twist left
  • twist right

So the number of information types are N = 8

More advanced steps are

  • cross forward right
  • cross forward left
  • cross backward right
  • cross backward left
  • and so on

So N can be increasing depending on how well you learn the dance.

You can learn the basic step of Poco-poco from here.

***

Third Example:

Well, in a brain-computer interface experiment, a human subject has to do a task containing commands: LEFT, RIGHT, UP, DOWN. So N = 4. The time t, how many successful tasks n and how many mistakes e are measured. In the end, you can calculate the information transfer rate (ITR). More of this example can be read in my master thesis (here: wordpress, blogspot, scribd).

***

Well, I am still looking for books about this bits per transfer equation. It has something to do with information entropy.

Bits per transfer (B)
B = \log_2{N }+ P \cdot \log_2{P} + ( 1 - P ) \cdot \log_2{(\frac{1 - P}{N - 1})}

From wikipedia, the binary entropy function (H_b):
H_b(p) = - p \cdot \log_2{p} - (1 - p) \cdot \log_2{(1 - p)}
with p as a probability in a Bernoulli process, containing only 2 states, for example success-failure, yes-no, true-false, on-off, two-side of tossing coin.

From wikipedia, the Shannon entropy function (H):
H(X) = - \sum_{i = 1}^{n}{p(x_i) \cdot \log_b{p(x_i)}}
with p as a probability mass function of a discrete random variable X with a possible values \{ x_1, x_2, \dotsc, x_n \},
and b as the base or the possible states of x_i (in a binary or Bernoulli process b = 2)
Entropy is a measure of uncertainty associated to random variable. Shannon entropy quantifies expected value of information contained in a message. In binary process, it is quantified in bits.

Other reference:

  1. J.R. Wolpaw, N. Birbaumer, D.J. McFarland, G. Pfurtscheller, and T.M Vaughan, “Brain-computer interfaces for communication and control,” Clinical Neurophysiology, vol. 113, pp. 767-791, 2002.
  2. M. Cheng, X. Gao, S. Gao, and D. Xu, “Design and Implementation of a Brain-Computer Interface with High Transfer Rate,” IEEE Transactions on Biomedical Engineering, vol. 49, pp. 1181-1186, October 2002.
  3. Atmawan-Bisawarna,I.S.C., “Improvement of Response Times in SSVEP-based Brain-Computer Interface,” Master thesis, Information and Automation Engineering, University of Bremen, 2010.

Nürnberg, 17 Maret 2012

iscab.saptocondro

March 17, 2012 Posted by | Uncategorized | , , | Leave a Comment

Ethical Questions on Brain Computer Interface, by Paul Root Wolpe

Paul Root Wolpe had a talk “It’s time to questions bio-engineering” on TED.

In the talk, there are applications of Brain Computer Interface (BCI):

  • Monkey controls robotic arm with brain computer interface. The monkey sits in a room watching monitor and are put on EEG electrodes. In other room, there are robotic arm and camera. The monkey can see from the monitor what happens to robotic arm in the other room through camera. First, the monkey moves his own arm and robotic arm will make the same movement. After some repetitions, the monkey stops moving his arm and the robotic arm moves with the monkey’s will.
  • Flies and other insects are put on a chip to their “brain”. Then engineers can control the insects to fly with a remote control. Infact, engineers and scientist have made breakthrough with mammals: rats. Here animals are losing the autonomy of their bodies. There are ethical questions on consciousness and autonomy.
  • Eels’ brain is put in gel which is put on electrodes. This bio-electronic system is put in a mobile robot as the main controller. The robot has a sensor and wheels. The robot can move toward the light although there are no programming codes to do so. A robot which is directly controlled by brain. (My notes: other researchers in different countries have successfully use rat brain tissues, see here)

Enjoy the video:

http://www.ted.com/talks/paul_root_wolpe_it_s_time_to_question_bio_engineering.html

 

Nürnberg, 26 Februari 2012

iscab.saptocondro

 

 

February 26, 2012 Posted by | Uncategorized | Leave a Comment

Bandung Brain Computer Interface

This is a short video of Brain Computer Interface research in Bandung, Indonesia.

The research is conducted in the School of Electrical Engineering and Informatics (STEI) in Institut Teknologi Bandung (ITB).

 

iscab.saptocondro

February 18, 2012 Posted by | Uncategorized | Leave a Comment

Quadrotor Dance, Pennsylvanian style

Watch dancing nano quadrotors from GRASP Lab, University of Pennsylvania!
It is an example of swarm robotics. 

GRASP is General Robotics, Automation, Sensing and Perception. The researchs in this lab focus on robotics.

 

iscab.saptocondro

 

February 7, 2012 Posted by | Uncategorized | Leave a Comment

Standard 10-20 system EEG & me

My head

Image_00211

standard 10-20 system of electrode placement for EEG 

Eeg1020

January 1, 2012 Posted by | Uncategorized | Leave a Comment

Follow

Get every new post delivered to your Inbox.