Our 21 students are working in labs from NC (Duke) to MA (Harvard and MIT), and on topics from computer languages to tissue formation. Join us here to read weekly updates from their time in the lab!

Visit the EXP page on Peddie website: peddie.org/EXP.

Showing posts with label Adam Zhang. Show all posts
Showing posts with label Adam Zhang. Show all posts

Saturday, July 6, 2013

Week 5 @ Microdynamic Systems Lab

While the fifth week was shorter than a regular week due to a break on Monday and the Independence Day on Thursday, it nonetheless put a wonderful end on my research experience.

After learning to use Robot Operating Systems and programming patterns for a LED string using Python in the first four weeks, in the fifth week I connected my codes to the actual LED string and finished the testing.  Following are the videos I took of the LED patterns.

1. Asleep Mode:

2. Ready Mode:

3. Unbalanced Mode:


4. Linear Single (Gaussian Wave) Motion:

As my professor said on my first day at lab, five-week is not at all a long time for scientific research.  Nevertheless, this five-week experience was both challenging and fulfilling.  It exposed me to the real-world scientific research where there is a combination of individual working and collective effort. In addition to inspiring me about technology and management, the experience introduced me to many engineering concepts and equipments, honed my programming skills, and prepared me for independent problem-solving and collaboration in innovation.

I really appreciate the preparation and inspiration Peddie has always been providing me with and the opportunity that the Robotics Institute of Carnegie Mellon University has given me.  I hope I can make good use of my knowledge and experience and benefit others in the future.

Thursday, July 4, 2013

Week 4 @ Microdynamic Systems Lab

In the fourth week I designed the fourth pattern for a string of LEDs around a robot. The pattern is called "Linear Single", which means that the robot is moving linearly and that the LEDs are producing a single gaussian wave to indicate the robot's direction of movement. The design is achieved by taking the parameters of a direction outputted by a game controller and determining the relative LED that indicates the direction.


Other than designing the pattern. I added a "publisher/subscriber" relationship to the "topic" of the direction of the robot's movement. This allows the robot's movement, hence the LED pattern, to be controlled by commands inside the Graphic User Interface(GUI) rather than the game controller.


Eventually, a command inside the RViz (a GUI) called "2D Nav Goal" is able to give instructions to the robot and the LED pattern can be determined accordingly.


As promised in last week's log, I have a cool picture this week. With my mechanical engineer friend from the lab, I visited the cutting of foam sheet using a laser cutter.


Wednesday, July 3, 2013

Week 3 @ Microdynamic Systems Lab

In the third week I used programming in Python to design three patterns of a string of LEDs that shows the mode of the robot to which the LEDs are attached.

The first mode is "Ready", which tells that the robot is turned on and charged and prepared for movement instructions. The pattern has 36 LEDs emitting dim blue light in the background and 6 "rotating" LEDs emitting bright blue light in the foreground. The pattern is designed by re-editing the "string" of LED's over time and changing the RGB of each LED.



The second mode is "Asleep", which tells that the robot has not been active for a while, currently assumed to be a minute. The pattern is designed so that the LED alternates continuously between bright and dim.

The third mode is "Unbalanced". Because the BallBot robot designed by MSL is balanced on a spherical "foot", or a ball, the robot has to constantly balance itself. When the BallBot has its auxiliary legs down, being tested by researchers, or lost control of its balancing system, the LEDs will flash bright red light to alert nearby people.


Also in the third week I observed a mechanical engineer of the lab milling a Kydex sheet. (Sorry I forgot to take a picture. There is a cool one in the log for the next week)

My third week experience also taught me to be more proactive in seeking explanations for others' codes and solutions to a problem. For example, when designing the "Unbalanced" mode pattern, I was confused for a long time by the original code based on which I edit and add features. I then tried to forget what the original code is and come up with my own. Eventually, I found myself back in the path of the original code and I was able to edit and finish designing the pattern.

Wednesday, June 26, 2013

Week 2 @ Microdynamic Systems Lab

In the second week I finished studying Robot Operating Systems(ROS) and received my first assignment on controlling the patterns of a string of LEDs based on the state of a robot.

Although I think otherwise now, studying ROS was a very challenging process.

Different from Java, Python, and C++, ROS is not about writing individual functions or programs but organizing messages from separate programs, which in my case are a combination of C++ and Python, and produce a feature of the robot. One of the most important concepts, for example, is "publishers and subscribers". There are many "topics" in a huge robot operating program, to which publishers give information and subscribers receive information. One of my jobs is to organize the relationships and abstract the right information for the right programs.


On thursday I began my first project. I need to design patterns of the LEDs on a robot that can tell people whether the robot is asleep, ready-to-move, unbalanced, or moving in a certain direction.



Beside the robotics, I understood more the relationship between management and technology. As I was studying ROS, I tried to make good plans and time myself in every section. However, all my plans failed because I simply didn't have enough knowledge to predict the my work and solutions to problems. I realized how knowledge in science is necessary and essential for business: if one cannot understand the science oneself, one could not organize a group to research and to invent. I shared my ideas with a graduate student who came new to CMU five months ago from India, and he suggested that management should also consider creativity: if the management is too strong, the engineering will not be able to produce surprises.

Tuesday, June 18, 2013

Week 1 @ Microdynamic Systems Lab

My research started on the morning of June 3rd. Since then I have forgotten myself and been living with agents in the Matrix, and was just now "unplugged" by Jiehan. (many thanks!!)

Researching at a robotics lab is different from my previous experimental experiences (dissecting a pig, analyze an integrated circuit with oscilloscope, titrating, etc),. By looking at the same screen for half of the time of a day, I learned new information every moment. In the first week I self-studied Robot Operating System (ROS) and understood concepts related to the research being conducted at the lab. In the other half of the time of a day, I helped mechanical engineers modeling protective skins (e.g. heat shaping) and electrical engineers fixing circuits (e.g. soldering, heat sinking), learned about integrated electromagnetics analysis, and observed the balancing of the ballbot.

One of the several lessons I learned was to balance between communicating immediately after encountering a problem and spending as much time as possible trying to figure it out before asking. Solutions depend on how much time is allowed and how effective time is used in figuring things out by self.

Best luck to best scientists!