Makerspace Papers[Introduction]

What’s up, it’s Makerspace from Belton Texas Team #6646. Throughout the past 4 months, I have developed multiple mathematical algorithms and whatnot. These are mostly programming with some engineering, but they entail mathematics that physical engineers might like.

My team really wants me to write explanations for them in a clear and concise manner also XD

I’m not doing a poll because I want to ask two questions:
What paper would you guys like to see first?
And what other topics would you guys like to me to talk about?

Current Topics:

  • Squarification - The derivation of a more elegant polar equation for a square and how it is used to employ more advanced joystick controls.
  • Better Differential Drive Algorithm for Single Joystick Use because WPLibs sucked really bad-Legitimately, when my team used WPIlib’s algorithm, they had to reduce the speed in half because it was unweildable. When I made a custom algorithm, they could go full speed and still maintain control.
  • Autonomous Robot Control Language - simple autonomous language with varying levels that is so easy that even engineer could program autonomous.
  • Margin of Error Calculations(See the draft at :How fast should drivetrain odometry be updated?)
  • Acceleration Limitation - How to limit damage
  • Automatic Subroutine for individual parts that still allows the rest of the robot to function independently under use control or autonomous with multithreading
  • Duck tape: Chronicles of our bashed robot and having to go immediately(still ended up in first place with two really good teams)
  • Programming education under stupid firewalls- What do to when learncpp and other is blocked, but battle.net games isn’t on your school wifi and you don’t have a hotspot. And the bureaucracy is too slow or strict :frowning:
  • Ad-hoc engineering - Things that work but probably shouldn’t. Adventures of a programmer attempting engineering.
  • Program Architecture - How to structure code. How to refactor monster code.
  • Alternative programming setups- Microsoft is evil because Edge is justt internet explorer with extra steps, and thus the reason one might want to break from VScode and most importatly, how to do so.
  • Sensible Hyperoptimization And Ultraoptimization - Have your code run at the speed of light while still maintaining debugability. And how to optimize it within it’s parent language to the fullest with maintaining and sacrificing organization.
  • MakerspaceLib - Documentation and whatnot.
  • Robotics Error Correction Codes and File formats I have made.
  • A theoretical robot malware that will never happen because it takes too long to make and most robots don’t get close enough: In other words: Why WPILIB should allow passwords to push robot code. (Pondered this before the outbreak)
  • Heart of Programming: Skills and concepts beyond programming languages.
  • Robot Rampage Theory - (I never programmed this but was wondering how one could do such and the theory does seem sound)
  • Input Output Theory
  • Driving - Tips and tricks.
  • Bare Metal-Why we developed programming languages and operating sytems in the first place.
  • Linux - :slight_smile:
2 Likes

I’m sure the WPILib team would greatly appreciate it if you could provide feedback on why their algorithm didn’t work and what steps you took to “improve” it. That way, it will end up helping a lot of other teams as well.

8 Likes

This is perfectly doable, you can put a password on the roborio, and have it be supported by GradleRIO without too much trouble. However, if someone has network access already that can do so much more even if that is done. Field is already blocked from connecting to other robots anyway.

3 Likes

Since many people currently do not have access to FRC hardware for programming, I think a paper on how to use various FRC libraries on non-FRC hardware (maybe a Raspberry Pi) would be interesting.

I’ll be releasing the paper at some point and hopefully WPIlib will integrate the code. It would be an honor to be honest XD

I am not intending to brag, but my team was surprised at the difference that it made in the robot’s capabilities. I even applied it to last year’s robot and yeah, by mere software, the entire capabilities of the robot were heavily augmented.

1 Like

One can only hope those wpilib people see the error in their ways.

18 Likes

I’d read your paper on these topics. We’re always looking for ways to better map robot behavior output to driver joystick input.

This is the method we’ve been recently using to map the square single-joystick input space onto the arcade/differential output space:

1 Like

As someone who lives in the land of vim (and sometimes doom emacs) I would love to hear your take on breaking from vscode for frc use. My current solution is to run vscode in a docker container which feels a little better. I also know microsoft supports language servers (how vscode run under the hood afaik) which you can use with other text editors but Ive always found thag documentation intimidating.

Maybe 900 can really stick it to those WPI guys, show 'em how they should be using ROS for their toasters. :wink:

1 Like

They take pull requests, even from me.

Thought it was going to be toaster firmware for a second…

Actually hold on, I know a guy.

When will wpilib add support for toaster drive? After all, it’s only a matter of time, seeing as COTS solutions are already on the market.

I’m going to write a paper eventually detailing it, the plugin, YouCompleteMe is used. And I wrote a really simple"ycm_extra_confgs.py" python script to turn a list of compiler flags in the gradle buid/ directory into an array that would be passed into the plugin

Like vscode, for WPIlib autocomplete to work, you must have gradle build so the dependencies can be loaded.

Of course, you need the FRC project, so if you do not have a 202X project, then you need the plugin to generate it. This is especially needed since the template contains the gradle code for uploading code to the robot itself.

If I was nto graduating, I would have made a github with all the templates for C++ and Java projects for next year’s WPIlib so all you would have to do is download those templates. To add vendor libraries, well, all vscode does is automate that for you, you just need to get the dependency files and whatnot.

YCM also parses gradle/maven projects for Java pretty well although I have not tested WPIlib on it :slight_smile:

I will be writing those papers first :slight_smile:
Squarification is first. I believe it might have some mathematical novelty as it derives a method for a polar equation in a way I have not heard of. Hopefully someone fromm the AMS or something could look at it eventually.

I’ll post these paper in a google-site so it will be easy to access. Unfrotunately, I do not know if anyone else in makerspace will be willing to continue, nor has the programming or mathematical masochism(kinda prasing but mostly dissing myself on that lol) to come up with new algorithms ect.

Not having to interact with vscode to make a robot project would be nice, because that’s the only thing that doesn’t fit well into alternate editor workflows. (I’m obligated to say the following would all be unofficial and unsupported by the WPILib development team.)

There’s no need to host any files separately on GitHub and risk them becoming out of date. You could easily grab all the files you need from the following locations using Python’s requests API. The robot code templates are in the wpilibcExamples and wpilibjExamples folders at GitHub - wpilibsuite/allwpilib: Official Repository of WPILibJ and WPILibC. The Gradle build system files are in folders at vscode-wpilib/vscode-wpilib/resources/gradle at main · wpilibsuite/vscode-wpilib · GitHub. cppdt and javadt are for desktop-only builds in each language, and cpp and java are for desktop-roboRIO dual builds. You’ll need shared as well for either language.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.