Home research People General Info Seminars Resources Intranet
Home Page for Diego Ruvalcaba | Parasol Laboratory

Picture Diego Ruvalcaba

Parasol Laboratory url: http://parasol.tamu.edu/~diegoruv/
Department of Computer Science and Engineering email:
Texas A&M University office: 407 HRBB
College Station, TX 77843-3112 tel: (956)-250-1222
USA fax: (979) 458-0718

About Me

     Howdy! My name is Diego Ruvalcaba, I am an Engineering Honors student and the proudest member of the Fightin' Texas Aggie class of 2020! I am doing Undergraduate Research with Parasol Labs working on Motion Planning. More specifically, I am working creating Workplace Skeleton Tools for the user to be able to see the skeleton in our visual software called VIZMO and be able to edit it and save it. Eventually we will be able to use information from each vertex and edge such as clearance from obstacles to help optimize the motion planner. I'm working with current PhD Student, Mukulika Ghosh, at Texas A&M University who works with Dr. Amato as well on Computational Geometry.

I am from Cypress, Texas and I graduated from Cypress Ranch High School in 2016. I started programming in High School and after a while it began to grow on me. I started to do small projects on the side and eventually I joined the UIL team for my High School. Eventually, I realized that this is what I wanted to do for my career and so I decided to come to Texas A&M to hopefully get a Undergraduate degree in Computer Science with a specialization in Artificial Intelligence and Machine Learning. I first gained interest in Artificial Intelligence when I created a Connect Four player that could play against you. I really enjoyed giving it algorithms that allowed it to have basic and advanced Connect Four strategy and even be able to predict moves.
My LinkedIn Profile

My USRG Website

My Mentors

    These are my mentors who helped me in my stay at Texas A&M's Parasol Lab. For more information check out their personal webpages.

Dr. Nancy Amato

Nancy M. Amato is Regents Professor and Unocal Professor of Computer Science and Engineering at Texas A&M University where she co-directs the Parasol Lab. She is also Senior Director of Engineering Honors Programs in the College of Engineering.

Amato received undergraduate degrees in Mathematical Sciences and Economics from Stanford University, and M.S. and Ph.D. degrees in Computer Science from UC Berkeley and the University of Illinois, respectively. Her main areas of research focus are motion planning and robotics, computational biology and geometry, and parallel and distributed computing. She has graduated 23 PhD students, with most going on to careers in academia (10) or government or industry research labs (8), and the rest going to industry (2) or postdocs (3). She was program chair for the 2015 IEEE International Conference on Robotics and Automation (ICRA) and for Robotics: Science and Systems (RSS) in 2016. She is an elected member of the CRA Board of Directors (2014-2017), was an elected member of the IEEE Robotics and Automation Society AdCom (2009-2011), is co-Chair of CRA-W (2014-2017), and was co-chair of the NCWIT Academic Alliance (2009-2011).

Mukulika Ghosh

Mukulika Ghosh is a PhD Student in the Department of Computer Science and Engineering, at Texas A&M University. She works alongside of Dr. Amato on Computational Geometry. Her research projects include Fast Approximate Convex Decomposition and Approximate Convex Decomposition. Mukulika has written 6 research papers over motion planning and that can be all found on her personal webpage.

My Research Partner

Kiffany Lyons

Kiffany is a junior Computer Science major at Texas Wesleyan University expecting to graduate in the Fall of 2019. She is currently doing research in Parasol Labs at TAMU under Dr. Amato through the CRAW DREU program.

Research Plan 2017

Workspace Skeleton Tools


Motion Planning is the problem of finding a collision free path for a moveable object from a starting to an end position. Its applications can range from robots, minimally invasive surgical planning, molecule binding and folding and many more. The space that occupies the robot and all of its obstacles is known as the workspace.

Various data structures are put into place to store information about the workspace. An example data structure that does this is the workplace skeleton. A workplace skeleton is an embedded graph in an obstacle or free environment.

My peers and I will be conducting research on how the different properties of the workspace can be added to the skeleton to better motion planning. We will learn how the workplace skeleton works as well as how we can add information to it from the workspace. We will run tests to see how this added information performs in different motion planning problems. Finally, we will use tools to visualize the workspace skeleton and its properties, color its components and animate its construction. All of this would help to better understand these important data structures and how they are used in motion planning algorithms.

Sampling Types for PRM


I chose motion planning in general because it had a lot of very interesting topics that I would like to very much further in my knowledge. I want to specialize in Artificial Intelligence and Machine Learning and Dr. Amato and Dr. Shawna believed that motion planning was a great fit. I believe that this research experience will be good for me to use as a strong foundation into computer science applications. I think motion planning is a very interesting problem and I am very excited to learn more about it.

Medial Axis Skeleton

Project Goals and Implications

The goals for this project is to create a way to store information about the workspace to use in motion planning problems. With the creation of a workspace skeleton we can easily store and use information inherent to the workspace. The visualization of the workplace skeleton will allow the users to see how the skeleton works as it solves motion planning problems. This will allow for users to analyze and inspect how the workspace skeleton works.

Personal Goals

This project will allow me to familiarize myself with Computer Science practices and concepts in Motion Planning. I will learn how to conduct research with independent experiments and how to present my results. I will develop skills like, C++ coding skills inside an existing code base, Engineering practices for working in a group, data structures and algorithm design, the scientific approach, writing technically, and preparing and present research work.

First, I need to learn the basics of motion planning, data structures and visualization by reading a couple of research papers about the topics. Secondly, I need to familiarize myself with the Parasol Lab’s Motion Planning Library (PMPL) and Parasol Lab’s Visualization software (VIZMO). Then, I need to create a way to store and retrieve information with the existing workspace skeleton. Once that is done, I need to translate the skeleton model from PMPL to the visual software (VIZMO). Next, I will create additional features like the ability to color components or animate its construction. Only then can I begin testing and analyzing different information about the workspace. Finally, I will document the workplace skeleton’s design into a paper and prepare and present a poster at the end.

Method & Materials

I will be using the Parasol Lab’s Motion Planning Library (PMPL) as well as the visual software, VIZMO, and C++ programing to help me with my workplace skeleton.

Work Schedule

I am expected to work 8 hours each day, not including breaks, from Monday through Friday. I may also work outside of the lab to further my project to ensure I meet the deadlines asked of me.

Weekly Reports 2017

Week 1
May 29 - June 2

    This week was a lot of fun as we started up out work here at Parasol Labs! I am really excited to start working here and so far it has been very rewarding. This week I set up my account again and started working on the crash course. We finished the first two sections of the Crash Course and at the end of the week we discussed all the discussion questions as well as reviewed the two sections we had just finished. Next week we are planned to finish the next two sections of the crash course by the end of the week.

  • Monday
    • No Work (Memorial Day)
    • Getting used to my new apartment!

  • Tuesday
    • Met with everyone at the lab after USRG breakfast.
    • Set up account and updated website.
    • Continued Crash Course reading the first paper.
    • Learned what I was doing for my research from Mukulika.

  • Wednesday
    • Finished the third and final pass of the first paper.
    • My Thoughts: I believed it was a very written paper and hit a lot of really good points on the Motion Planning problem and the history and future applications of the problem. This paper got me really excited to continue reading about how Probabilistic Road Mapping (PRM) worked.
    • Attended weekly meeting.
    • Started working on the Project Plan.

  • Thursday
    • Started and finished the second paper.
    • Started the coding and trying different samples.

  • Friday
    • Finished up writting up the discussion questions
    • Attended meeting to review two sections of the crash course and talk about discussion questions.
    • Tried playing Risk with Brandon Martinez, Marcos Pena and Leo Pena

  • Goals for Next Week
    • Start and Finish sections 3 and 4 of the crash course
    • Continue to further my knowledge of PMPL, VIZMO and PRM

Week 2
June 6 - June 9

    This week was very fun as we started working on our summer projects! In the beginning of the week I was finishing up the crash course and was on section 4 reading the paper on sampling methods. After you got back on Tuesday, we only had to finish section 3 for the crash course. At our weekly meeting on Wednesday we talked about all the different summer projects, and mine the Workplace Skeleton Tools. This week I finished the first section of my summer project by adding a button to VIZMO and allowing the user to add a skeleton to the work space.

  • Monday
    • Finished My Strategy from crash course
    • Started reading section four material
    • Went to Chipotle with Brandon Martinez, Leo Pena, and Marcos Pena.
    • Went to a summer reading club at my church

  • Tuesday
    • Dr. Amato returns!
    • Finish Crash course for the time being
    • Began summer project with Workplace Skeleton Tools
    • Checked out VIZMO and started exploring the directories I was going to need to add a button
    • Tried TAZ Indian cuisine with Ankit Ramchandani
    • Played Risk with Brandon Martinez, Leo Pena, and Marcos Pena.

  • Wednesday
    • Found out how to add a button
    • Added a "Add Skeleton" button and began working on listener
    • Made a listener to open up the file selection menu
    • Watched Game 3 of the NBA finals with friends

  • Thursday
    • Finished the "Add Skeleton" button and allows user to choose a ".graph" file to make a skeleton
    • Tested our button on different skeletons
    • Continues to learn more about the GUI interface
    • Played Risk with Brandon Martinez, Leo Pena, and Marcos Pena.

  • Friday
    • Nearly finished the "Save Skeleton" button that allows the user to save the current skeleton.
    • Learned about templates in C++
    • Watched Game 4 of the NBA finals

  • Goals for Next Week
    • Finish up the "Save Skeleton button
    • Continue with VIZMO and building the skeleton

Week 3
June 12 - June 16

    This week was a lot of fun at Parasol Labs! I got to write a few functions to read from a file and create a graph and vise-versa. It was exciting to be able to actually use code and document it so that it can hopefully be checked in someday. We also build an entire new class that allows us to store properties of vertices and edges. With that new class we build some get and set functions so the user can add vertices or edges as well as access properties of them given their descriptor. On top of that I made a very nice website that allows the user to contact me and view my weekly reports in an interesting manner.

  • Monday
    • Did a lot of work on my website
    • Wrote pseudo code to take a skeleton and write its contents to a “.graph” file
    • Attended GRE Class
    • Went to my church reading club
    • Watched the Golden State Warriors win game 6 with Brandon Martinez, Leo Pena, and Marcos Pena.

  • Tuesday
    • Continued to work on Save Skeleton
    • Fixed an issue with abstraction trying to access the graph of the environment
    • Attended an Early Graduate Admissions Seminar
    • Got a free taco from taco bell

  • Wednesday
    • Finalized the code to access the information into the graph and write it to a file
    • Finished code for the Save Skeleton function which takes whatever skeleton is in the environment and saves it to a file
    • Continues working on website
    • Attended GRE Class
    • Created a new class called PropertyMap that allows us to store maps of the properties of the vertices and edges

  • Thursday
    • Wrote functions to add items to the map for the vertices and edges
    • Wrote functions to access properties given Vertex and Edge Descriptors
    • Fixed some compilation errors
    • Tried Peruvian Food Truck

  • Friday
    • Did a lot for work on my website and redid my design
    • Worked on trying to allow each vertex and edge of the skeleton to be selected by the user
    • Learned about the types of graphs in PMPL
    • Fixed my contact form
    • Added two new buttons to Environment Options to delete selected items and to add nodes.

  • Goals for Next Week
    • Allow the user to be able to select individual edges and vertices
    • Continue working on the PropertyMap with an ordered map
    • Try to create and finish my own personal website

Week 4
June 19 - June 23

This week was another interesting one! We continued to work on things for the skeleton tools and got to add a few more buttons to our Vizmo! We helped setting up and tearing down for the coding camp Mukulika and Diane were hosting and we overall did good work on furthering our skeleton.

  • Monday
    • Did a lot of work on my website
    • Attended GRE Meeting
    • Updated my weekly reports format
    • Added biography information in website

  • Tuesday
    • Started working on trying to show the vertex descriptors on the skeleton
    • Formatted Weekly reports on website
    • Went to eat at Yestar Buffet
    • Tried to add pictures
    • Continued to work on the skeleton

  • Wednesday
    • Continued adding to PropertyMap
    • Looked at QueryModel to see how they displayed and highlighted the vertices
    • Attended the weekly meeting and learned about Shawna and Tim's research over Medial Axis Planning
    • Started adding methods to EnvironmentOptions, EnvModel, and GraphModel
    • Found a bug in the current vizmo checked in and showed Mukulika

  • Thursday
    • Worked on Website
    • Worked on displaying the vertex descriptors In the GraphModel
    • Got showing the vertex descriptors to the skeleton
    • Moved our work to the branches so that Kiffany and I could work on them on our individual computers

  • Friday
    • Worked on the website
    • Continued to work on the skeleton
    • Worked on allowing the user to select objects instead of the whole skeleton
    • Diane and Mukulika bought us all Lunch
    • Wrote up the weekly report and updated the Website

  • Goals for Next Week
    • Allow the user to be able to select individual edges and vertices
    • Continue working on the PropertyMap with an ordered map
    • Format my pictures on the Parasol Website
    • Try and create and finish my own personal website

Week 5
June 26 - June 30

This week started out slow but I got a lot of real work on my website and then we got more tasks for the workplace skeleton for next week. I updated the website by adding all the pictures and finalizing the format. I finished up my “About Me” page and added profiles for my mentors and my partner, Kiffany. This week we mostly worked on allowing the edges and vertices of the skeleton to be selectable individually. Finally, we began to add some methods to add vertices and edges to the skeleton in VIZMO.

  • Monday
    • Worked on my website by changing the format to better show pictures
    • Worked on allowing the skeleton to be able to select individual edges or vertices
    • Looked into how roadmap and query selected their nodes
    • Went to CiCi's pizza

  • Tuesday
    • Continued to add pictures to the website
    • Finished my "About Me" with my bio and profile picture
    • Updated my LinkedIn page
    • Continued to work on outlining the edges and vertices
    • Played with my roommate's Oculus Rift

  • Wednesday
    • Got the vertices to highlight
    • Showed the vertex descriptors on the skeleton
    • Continued to research how roadmap and query added and removed elements

  • Thursday
    • Worked on Website
    • Fixed a bug that didn't highligh and edge yellow when you selected it
    • Started researching what we could use from NodeEditDialog to add and remove elements

  • Friday
    • Worked on the website
    • Tried to add a vertex to the skeleton
    • Tried to use only position sliders when working with NodeEditDialog
    • Wrote up the weekly report

  • Goals for Next Week
    • Add a vertex to the skeleton
    • Remove an edge from the skeleton
    • Remove a vertex from the skeleton
    • Add a edge to the skeleton
    • Edit elements of the skeleton

Week 6
July 3 - July 7

This week was kind of short since I had my family reunion this week. We were able to add a vertex to the skeleton and check it in before I left and Kiffany was able to add an edge by the end of the week.

  • Monday
    • Worked on my Website
    • Worked on how to add a vertex to the skeleton.
    • Ensured that a method to finalize the add could be used for the roadmap as well as the skeleton

  • Tuesday
    • 4th of July Holiday

  • Wednesday
    • Finalized adding the vertex to the skeleton and checked it in
    • Went over the things needed to complete with Kiffany and Mukulika
    • Packed up my things to leave after work

  • Thursday - Friday
    • Family Reunion in California

  • Goals for Next Week
    • Remove an edge from the skeleton
    • Remove a vertex from the skeleton
    • Edit elements of the skeleton

Week 7
July 10 - July 14

This week was a really good one! We were able to finalize most of the visualizations of the skeleton into Vizmo and we finished our week by working on our poster. I believe that next week we are going to be working on using the infrastructure we created to try and run tests on if our approach can yield results. During the week, I was also able to update my resume and CV.

  • Monday
    • Worked on my website
    • Worked on adding an edge to the skeleton
    • Worked on adding intermediate edges into the skeleton

  • Tuesday
    • Continued to finalize adding intermediate edges
    • Ensured that new edges were selectable
    • Ensured that old edges were removed
    • Worked on specific coloring of edges and vertices

  • Wednesday
    • Continued to work on specific coloring of the skeleton
    • Got the specific coloring of the graph to work
    • Finalized the coloring and checked in the code
    • Began to work on the poster

  • Thursday
    • Continued to work on poster
    • Nearly finished the first third of the poster

  • Friday
    • Continued to work on the poster
    • Began working on our approach for the poster
    • Included reference work

  • Goals for Next Week
    • Finalize the poster
    • Update personal website
    • Work on connected the skeleton and the motion planning software

Week 8
July 17 - July 21


Week 9
July 24 - July 28


Week 10
July 31 - August 4


Contact Me

Parasol Home | Research | People | General info | Seminars | Resources  

Parasol Laboratory, 425 Harvey R. Bright Bldg, 3112 TAMU, College Station, TX 77843-3112 
parasol-admin@cse.tamu.edu      Phone 979.458.0722     Fax 979.458.0718 

Department of Computer Science and Engineering | Dwight Look College of Engineering Dwight Look College of Engineering | Texas A&M University
Privacy statement: Computer Science and Engineering Engineering TAMU
Web Accessibility Policy and Law - Web Accessibility and Usability Standards  -   Contact Webmaster