Summary of my past research progress
During my time at UCLA as an exchange student, I got to join LEMUR and worked as an undergraduate researcher for the Winter and Spring quarter.
I was responsible for high and low level testing of the robot compiler (RoCo). I completed the test code for the Parameterized, Composable and Component classes of RoCo’s API. One thing I have noticed is that the classes were not coherent. For example, similar methods (add, get etc.) of different classes do not have similar outputs or exceptions. Looking at different classes, I expected some methods to raise key errors but it was not mentioned in the documentation. It would be nice to mention the invalid characters that cause value errors in the documentation. Also, there are minor formatting issues (missing line breaks) and typos in the documentation which can be fixed before RoCo is released to the public. It might be due to the error associated with Sphinx that Gopi mentioned previously. I filed these issues on GitLab, where I explained them in more detail.
During my time at LEMUR, I came up with several ideas that may improve the usage and functionalities of RoCo. One idea I suggested was app-controlled printable paper robots. There are already some commercial products that can be connected to mobile phones to give robots more functionalities (e.g. Romo, SmartPet, RoboMe). These app-driven robotic assistants or "pets" can have animated facial expressions by means of the phone screen. It is a good idea to build such robots with RoCo. Right now, Jack is working to realize this idea for Android phones (the project is now called Andruino). Unfortunately, iPhones and other Apple products are not very suitable for development purposes since Apple doesn't publicly commit to power levels or even pin compatibility on the Lightning power connector. Instead, it requires companies to join the MFI ("Made for iPhone/iPod/iPad") licensing program. According to online sources, getting power out of a these connectors even involves software authentication before power will flow.
Another idea I presented was to cascade and/or combine printed robots. By modularizing these robots, we can accomplish a more challenging task, e.g. carrying heavier loads or creating a robot car that can grab things. A further idea was to have instructions on the paper to be cut. After generating instructions automatically, these will be printed on the blank area on the paper that has the 2D schematics on it. This could be assistive for the end user.
I also presented a draft UI for a simpler robot generation process. Right now, RoCo is separated into two online interfaces: one for 3D CAD design for the outer body of the robot and one for its electrical functionality design. While I find it very useful to have these two interfaces, they may still be challenging for a user group who is not experienced in CAD design. A more intuitive user experience might reach a larger audience, where, for example, the compiler could construct a robot (or give the user instructions about how to construct it) when inputted what kind of task the robot is supposed to accomplish. I propose that the user simply drag and drop blocks from a given set of components (related to electronics and mechanics of the robot) onto a blank area to create an action list. Rather than having the user design the outer body and the 3D mechanical structure of the robot via a CAD tool, these component just ask for desired function(s). These include locomotion, communication with other devices, image and sound processing. The 3D structure of the robot is then designed automatically by using preset components. I created mockups and a prototype for this proposed UI by using a prototyping tool named Marvel. The prototype can be accessed via https://marvelapp.com/28c0176. Start by clicking the “Move” block and continue as instructed.
My last idea was about printable paper watches. Commercial smart watches are generally expensive, whereas a DIY smart watch with a microcontroller, a battery and a screen and can cost $10 - $90. I think that, once RoCo is done completely, it would be very practical and useful to build paper smartwatches with it.
I thank Prof. Mehta for giving me the opportunity to join LEMUR and every member of our group for making it an unforgettable experience! I wish I could spend more time UCLA to work further on these projects. At this point, I guess I should remind myself of the saying: "Don't cry because it's over; smile because it happened."