ILP @ TCS, Pune – My thoughts

When I joined TCS, I was just sad. It was because none, I meaning absolutely none, of my college friends were gonna be there with me. New environment, new people always made me nervous. But now I have realized, if I had any of my college friends with me, I would never have made such awesome friends here. What a 3-month journey it has been! Learning new technologies, all the impromptu presentations, all the long hours of coding and testing, the weekends, the trip to Janjira, the absolutely absolutely fantabulous birthday bash, the *internal* awards ceremony that we had and finally the lazy dance we did on the valedictory function. Ohh boy, I am gonna miss all this. Although I will miss not being around every person of the P29 batch, there are some people who have carved a special place in my heart.

A big thank you goes to Jyoti, Jahnavi for being such great mentors and to Sananda for being so *cool*.

Now that the training is over I dont know if we will ever get to be together in the same ODC again, or chat over cubicles, or have hot chocolate on the 7th floor, or celebrate birthdays on the 1st floor of Zunka, or do birdwatching in other batches (i am pretty sure we’ll find a way to do this :P).

I am not sure what the future has in store for us. But I know, this is not the end. This is just the beginning of a brilliant future @TCS!

Love you all!

click tracking

Using ROS with Naoqi — A Simulation

The video linked below is an implementation of using ROS (Robot Operating System) to simulate a walking behavior for the Nao Humanoid Robot.

Watch it in HD. Vimeo link: https://vimeo.com/49363028 [The embedded video isnt very clear, even in fullscreen]

The following results were achieved on an iMac (OS X Mountain Lion 10.8) running Ubuntu 12.04 LTS (Precise) 32-bit on Virtualbox with ROS Fuerte.

Later, while having fun, I made Nao to go into a random “Oh No!” position by publish a message to joint_angles topic: Continue reading

Using OpenCV 2.4.2 with Visual Studio 2012 on Windows 7 (64-bit)

EDIT: I have not updated this article since Nov 21, 2012. There might have been a lot of changes since then. If anyone is interested in updating it, shoot me a mail and I’ll give you the editing rights to this article.


So before starting you’ll need to make sure you have these in your computer:

  1. Visual Studio 2012 (You can download the 90-day trial version from here)
  2. OpenCV 2.4.2 (You can download it from here)

Extract OpenCV in a folder named OpenCV-2.4.2 in C drive. [Note: You can change the path and folder name but then you wont be able to use the instructions as they are and you’ll have to make modifications]

There are five simple steps that we have to make sure that we follow to get OpenCV up and running smoothly: (Click on the images to enlarge them) Continue reading

What is OpenCV? OpenCV vs. MATLAB — An insight

What is OpenCV?

OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. It is developed by Willow Garage, which is also the organization behind the famous Robot Operating System (ROS). Now you’d say MATLAB also can do Image Processing, then why OpenCV? Stated below are some diferences between both. Once you go through them, you can decide for yourself.

Advantages of OpenCV over MATLAB (Collected from various blogs/forums. See references below)

  • Speed: Matlab is built on Java, and Java is built upon C. So when you run a Matlab program, your computer is busy trying to interpret all that Matlab code. Then it turns it into Java, and then finally executes the code. OpenCV, on the other hand,  is basically a library of functions written in C/C++.  You are closer to directly provide machine language code to the computer to get executed. So ultimately you get more image processing done for your computers processing cycles, and not more interpreting. As a result of this, programs written in OpenCV run much faster than similar programs written in Matlab. So, conclusion? OpenCV is damn fast when it comes to speed of execution. For example, we might write a small program to detect peoples smiles in a sequence of video frames. In Matlab, we would typically get 3-4 frames analysed per second. In OpenCV, we would get at least 30 frames per second, resulting in real-time detection.
  • Resources needed: Due to the high level nature of Matlab, it uses a lot of your systems resources. And I mean A LOT! Matlab code requires over a gig of RAM to run through video. In comparison, typical OpenCV programs only require ~70mb of RAM to run in real-time. The difference as you can easily see is HUGE!
  • Cost: List price for the base (no toolboxes) MATLAB (commercial, single user License) is around USD 2150.  OpenCV (BSD license) is free! Now, how do you beat that? Huh? huh? huh?
  • Portability: MATLAB and OpenCV run equally well on Windows, Linux and MacOS. However, when it comes to OpenCV, any device that can run C, can, in all probability, run OpenCV.

Continue reading

Being quoted in Electronics for you (EFY) September 2012 issue

I am a regular follower of the EFY Electronics Design Community on Facebook. Recently, I was quoted in EFY’s September 2012 issue for the opinion I gave on the use of EDA (Electronic Design Automation) tool in a post in the design community. The original reply can be found here. An excerpt from the article in the magazine reads like this:

Karan Thakkar, hobbyist and graduate from KIT's College of Engineering, says, "I have worked with KiCad and EAGLE. Both are easy to use. KiCad is free and open source and Eagle gives out a free evaluation version. I find Eagle more user friendly because of the large repository of libraries freely available. Although the evaluation version of EAGLE has some restriction on the size of the layout and the number of sheets, I'd definitely rate it good enough for a small electronics design firm."

The entire article can be read below (You can find me on Page 2, on the third paragraph from the end) : Continue reading

12 Burnout Prevention Tips from MIT

Life's a Game

I ran across these “MIT Burnout Prevention and Recovery Tips” the other day:

1) STOP DENYING. Listen to the wisdom of your body. Begin to freely admit the stresses and pressures which have manifested physically, mentally, or emotionally.
  • MIT VIEW: Work until the physical pain forces you into unconsciousness.

2) AVOID ISOLATION. Don’t do everything alone! Develop or renew intimacies with friends and loved ones. Closeness not only brings new insights, but also is anathema to agitation and depression.

  • MIT VIEW: Shut your office door and lock it from the inside so no one will distract you. They’re just trying to hurt your productivity.

3) CHANGE YOUR CIRCUMSTANCES. If your job, your relationship, a situation, or a person is dragging you under, try to alter your circumstance, or if necessary, leave.

  • MIT VIEW: If you feel something is dragging you down, suppress these thoughts. This is a weakness. Drink more…

View original post 566 more words

Arduino controlled POV Display

So, I’ve graduated. I am single. I have nothing else to do at home except eat, sleep, watch movies and check facebook. Then I come up across this awesome blog by Carlos Asmat which has a lot of interesting stuff. There I find a simple project based on using Persistence of Vision (POV) to create a display (2D) using an LED strip (1D). So I decide ‘Lets do it’ and what goes below is my first attempt at replicating that display. It is still very crude and requires polishing, but well its a start.

Here is a list of parts that went into the making of it:

  1. Arduino Uno (or any Arduino for that matter, as long as it has 11 or more digital I/O pins)
  2. CPU Fan (You can find it in any electronics store). The one I have is rated 12V/0.25 mA.
  3. 9V Batteries
  4. LED’s (whichever color suits).
  5. Connectors
  6. IR Transmitter (I used TSUS4400 from Vishay. You can find it on element 14 here.)
  7. IR Receiver  (I used TEFT4300 from Vishay. You can find it here)
  8. 220E resistors (for LED’s and IR Transmitter)
  9. 1K8 resistor for IR Receiver
  10. 7805 voltage regulator (for giving 5V continuously to IR transmitter. Not needed if you have a 5V or 3.3V battery)
  11. Bergsticks
  12. Some kind of glue (I used Fevistick)

Continue reading

A touching graduation speech

“I must say thank you to the faculty and staff of the Wee Kim Wee School of Communication and Information for inviting me to give your convocation address. It’s a wonderful honor and a privilege for me to speak here for ten minutes without fear of contradiction, defamation or retaliation. I say this as a Singaporean and more so as a husband.

My wife is a wonderful person and perfect in every way except one. She is the editor of a magazine. She corrects people for a living. She has honed her expert skills over a quarter of a century, mostly by practicing at home during conversations between her and me. On the other hand, I am a litigator. Essentially, I spend my day telling people how wrong they are. I make my living being disagreeable. Nevertheless, there is perfect harmony in our matrimonial home. That is because when an editor and a litigator have an argument, the one who triumphs is always the wife.

And so I want to start by giving one piece of advice to the men: when you’ve already won her heart, you don’t need to win every argument. Marriage is considered one milestone of life. Some of you may already be married. Some of you may never be married. Some of you will be married. Some of you will enjoy the experience so much, you will be married many, many times. Good for you..

The next big milestone in your life is today: your graduation. The end of education. You’re done learning. You’ve probably been told the big lie that ‘Learning is a lifelong process’ and that therefore you will continue studying and taking masters’ degrees and doctorates and professorships and so on. You know the sort of people who tell you that? Teachers. Don’t you think there is some measure of conflict of interest? They are in the business of learning, after all. Where would they be without you? They need you to be repeat customers. The good news is that they’re wrong. The bad news is that you don’t need further education because your entire life is over. It is gone. That may come as a shock to some of you. You’re in your teens or early twenties. People may tell you that you will live to be 70, 80, 90 years old. That is your life expectancy. I love that term: life expectancy. We all understand the term to mean the average life span of a group of people. Continue reading

How did I fail? Why did I fail?

Ok, this is my first blog post (if you don’t consider the introductory first one).

I have tried hard and I mean very hard to find something substantial, something important, something worthy to blog about. Only some days ago, after I got my first backlog (which means that I failed in one course in my final year of undergraduate program), I finally got something I thought I would like to blog about.

So, this is not the opinion of a depressed student trying to get over his failure by blogging about it. I do not come from the Zuckerberg family. I am not a die hard blogger.

So coming to the point, I have to say that even after failing a course in a very crucial year does not seem to make me nervous. I know this cavalier attitude might jeopardize my chances of getting into Tata Consultancy Services, the company I got placed with. So why am I not nervous?

Lemme give you a brief background on why I failed that course. Continue reading

Blogging, finally!

This is going to be a first of all the insane things that I have done. Currently I have my end sems sitting right on my head (somewhere near the ear perhaps) and I am passing time building a blog. But it is when you are most tensed, most frustrated that the ingenious of creations take birth. I hope that is the case with me.

Anyway, this is the end, officially, to my first (of the many to come) blog post.

Peace out \m/

click tracking