Skip to main content

Posts

Showing posts with the label Carnegie Mellon University

Daniel, Last Week

My time at the lab is finished, though my ability to continue working on my project is not.  I showed my A* visualization to Dr. Likhachev, and to my joy, he approved of it- even suggested that I add the Javascript applet of the search algorithm to the lab's website. Unfortunately, no one that I am working with is exactly sure how to add applets to the website, as the website has been up for ages and isn't updated frequently, so I was told to work that out myself. My ARA* algorithm is almost complete- my theory and algorithm structure are correct, as I discussed my pseudo-code with Dr. Likhachev, but working its display has not found success due to the algorithm having to run multiple iterations of the main search. So cleaning up ARA*, as well as working out how to add the visualizations of both algorithms to the lab's website's servers, will be my objectives of the next week or so. Even though my 7 weeks are over, I'll still be in Pittsburgh for other activi...

Daniel, Week 6

Pittsburgh is a beautiful city, at least the part I'm living in. The streets of my neighborhood, lined with stores, a mix of antique restaurants and contemporary fashion salons, feel so fresh, clean, and perhaps even a little romantic at dusk. That's what I felt about my project when I finally created a working animation of my grid, minus the romantic part. I took Mr. Corica's suggestion on repeatedly drawing the graph during the algorithm's execution to simulate live animation. New versions of the graph would draw over previous versions so quickly that to the human eye, it would seem as if every iteration of my code's draw function only adds newer elements to the graph. To make this happen would, of course, also require a wait function that runs in between iterations, as otherwise only the final state of the graph would be observable. Javascript is a single-threaded language, so it doesn't offer a built-in sleep function that pauses the code without killing t...

Daniel, Static Visualization

So I extended my stay at the lab for two weeks, making my last day the end of July. I met with Dr. Likhachev a few more times, mostly in lab meetings. It seems that every week, there is at least one lab meeting, where, up to now, a PhD student in the lab gives a presentation on his proposal. The presentations have all been about 3D path finding in unknown environments and its application to robots. After having worked with some search algorithms myself, I had a pretty good general idea of what the big dudes were talking about. Words that were just buzz phrases weeks ago are now entire comprehensible concepts to me. I've successfully translated my A* code from Java into Javascript, though the process probably took a bit longer than it should have- I spent too long looking for an error that existed in the form of a misplaced bracket in a nested for-loop. I've also created my first copy of the algorithm's visualization. It's a Javascript applet, meaning the html file h...

Daniel Cheng, Web Development

I was given the project of web development. I would create simulations of various search algorithms such as Dijsktra, A*, and Weighted A*, and in the end, hopefully upload them to my lab's website. Over the past week, I spent a lot of time reading articles on the inner workings of these algorithms and even more complex extensions of them- algorithms like ARA* and Multi-Heuristic A*. Once understood, these algorithms all seem very intuitive in nature and follow a clear logical process (like Djisktra is just repetitively adding the closest neighboring node to a final set of nodes and then updating the neighboring nodes' distance values), but writing them in code isn't simple for me. I've also been using data structures that I haven't touched before, such as priority queues. I tried my hand at implementing A* and Djisktra in Java, and will soon convert my code into Javascript so that it can work as part of a Javascript applet and be used on the web.

Daniel Cheng, In My Own Room

I had no idea that Pennsylvania is this wide. Within the first hour, my train had reached Philly. But to Pittsburgh, it took another seven. Even before I stepped foot into the Search-Based Planning Lab, I was waylaid by some anxious news. The PhD student assigned to be my mentor, Dhruv, texted me that he, Dr. Likhachev, and most of the lab would be out of town for the entire week. So that was that. Fortunately, it was my first week, the week to be spent learning new material, and Dhruv provided me with plenty to digest. I already had ROS (Robot Operating System) installed, so I looked towards the tutorials that ROS provided. I copied commands into my Linux laptop's terminal to run ROS features. I learned the basic structure of ROS: packages, services and clients, publishers and subscribers, messages, nodes, and topics (which nodes communicate messages over). There was one simple yet interesting program I came across in the tutorials called turtlesim, for which using only 2 comm...