
#13217
TEAM CODO DRAGONS
What to Expect:
The FTC Software Experience





Software is one of the most integral parts of a successful robot within the FIRST Tech Challenge (FTC). The software team is responsible for programming commands during the driver control period as well as mapping out and coding the autonomous portion of the game. This blog will discuss some of the road bumps and learnings our software team has found.
Teamwork is better than independent work.
According to software member Alex Mathew, working as part of a team helps to bring multiple perspectives into the picture. “We each bring in our own wide variety of solutions and we keep asking questions [to each other]” Alex shared. When confused, software members had their fellow team members to reach out to and communicate with to move beyond their issues. Working as a team has also let the software subteam split up tasks into smaller groups. For example, our team had two members working on odometry while the other two worked on object detection, ensuring that every task was addressed.
Organization is key.
Software member Hanav Modasiya believes that having a strong organization system makes collaboration, splitting up work, and asking questions even easier. “Our collaboration resides through online software such as group chats on Google to file sharing on Google Drive and GitHub” Hanav shared. In addition, members of the software subteam create a list of tasks that they wish to accomplish at the start of every meeting to make sure that they are staying organized and focused.
With the start of odometry-based control in our 2023-2024 season, collaboration has become an even more important aspect for team Codo Dragons. In a nutshell, odometry is the tracking of a robot’s movement throughout the field via odometry pods that measure the estimated change in position over time. This technology is especially useful during the autonomous period, when simply telling the robot to move for five seconds can be unreliable with the varying battery levels and field obstacles.
One of the primary struggles our software team faced within odometry was the tuning aspect. PID, which is the part of tuning that makes sure the robot is in the correct orientation and moves if not, has been quite difficult. This is because many hardware aspects may cause the robot to drift a little, like weight imbalance or loose wheels. The software fix is possible but is a somewhat complicated process that calls for specific tuning variables like the bot size, type of wheel/motors, and position of odometers.
Start small and understand the fundamentals of the software.
A key takeaway from this experience is to start small and understand the fundamentals of software rather than jumping into it. Much of the software team took time to look into the specific engineering principles behind a PID controller. This knowledge has been incredibly useful for the subteam while programming, as they have a better idea of what to expect and are therefore more effective at debugging.
Find your resources
Every programmer will inevitably reach a bug that they just can’t seem to resolve. In such a case, finding the appropriate assistance can be extremely useful. Alongside having experienced mentors on our team, inter-subteam sharing and Road Runner documentation have been extremely helpful. In addition, the unofficial FTC discord has served as a valuable resource for not just our team but for many other teams worldwide seeking assistance.
The software experience is difficult but fun.
Before the start of our team’s participation in the FIRST Tech Challenge, our knowledge within the sphere of robotics-related software was limited. Since then, all of our members have worked hard to understand the basics of software and the software subteam specifically has put in hours to understand the encoders, sensors, odometry, machine learning, and other aspects related to the robot and challenge. Working together, staying organized, and learning new information at every step have proven to be a somewhat difficult yet fun and exciting process for our software subteam members, and a process that our software members look forward to with passion.