Hello! My name is Jason Kreitz, and I am currently in Korea doing research at KAIST's HUBO Lab. This page will be my trip blog. Each week, I will be posting my experiences, and each post will roughly follow this outline:
1. Photo of the week
2. New Korean that I met
3. What new cultural insight about Korea did you learn this week?
4. What did you learn about yourself?
5. What is the status of your technical projects and what skills did you learn?
My photo of the week is of a lunch we had with some of Professor Park's old PhD candidates.
They came in from the University of Illinois and are also here on an NSF grant. Almost everyone from HUBO lab will be leaving this next week to visit universities in Europe, and so unfortunately none of the students were able to hang out for extended periods of time. However, these three PhD's took us under their wings, and we spent a lot of time together both in the lab and out.
We planned a nice big lunch for Sunday to celebrate our first week in Daejeon, and I think we all had a really good time.
I did a bit of exploration around Daejeon this weekend and found an acrobatics/taekwondo tricking studio by chance. They were holding a group lesson about half an hour after I arrived, so I had shown up at the perfect time. They brought me in and let me join the two hour practice for free.
While there, I met two Koreans who I had a fun time engaging with (thankfully, meeting them at a practice made it a lot easier to initiate conversation). One's name is Junsoung, or Jay - a 25 year old who is just finishing up his military service. He helped me do a backflip, and we got to bond over each others taste in music.
The other's name is Hojin - a 17 year old high schooler who has been practicing taekwondo for 11 years. He is already an instructor at his dojang, which I think is really impressive.
Below are some videos I scraped from my Instagram and posted on YouTube:
The taekwondoin at the studio were incredible. I had never seen anyone do such advanced aerial tricking on a trampoline, let alone on mats. They were jumping almost a meter into the air every flip and were able to do some amazing combinations.
Thankfully, they are also very supportive of one another. When someone would land the trick that they've been trying to work on, everyone would stop what they were doing and cheer that person on. They were very willing to give constructive criticism to one another to help each other grow.
I was surprised that many Koreans learn Hanja at a very young age, despite them not really needing to know it. Almost everything is written in Hangul, but the Hanja still will be used in things like newspapers or advertisements for additional emphasis.
In addition, I thought it was really cool that Korean people's given names are still determined by the Hanja their parents chose - even though they end up writing their names in Hangul anyways. I have gotten to know more about some of the students in the lab just by asking them what their Hanja is.
Before coming to Korea, I had thought that it would be relatively easy to meet Korean students (outside of HUBO lab) and interact with them. Instead, I learned how easy it is to cling to other international students when you do not know the language. It took me quite by surprise. I normally like putting myself in new situations, but after four or five days, I realized I had spent most of my time, comfortably, with other people fluent in English. I became confused as to why I was searching for that comfort of having other international students with me. And so my Sunday exploration around Daejeon came from wanting to learn more about the quirks of the city.
After meeting the students at the HUBO lab (who all have very good English), it was eye opening to see just how many people off campus spoke little to no English. Even so, most were incredibly welcoming, despite my broken Korean.
After speaking with one of the lab employees, Mark, and receiving verification from KAIST's Dr. Oh, I will be working with the RB5 at the HUBO lab.
First, I will be creating a ROS wrapper for the RB5's PODO commands. There currently is no ROS support for the RB5, and so I will be helping out with the first wave of support. I am excited to learn more about the PODO framework, and it has been very interesting reading through the RB5's source code (which I am grateful to have received access to).
It has been useful to see how they use the QT framework to create their graphical user interface, and I also think it was useful to see how it can make system calls significantly easier to handle, even though it still is technically written in C++.
This wrapper project requires me to handle TCP/IP communications between the computer and the arm, and so I am excited to write this program from the base up.
Once we have the ROS wrapper for the PODO commands, I will work on sensor integration using an RGBD camera. That will be the next step, but thankfully ROS makes sensor integration much easier.
This picture is from the peak of Gyeryongsan - a mountain that separates several cities, including Daejeon. From the top of the mountain, you can actually see the cities, as well as the reservoirs that the cities use for water.
Gyeryongsan is supposed to be one of the most sacred mountains in Korea. The temple at the base of the mountain, Donghaksa, was beautiful (and large), but I was very surprised to find a small temple near the top of the mountain. This picture is of the rock pagodas at that temple. This is the first time I had actually seen pagodas made from stone and not from wood. It really helped me to realize just how old this temple was, and probably how important it was to traditional Korean Buddhism.
Akshay and I met a student named Minju (not the one affiliated with our lab) this last week. She is currently studying environmental science and will be leaving next month to live internationally. Her English was pretty good, so we were able to communicate easily. We all went to Indian food together, as she had never eaten it before; I know Akshay was very excited to share his favorite foods with our new friend.
She had never been hiking before either, and so I invited her to come with me on my hike up to Gyeryongsan. She expected not to like it, but after ten or fifteen minutes, she came to appreciate the silence of being away from the city. Now she's interested in picking it up as a hobby!
An interesting thing that I learned this week is that outdoors-y things are not very popular right now in Korea. Almost every person we met on the mountain was already retired. Whenever I brought up hiking or going to hot springs (I was very interested in both) to other Korean students, most had never gone and were not interested in going. This shocked me, because hiking/hot springs are very popular in America.
I am amazed that I am here. This campus is beautiful and huge - and the students are some of the smartest in the world. I have met transfer students here from some of the top universities in Europe, India, and the US. I guess I just keep getting surprised at how big this all is. KAIST is a really big deal in Korea.
I am excited for the HUBO lab members to get back from Europe so we can start spending time with them. I think it will be very nice to get a real sense of how the lab over here normally operates.
This past week I have primarily been working with PODO and the QT framework. I learned how to build functions into the PODO GUI, how to open sockets to allow for communication between programs, and how the RB5's inverse/forward kinematics functions are called by PODO. It took a while to learn how QT objects actually perform the TCP communication, as there are also best practices that aren't obvious without prior knowledge. Unfortunately the lab was empty, so I didn't have a chance to ask anyone about why they use QT and the benefits of using that it to handle their communications. It was also difficult to learn about the RB5 when all the documentation is in Korean, but thankfully Google Translate pulled a lot of that weight for me.
This is the first real step into building the PODO wrapper that I had brought up before. I was successfully able to make a server in PODO that would listen for data that I sent via a client. I was also successfully able to create my own function to move the RB5. I took a video for my instagram that can be seen right below.
Akshay, Mark, and I all went to Rainbow this week! Mark is a Korean-American researcher at HUBO lab who has been kind of hosting us and helping us through everything.
This is a picture of us at the front of Rainbow Robotics (I apologize for my picture being flipped). Mark has been really interested in videography, so he took videos of us while we were there. We have some pretty good shots, and I'm planning on using some of them for our end-of-the trip video.
This week I met a Korean who goes by the name of Lucy. She is an international student studying Opera in Germany. She is back in Daejeon to visit her family for a few months before going back to Germany. I was incredibly surprised to find out that she had lived in the Philippines for over six years. It was nice meeting her, because her background was very similar to mine (Philippines/Opera).
Although we did meet him through the lab, this week we got a chance to meet Dr. Daniel Lofaro as he passed through. He did a presentation on his research, as well as a bit of the future of robotics. It was interesting to see how the cross section between robotics and psychology is really starting to burgeon into its own area for research.
Professor Park took Akshay and I with him and a few of his PhD's as we all took Dr. Lofaro to the KAIST faculty lounge. Man, that place is beautiful. It is even nicer than the new hospitality school at UNLV. I could only imagine the people that have had lunch there. I guess it makes sense that diplomats, tech executives, and the like should all be brought to a beautiful room to enjoy their time at KAIST.
I think one of the more striking things about Daejeon is how international it is. Even though it is far away from Seoul and Busan - and even though there aren't any American military bases in the city - it is still surprising to hear so much English spoken in the streets. However, with that being said, I feel like I am doing Korea a bit of a disservice by not being able to speak Korean. I dislike feeling like I am a person that others need to accommodate. Thankfully, many of the younger generation (even outside of KAIST) have good enough English to where we can communicate, but still. It would be nice to see Korea from the vantage point of someone who can engage with the culture closer to the inside rather than completely as a foreigner.
We also met with Heo Jeongwoo, the current CTO of Rainbow. He was telling me that if I'm able to do a good job with the ROS Wrapper, there will be an actual use for it.
In fact, I am really enjoying building this ROS wrapper for RB5's version of PODO. I think this is the first time that I have had to build a fully functional program for other people to use. I'm spending a lot of time thinking about how to create something from the base up, combining the new things I am learning about QT and client-server communication to allow end-user functionality that isn't just specific to my own project.
It has been fun putting it together so far. Some of my notes are below.
I was using Evernote for all my notes, but I found a slick new KAIST research notebook and I have been using that instead for the last few days.
This whole process has been fulfilling in its own way, because I feel like my work will be used to help people develop on top of it. It also means that I need to think about the actual structure my object oriented code from the beginning (and not just hacking something together), because there probably won't be anyone else to maintain the project once I finish with it.
This past week, I've been continuing with building the server side of the RB5 PODO program. I was successfully able to send full objects via TCP, although I have run into a few road bumps trying to build on top of that. Specifically, I have been trying to figure out how to ensure that commands from the client are sent to the server in a way that will not overflow the buffer, but still allow for a closed loop program.
I think that I've spent a bit too much time trying to learn about using the QT framework and not enough time actually building the wrapper, though. I want to try and spend this next week at Rainbow (I've been spending most of my time at HUBO lab). I think it will give me a good chance to work more intimately with the RB5 team, as well as be a lot closer to what the software team is developing. I also think that they may be able to point out how to better use QT, so I can spend my time more productively than just looking at documentation.
The lab tour that we got from Rainbow was pretty productive. They helped us understand what was going on within the RB5 control box.
I hope to have the wrapper done by the end of this next week, at least to a point where I can use it to integrate the cameras for my computer vision purposes.
I took this picture when I went out to lunch with some of the guys in the lab. David (top left), Joonha (left), Yeongha (top right), and Jake (right).
I chose this picture because this was the first week that I got the chance to hang out with the lab members (we didn't really get a chance before because of their trip to Europe). We grabbed lunch multiple days this last week, and we also went out to the movies.
Akshay and I also went to a cafe called “Raccoon Cafe” that was basically just a dog cafe. It was my first time going to any sort of animal cafe. The place was kind of weird (they had raccoons, but in a separate area that only employees could enter). I'm used to dogs being very friendly and easy to interact with, but these dogs ignored all visitors - unless the visitors had purchased treats to feed the dogs with. It reminded me more of a petting zoo than what I had imagined.
I did not really get a chance to meet new Koreans this week, as I had spent most of my free time with the guys in the lab.
Korean society is more hierarchical than America. You can tell that age difference means a lot to people over here - but to be honest I don't notice much of a difference in the lab members. They don't act too different with one another, which I think is nice. Everyone in the lab eats meals and goes out together, which I think helps create a good sense of comradery between the lab members.
Although I have been trying to avoid making comparisons to Japan, I think that there is one striking difference between the two cultures that I had not really noticed until this last week. In Japan, there is a concept called “tatemae,” which is the face you put on for other people. Personally, I dislike tatemae because you can never really tell whether you actually get along with someone or they are just putting on their face. Every Korean that I have asked says that tatemae does not exist in Korea - and I think it shows. I feel like people here are much more direct and are more willing to express themselves.
I'm starting to get a bit homesick. We received an update on my grandma's health, and so I'm hoping that she's able to push through the next few months. My sister and her fiance are also doing a small wedding ceremony in two weeks, so I'm missing my family a good bit. Thankfully, this ceremony was something they decided about a month and a half ago primarily for my grandma's sake - they are doing a big ceremony next year that I am making sure to go to.
It is a bit weird to say, but I am kind of happy that I am homesick. I didn't get homesick when I studied abroad 5 years ago, and so I think that my relationships with my friends and family have really strengthened since then.
We put together a new setup for me to test the wrapper on ROS Kinetic.
I'm not sure why the picture is only posting sideways, but it's just a computer right next to the RB5. The setup is in the hydraulics lab, so it is a bit farther away from everyone else. I do have two new neighbors, Soonghoon (left) and Booyeon (right), who are pretty cool. Soonghoon has pretty good taste in music, so we have been rocking out while working.
The RB5 server is working, so it will respond whenever I send commands via an external client. The ROS action server/test client are up, but there are a few things left to take care of before I can actually say I am finished with it. I am currently just debugging, so I hope to have something functional in the next few days so I can start to work on the pick-and-place project. Thankfully having the wrapper will help to better integrate the sensor data for pick-and-place.
I did not get a chance to go to Rainbow this last week - I think the software team is pretty busy, as they are somewhat difficult to contact at the moment. However, Mark has been very helpful in helping me understand creating a ROS action server/client. He has been using ROS for about 3 years and created his own wrapper for the mobile HUBO project. He's been awesome, and I'm really grateful that he's been very open to helping us out.
This weekend I was able to meet up with a family friend from high school. Her name is Marwood, and she has been teaching English in Korea for the past five years. She is close with my sisters and me from our time doing high school theater, and her mom and my mom still keep in touch. So I knew that when I had the chance to go to Korea, I needed to meet up with her.
This picture is of the lunch that I had with Marwood down in Busan (where she is teaching). We hung out with her friends Anna and Jaewoo on Saturday night, and this is us grabbing Vietnamese food on Sunday day.
Here is another picture of Marwood - albeit sideways (I don't know why daslhub rotates every picture to be landscape).
Marwood lives a block from the beach, so I was able to take some beautiful pictures of the bridge. Here is a picture of Busan by day.
Here is a picture of Busan by night.
I met Jaewoo through Marwood. He is dating Anna currently, so his English is pretty good. He is a videographer and graphic designer. He and Anna have plans to move to Vietnam this next year.
I knew that Korea has a pretty heavy Christian influence, but I was not really expecting a heavy Catholic influence. Most Christian Korean Americans that I know are non-denominational or baptist. However, I have been seeing nuns everywhere this week. They were walking up and down the street in Busan, waiting for trains at the train station, and I even noticed a couple Catholic churches.
What was really impactful for me, however, was on Sunday night, a group of nuns and church members were giving out hot meals for the needy in front of Daejeon station. I haven't seen too many people with disabilities or many homeless since coming to Korea, but on Sunday night they were there lined up outside of Daejeon station. I wanted to take a picture, but figured it would be rude and insensitive. Having experienced doing community work with the Catholic church back in Vegas, I am very happy that the Catholic church in Daejeon carries the same community focused mission of helping the needy.
I didn't exercise at all this week, and I just do not feel the same level of energy as I had before. Since coming to Korea, I have been exercising almost every day - until this past week. It's not as easy to manage the stress, and I'm just feeling a bit heavy and lethargic.
One of my goals coming to Korea was to get back to a place where I feel fit (since I literally have no life here). I wanted to carry those good habits back with me to Vegas, but the more I have been hanging out with other lab members, the less I have been going to the gym. Because it is a priority to me, I need to make sure that I am still carving out time for exercise.
One of the researchers at the lab (Hyobin) has been working with HUBO's ankle actuators. Here is a video of HUBO walking on an uneven surface.
As I have been spending more time with the hydraulics team, I have been able to see their robots in action. Here is just a small video of hydraulic hip actuation that they will be using for their next robot. Buyeon just pulled it out of the box, so he is just doing some preliminary tests.
As for my project, I am finishing the wrapper today. Unfortunately, I spent a lot of time searching through the code on how to receive status data (joint states, whether or not the arm is moving, etc.) from the arm - Mark wasn't sure how to receive that data either. Rainbow still has not responded to our emails, so we needed to search for it ourselves. Thankfully, we found a header file this last Friday that contained the correct calls to the arm. We will be using those calls so we can send updated information to ROS.
This video was taken last Wednesday - it is of a ROS action client sending commands to the ROS wrapper, and the ROS wrapper then sending the commands to the RB5 arm. There is a delay between each of the movements because we could not receive a status update from the arm that the movement was complete (which is a status contained in the header file). Instead, I just waited for 7 seconds between each movement. I am implementing that status update today, so we can have continuous movement.
I was able to set up my camera rig, so now I am trying out a QR code prototype of the pick and place movement. There's currently no gripper attached, so I am just going to emulate the movement. We are doing a demo for Professor Oh later this week, so I am aiming to get the prototype done by the end of the week.
This past week I went to Japan to visit Stephanie's (my girlfriend) extended family (aunts/uncles). Her mom and brother were also there, so it was basically a huge party. Her family in Tokyo had hosted us for a whole month about two years ago, so I needed to make sure that I spent time with them while I'm in the region.
What surprised me the most, however, was that with her grandpa welcomed me easily this time. The previous time, we never interacted much with one another. So I was very happy for him to have opened up to me.
The picture below is one that I sent to Stephanie after I landed.
I met a few new Koreans from Seoul National University and Kookmin National University during out seminar trip this last weekend. We hung out and played ping-pong/billiards with several of our lab members.
I didn't get a chance to go out much outside of the trip, however. I only had about three days in Daejeon, and those were spent preparing a demo for Dr. Paul Oh (we had already done our demo for Professor Jun Ho Oh the previous week).
Man… Japan and Korea are different. Regardless of all the politics currently going on, culturally they feel different. Being half-asian and growing up in a heavily Asian American community, my friends and I all learned about each others respective cultures through what was passed down by our parents. And so I never really realized just how different the respective cultures are without the American culture in the middle.
Japan is overly organized, and everything has a place. I met up with a close friend from UNLV in Tokyo, and we were talking about how the business culture of Kaizen (the Japanese word for continuous improvement) actually gets in the way of innovation. In comparison, Korea has felt much more open to people going at their own pace. Maybe it's a recent development with the younger generation - or maybe it's because Daejeon is a more relaxed city - I'm not sure.
Engineering classes teach us tools, but they don't teach us how to think about them or their use. It seems pretty obvious, but man… It's really easy for people without experience to get caught into the trap of “learn this and become a master.” I was waiting for classes to teach me how to implement a concept, instead of using my classes to better understand what/why I'm working on my projects.
I realized this shift in my mentality when implementing my finite state machine (FSM). I had previously thought that an FSM was just some concept that only computer science students learned in their Automata classes - and that you could only implement it if you had studied these concepts rigorously. But now I realize that conceptually it's not too difficult to understand - anyone should be able to create a FSM as long as they understand basic coding.
However, the FSM completely changed the way that my project worked. No longer were the requests being hard coded, and there was no hand controlled input. Everything became very hands off, with the shift in states controlling what the arm would do next.
And so my hope is to go into this next semester of operating systems, computer languages, and algorithms courses with a better understanding of how the concepts I'm learning can better help me answer questions that pop up during research.
We got a chance to get a close look at the FX-2 in actual operation. Man, just a year ago I only would have thought “holy crap this is so cool.” But now I am in awe because I know just how little I know. This thing must have taken so long to make - and then on top of that, it must have taken a large number of trials to actually walk with a rider.
Below is the state of my current project. I'm jamming out to music during the video, so feel free to put it on mute.
In the video, you can see my FSM put to action. It will only start moving when it detects an object on the table. I can see that, from here, there are ways to use probabilities with the FSM to create a more robust decision making process for difficult processes. Thankfully, this process is fairly straightforward.
Youngbum and I had spoken this last week for things left to do before I leave and ways to move forward once I get back home. I feel like there is a good path forward for when I return, so I am thankful to have been able to gain this experience with the RB5 over here.
Even though I feel like I have gotten a lot done, I am realizing that there is still so much to learn in order to solve more difficult problems.
This last week, I met two new Koreans: Bora and Mingu.
Bora is Soonghoon's (from the hydraulics lab) girlfriend. I had been trying to hang out with them for a while, and we finally got a chance to go out this last Friday. Ook (another lab member), his friend Mingu, and Akshay also came along. We all got along pretty easily - which has often been the case when Akshay and I meet people together (thankfully).
I am going to miss KAIST. I've learned a lot here about what it means to be a roboticist (more specifically, learning how much I don't know). The problems that roboticists tackle are non-trivial, and it takes a huge amount of time, effort, and understanding to get past more trivial problems. Being here has helped to foster a greater sense of cooperation between me and Akshay, showing that we can think through problems more efficiently when we can rely on someone else's perspective.
I am going to miss the lab members here. There is definitely a sense of camaraderie between the HUBOLab members, regardless of whether or not they work directly together. They have welcomed Akshay and me into the lab, even though we hadn't worked with them on any projects.
This past week I have been helping out Akshay with the object following module for the RB5.
We've noticed significant lag in the communications that weren't present with the simple pick and place demo. After digging into the issues, I found that the ROS wrapper is not receiving robot data from the RB5 control box in a timely manner. I am working out these issues (maybe will be fixed up by resolving timing/threading issues) and will continue digging into it after we return.
Dr. Jun also requested that I import the RB5 into RVIZ before coming back to Vegas. I just received word from Dr. Bae earlier this week that they have not made a URDF for the RB5, and so I will need to make it. Once I make the URDF, I will need to make a node that posts the RB5 joint data to the URDF topics.