Sunday, April 5, 2015

Mentor Post: 2014 Lessons Learned

Last year was a struggle for me as a mentor in a lot of ways. I did not know the team, I did not know the robotics platform and frankly I was used to control of hardware that did what it was supposed to do when it was sent a command.

However, I thought the team did very well last year. As the youngest team in the competition they still placed very well. This year, with the team coming back for a third time and with one year under my belt, I expect us to do even better.

One of the key things we are doing early this year is taking stock of what we learned at last year's competition and working to improve in those areas. If you are an iARoC mentor or team you may benefit from what we learned as well.


  • Physical structure of the robot 
    • One of the things that became apparent late in our development cycle was that the placement of our ultrasonic sensors on the outside base of the robot was ill conceived. It made the robot wider and the jutting sensors would catch on the wall and turn the robot. We plan to review the placement of the sensors and mount them where they will still work but will not interfere in the free movement of the robot.
    • Our robot's functionality was also limited because we never permanently mounted the phone that controls the robot. This prevented us from being able to use the phone's gyroscope and accelerometer features. We are looking at 3D printing as a possible way to permanently mount the phone as well as a way to improve the overall look of the robot.
  • Robot concept
    • I was struck by the creativity of the teams in naming and designing their robot's look and image. Our team didn't even have a consistent robot name when the competition started. This year I have emphasized the need to come up with a "brand" and "product" strategy. I hope this helps the team focus and gives them some flair in their presentation at the competition. I am encouraging this by having them consider the robot's physical design and also design of other team items like T-Shirts.
  • Coding Practices
    • Last year, just ahead of the competition, one of the team members changed his coding preferences in his IDE and attempted to commit his code. The resulting merge, under pressure was a nightmare. This year I will have the team agree on a coding standard and stick with it. We will also be working on our git skills and doing more code reviews in class.
    • Beginning programmers tend to write all their code in very large classes with many very large methods. A lot of our class focus over the past year has been on object oriented principles like encapsulation and inheritance. I am expecting the team to bring these skills into the competition this year. I am hopeful that this will allow them to be more productive especially when things get busy during robot week.
  • Movement
    • As beginning programmers last year the team through about robot control in a very linear fashion. I am hoping to introduce more parallelism into the process this year. One example of this is through the basic robot movement. Last year's code base was broken into forward motion and turning. Some parallelism was introduced in the data recovery mission. Last year one robot completed the survey route mission and one came very close. Both teams used a move one space and reorient strategy. I am hopeful that we will see several teams complete the mission this year, as such I think it will be important for time that the team achieve a continuous motion through the survey. In addition this will be important because it will reduce the errors systemic in rotating while stopped using the Create platform. We will be attempting to develop a spline navigation technique to optimize continuous motion through the route. With the addition of the sensors from the phone I believe that continuous accurate motion is achievable by the team.
  • Claim Mineral Resources Strategy
    • This mission received very little attention from the team last year. Coming up with a strategy for this mission is very difficult. If time permits I hope to introduce evolutionary programming to the team to solve this problem. This will allow the team to combine simple parameterized strategies and test them using simulation to determine which have the highest likelihood of a win.
The team may decide to focus on other areas, as the mentor my job is to present these ideas and facilitate them. I will continue to stress good coding practices, teamwork and communication but leave the decisions about the design and development of the robot.

No comments:

Post a Comment