Post #19
Reflections
Francesca
Most Fun: Working with the team to try to debug and solve problems. This is most enjoyable and fullfilling teamwork experience throughout my entire undergrade experience. I look forward to working with them everytime I come to class. This course experience would be completely different without them.
Most Useful: Definitely knowledgable TAs (shout out to Vinitha and Noah) and helpful team members (ROS God Markus, 3D printing and UI God James, Manager God Sylvia). They helped me a lot in making sure I can progress through my part of the project. I learned so much such as learning how to communicate with team members, asking questions as soon as I am stuck for 30 minutes. I change from someone who spent 6 hours trying to run one node and its interface, to creating my own Deep Perception node and connect it to the UI. I become more confident working with ROS because of their help.
Not so useful: Some tutorials like the MoveIt! Basics (lab 10) is not very useful. I think it doesn't work.
Missing: Labs and assignments contents are not released in advance. It is a class that requires a lot of time management. If we get to know at least the assignments two weeks in advance towards the end of the course, we would be able to better prioritize our time and finish the assignments on time. Another thing is we do not have a tutorial on how to set up a node from scratch. There's a big leap from lab 7 (web interface) to lab 8 (perception). I think having an github link to some example code of a node would be helpful transition from lab 7 to lab 8.
James
Most Fun: I truly enjoyed the combination of computer science and mechanical engineering present in this project. It was a lot of fun designing modifications for the walker, 3d printing the modifications, testing how Stretch could interact with them through teleop, and then writing the code to have it happen autonomously.
Most Useful: The TAs made a huge difference in the class experience. Without them, we would have struggled even more with the hello robot codebase.
Not Useful: Many of the tutorials are provided as the way to do something on the robot. Then later we would be told that the code we had implemented following the tutorials was incompatible with the code from future tutorial. It would have been nice to receive a high level tutorial at the beginning with what type of code is compatible on the robot. This would have saved us lots of time, instead of having to scrap most of our implementation midway through the quarter.
Missing: This course absolutely needs the entire course schedule posted from the start of the quarter. Since the pacing changes so dramatically week to week, it was almost impossible to stay on top of the class work and budget time for preping for future deadlines. One week, an assignment wasn't released until the day before it was due, which caused us to waste multiple days waiting for the next thing to do. We also had no clear idea what we needed to accomplish by the end of the quarter so it was hard to tell at times if we were making sufficient progress or not.
Markus
Most Fun: In all my work as a computer scientist at the Allen School, I think there's very few things which are as rewarding to get working as a robot, especially Stretch. It's so challenging, and to finally see the robot do what we wanted was extremely rewarding. Even though we may not have a 100% success rate, seeing the robot finally be able to drive up to the walker and grab that sucker after a full quarter of work is super fun and never gets old.
Most Useful: Having mentorship from TAs with Stretch experience. We ran into many issues when writing our stretch code, and thankfully Vinitha had seen many of these issues before and was able to provide suggestions for how to get around these issues.
Not Useful: Unfortunately, much of the given code from hello robot and the tutorials linked were not very helpful. Somehow much of the hello robot code (for example aruco detection) did not work out of the box which was unfortunate. Also, we lost a lot of time trying to get the MoveIt and FUNMAP tutorials to work, and then integrate them into our solution, which ended up being a wasted effort because we could not constrain them to get the robot close to the poses we wanted. Even our final solution, which uses stretch_navigation for 2d navigation around the room, still fails often because of failures with stretch_navigation, rather than the code which we wrote.
Should Have Been Useful: Maybe for next quarter, provide some custom code snippets to help people with things such as moving the robot with teleop (while running stretch driver, which requires the move_to_pose function rather than the methods given by the first tutorial) and how to do a transform in ROS. Our group will happily provide some snippets from our project (or our whole repo) if it would be helpful to students in the next quarter.
Sylvia
Most fun: It was really cool to work with a real industry-setting robot in this capstone and worked on something that could potentially make a positive impact to improve people's lives. I had tons of fun learning and implementing different components for a project whose solutions were driven by a robot. I previously took AI-Based Mobile Robotics with Dieter Fox at UW and got familiar with many low-level algorithms used in Robotics, and it was great to see how I could build a project related to assistive robots from a higher-level perspective. I also enjoyed talking to our knowledgeable TAs (big thanks to Vinitha and Noah!!!) and getting to know more about their work in Robotics.
Most useful: Some of the labs and assignments are pretty useful and very relevant to what we have to do for our project. I personally think that ROS tutorials, RVIZ tutorials, Aruco Marker tutorials, and Stretch Navigation Stack are super helpful. RVIZ was a lifesaver and we had been using RVIZ to debug most of our issues!
Not so useful: Some tutorials were outdated such as the Polymer library. MoveIt! was broken and did not function. We had a lot of frustrations dealing with the environment setup at the beginning of the class. I understand that not everything is perfect, but the Stretch robot often has hardware constraints and the provided algorithms such as FUNMAP and stretch navigation stack did not work very well for us. We often needed to find alternative approaches to solve certain problems by looking into the source code of HELLO ROBOT or modifying the source code.
Missing: I really appreciate all the help by our instructor Maya as well as our TAs and I've learned a lot from them. However, the course structure felt a bit disorganized and since all the labs were released on Tuesday, we only had a day to complete our assignments. I like that we had flexible deadlines, but we had been constantly catching up with assignments because we didn't have enough resources or didn't know what our next assignment was. Some labs were not tested so when we tried to work on them, they often had errors or didn't work :( We had to spend a lot of time trying to get the lab working before we were able to start working on assignments. Furthermore, we were only given a few weeks to implement our project and there was a huge jump starting from week 6 lab content to week 7 lab content, which was a bit overwhelming at first.