This post was first published on the FBI (Financial Business Informatics) blog on Oct 25, 2012. I’m putting it here as a backup copy. Click here to see the original post.
Matsue National College of Technology (MNCT), Japan
23rd July – 14th October 2012
I was sent over to Matsue, Japan, on a Student Internship to study robotics. This was a 12-week program and it was one of the most enjoyable experiences I’ve ever gone through. I mean, how often is it that you get to play with Lego-like toys AND still have it count towards your internship? Well, that was exactly how it felt like for the first two weeks. Using Bioloid parts from Robotis, I created several different sample robots, loaded in their respective sample codes and watched them work.
This was just to get me familiar with building and programming the robots. Now the difficulty level increased a little. After the third week, I built a simple robot arm and had to program it from scratch. I was taught Kinematics and Inverse Kinematics, and I had to be able to construct programs that allowed the robot arm to move given either angles of the joints or coordinates within its reach.
Kinematics and Inverse Kinematics were basically trigonometric equations used to tell the robot what to do, but I hadn’t touched it in three years, so I was more than a little rusty. Kinematics, or Forward Kinematics, was about telling the robot what angles to achieve in its joints, then have it display the coordinates. Inverse Kinematics, obviously, is the reverse of this.
One of the difficulties I faced was the simplicity of the code I used, Embedded C. It could process floats, but not display them. This was a little annoying at first, because I’d only see integers and wonder why I should have gotten decimal points. The solution we eventually arrived at was to concatenate the integer, a full stop, and the decimal part multiplied by 100 to become and integer. This wasn’t foolproof, as we had problems with decimals like .01 and .06, but it was the best we could do with such a simple language. I wasn’t too thrilled with that. Anyway, during the last month, I had to create an experiment task for the October intake of students. It was a simple report and my supervisor guided me through.
Looking back at this internship and comparing it to my friends’, I now see that it was not too difficult. It had its bumps along the way, but I would have appreciated something a little more challenging. However, this has brought me one step closer to my career goal of experiencing all non-obsolete programming languages at least once.