Week10
I can’t believe my time at Parasol is over!
Summer 2022 DREU Project
I can’t believe my time at Parasol is over!
My poster presentation on the 28th was a lot of fun. I was worried beforehand, because most of the content is research that was done in Parasol before my time, and the poster was more about the ongoing challenges of DR-PRM rather than a new solution.
I have a research presentation on the 28th!
This week I mostly worked on modifying the DR-PRM code to work with group robots. DR-PRM (Dynamic Regions Probabilistic Roadmap) uses topological skeletons to guide the sampling of PRM. The lab has had success with the code that works for a single robot, and can get some multi-robot solutions by running the individual robot code through CBS, but they want a more elegant piece of code that can call both individual and group robots for DR-PRM.
This week I worked on the Bridge Test sampler for open sourcing. I added code for group robots, as well as tests, and got everything to compile, run, and pass tests. The biggest challenge was that the group roadmap wasn’t generating and was causing segmentation faults. The group roadmap generation is not explicitly called in the Bridge Test. It’s handled by layers of inhertance (the dreaded diamond, even) so Courtney helped me for several hours and then James worked with us. We ultimately solved the problem. I’m not cleaning up the push request by removing debugging code and making nicer documentation.
This week I worked on the Bridge Test code all week. My job is to prepare the code to be moved to the version of the PMPL library that will be open source. The Bridge Test is what is called a sampler. When motion planning it is very expensize to text a path for collisions. Therefore, when using a technique like PRM to construct roadmaps or paths between sampled configurations, choosing these pathways carefully is important. A sampler is what selects the configurations that the motion planner will attempt to connect.
This week I finished the onboarding. This included coding an EST tree (Expansive-Space Tree), which finds a path between two points by growing trees from both points and by attempting to connect the ends of both trees until a path is successfully found. I had some trouble debugging, and since my bug was a complex inheritance issue within the Parasol Motion Planning Library, Isaac Ngui (a friendly PhD student) helped me solve the bug. I learned a lot about GDB by watching him debug.
This week I completed lesson 4, which concludes the onboarding lessons. In lesson 4, I read about discussed the topology of C-Spaces. I’d never learned about topology before, so learning that a maze and a square are the same shape took some getting used to, but I found it interesting. Then, we were asked to really code in C++ and the Parasol library for the first time. We eached coded our each own EST (Expansive-Space Tree) using the Parasol Library. In an EST, trees of nodes grow from the start and end goals and then attempt to merge. Like PRMs, ESTs sample the configuration space, but like RRTs and unlike PRMs, they’re useful for finding single paths rather than repeated use.
In week 2, I finished the second lesson of the onboarding program, which involved reading about and experimenting with Probabilistic Roadmaps for motion planning, and got close to finishing lesson 3. Lesson 3 involved using Parasol’s code base to run experiments to become familiar with how changing the environments, samplers, and connectors for PRMs changes the sampling of the environment and the likelihood of finding a path between a start and goal.
During Week 1 (ending June 4th), I moved into my apartment, got my student ID at Illinois, and was issued my Illinois ID. I visited the Parasol Lab in the Siebel Computer science building at UIUC where I’ll be working this summer. There are friendly PhD and grad students working on motion and task planning in the lab. I met those that are currently in person and learned a bit about their individual research projects.