Challenges
We had a lot of challenges related to getting multi-Neato versions of our systems working correctly. Having to control two Neatos at once added extra steps to the development of each part of our system because not only did we need to make the system work for one Neato, after that we would have to go through a whole separate set of debugging steps to make the system work for two. This was especially a challenge for the localization subteam using the ros2 amcl package. The amcl particle filter worked just fine for one Neato, but when we tried to run it on a Neato using our multi-Neato script, it failed with timing errors. This extra step was challenging and was more of a setback that we originally assumed it would be at the beginning of the project.
We had a large team of six people for this project, which introduces risks of uneven work distribution and lack of communication between team members. Our strategy of splitting into three subteams of two people worked well despite these risks. We were able to effectively parallelize our work by splitting into the localization and machine vision subteams, which are very separate tasks that work well to parallelize. One challenge we faced with this is we didn’t integrate these two systems until the very end of the project, which can be risky. A downside of subteams is it makes it more difficult to work closely with people who are not on your own subteam, and we did feel a bit of a divide between the machine vision team and the localization/integration subteam. However, we did have regular all-team meetings throughout the whole project where we shared progress updates and reshuffled tasks when necessary.