Lib7842 public code release

Hey everyone!

You may remember me from my time competing in VEX from 2017-2021. During this time, I was very active on VEXForum and Discord and working on many VEX programming projects.

Additionally, you may remember me from my 2018-19 robot showcase:

What is lib7842?

Since 2019, I have been working on a VEX PROS library called lib7842. It contains all sorts of motion algorithms and convenience classes for VEX programming.

The highlight of the library is an open-loop trajectory generation algorithm, which was developed from 2020-2021. I used it to place 6th in the 2021 worlds skills:

However, as I was nearing graduation, I made the decision NOT to release lib7842. This was for a couple reasons, the largest being I did not want teams to use it as an easy shortcut for an excellent autonomous, putting teams who write their own code at a competitive disadvantage. In other words, I didn’t want grade-9 me, who wrote everything myself, to be constantly beat by teams who use plug-and-play motion algorithms. OkapiLib exists, but it has a few fundamental flaws, limiting its potential.

Anyway, I have decided to finally release it. This was for a few reasons, including to beef up my portfolio, and also because I feel like the competitive advantage of teams using it will be limited. This is because many teams have begun work on their own alternatives, and also I have NOT documented the library or made a versatile user-facing API (although all things considered it is quite modular and clean). I find it unlikely teams will directly use it without learning to work on their own implementations.

I hope teams looking at the library can learn from its structure, style, and see what is possible for VEX robots. I also hope they are inspired to write their own implementations of the motion algorithms. I do not want teams to copy/paste the code or directly use for competitions.

Without further ado, here it is:

Additionally, I have a journal documenting various components here:

I should have released my journal in 2021 to help inspire other teams, but never got to it (other than a few links floating around). I also have a lot more documentation to write about my algorithms (especially x-drive profiling), but I will probably never get to it.

I’ve been absent from the VEX community for a couple of years now, mainly due to other life commitments. However, I am currently on QVEX, and will be coming to worlds this year! I didn’t get an award in 2021 worlds, despite 6th place finish and my algorithms/journal, so maybe we change that this year :slight_smile:

Anyway, thanks everyone for a great several years in VEX! Competing in VEX has changed my life, from teaching me advanced programming, giving me a love for math and engineering, helping me win a $100,000 scholarship for university, and connecting me with a large community of like-minded people. I’m excited to see what the VEX community innovates next!

- Theo

21 Likes

Additionally, here is my competition code, making use of the library.

10 Likes

Just a question:
Is this in PROS or Vexcode Pro? I can’t access GitHub, but if the code is in Vexcode Pro, I might try.

1 Like

Vexcode does not provide any library management tools, okapilib, and a sane API. Lib7842 would not be possible on Vexcode.

Note that I have not provided the library for people to “try”, it’s for people to learn by reading.

5 Likes

Thank you, I’m sure I will eventually have a look at it. I completely understand