Software

The only place in the shop where 1+1=10

It turns out, Coding is hard…..

Well, only if you do it foolishly. But this is sometimes hard to avoid. When one gets super excited about coding, such as myself, one can start typing faster than their brain can think. This happened to us a few times. The problem wasn’t so much our code being messy, but the way in which the coding process happened. Here is how the common problem cycle developed:

1) Hardware would tell software about what the current design is.

2) Software, in their genius, would magnificently code it

3) Software would inform electrical what their needs are

4) Electrical does something.

5) Hardware informs software that the design has radically changed, and most of software’s code is now obsolete.

Programmers

More monitors than programmers

Somewhere in there testing would occur. Normally, this shouldn’t cause too much of a headache, but communication between teenagers is never optimal. One of the three departments would eventually be living in a fantasy land, and cause the project to be halted because their stuff no longer works.

For software, the easiest defense against this is a reversion system, such as SVN or Git. In the beginning, I made the executive decision that this was unnecessary. We used Dropbox because we only need a common set of code across the computers at school. But then, literally in the middle of the night, the robot started to misbehave after a new feature was being implemented. The entire software team had been working on the same code, so we had no idea what the problem was. It caused high tensions.

Thankfully, out of necessity, I had a clean copy of code on my flashdrive, because I needed a convenient way of transferring the code to a computer that did not have internet. We used this as a template.

We then developed a primitive reversion system: anytime code was in a stable, template-able state, we placed it in “cold storage” either on the Dropbox, or for more major revisions, on my flashdrive. This way, if we ever need to go backwards, we could just use one of the previous copies.

I learned my lesson, and so did my entire department. After hours of debugging and figuring out what we were doing on the pratice bot, we finally got an autonomous that works!

 

Posted in Build Blog, Software |

Pain, Sweat, and lots of Sensors

Software at Work (Week 4)

Well, it’s week 4, and the code is in the most fantastic position it has ever been in. Ever. Previous years, the software team was limited to one or two people, furiously trying to code all of the motors and few sensors we had. They struggled to implement a fully functional PID control system to smooth out the drive train during autonomous. The main reason they struggled is because they had about 2 days to test everything.

This year, things are severely different.

Continue reading

Posted in Build Blog, Software |

New Year, New Season, New Software Team

HAPPY NEW YEAR!

It’s a new year, Kickoff is just around the corner, and the Crusaderbots are ready to set the ball rolling.

Especially, the Software team.

My name is Shivani, and I am the leader of the Software  Department for this FRC season. My role involves well, precisely what the title insinuates, Software; I am responsible for overseeing the training of rookies in the Software Department and the successful programming of the team’s robot.

During training season, we attempted to try something different, and encourage rookies interested in Software by conducting a series of Java workshops. The workshops involved a rigorous curriculum of object-oriented programming concepts and basic Java syntax. I was delighted to see the sizable number of workshop attendees and substantial amount of interest in learning how to programming.

As the competition season begins, I am excited to begin working with my new Software team. Alongside the Mechanical and Electrical Departments, we are greatly anticipating kickoff this Saturday. In the mean time, we are preoccupied with the reform of our code revision control system. Currently, we are using a web-based file hosting service known as Dropbox to store our code, but although we can archive code, we only have access to the latest copy; any information on who made certain changes or when a file was accessed are all irreclaimable. However, with the largest software team in the history of Crusaderbots, it is of utmost importance that our Software team be able to identify logical errors at individual access points. Installation of a Git hub or central repository, and individual clients on the robotics shop machines will soon be underway.

Our team’s new organization, outreach, and training efforts display prospect for an efficiently paced, well managed, and FUN build season. I can’t wait for it all to begin!

See you all at kickoff!

Shivani Negi

Posted in Build Blog, Software |