Although we did not use motion profiling this year we did continue the development with our motion profiling tool. We had started programming this tool last year (2018) when we had decided that we wanted to pursue motion profiling and we had cobbled it together just enough to generator the paths however the paths had some but very little relationship to the field. During this season (2019) we realized that we were doing our math for our angle calculations wrong. With this in mind, we decided to do a full rewrite of the code. The full rewrite of the code allowed us to add a lot of features to the code including direct profile deployment, 3rd derivative velocity control, path-based event/command system, and many more small changes. Although this program has not been fully tested we plan on testing and improving it over the summer and fixing any small bugs with it.
3rd derivative velocity control: Our program uses what is called 3rd derivative velocity control also known as jerk limited velocity control this is where we give our program a max velocity, max acceleration, and a max jerk (Jerk is defined as acceleration per second). Shown in the image below jerk applies a ramp up and a ramp down to acceleration and what is called an s-curve to the position graph.
Event Points: An event point is a point along our path that we generate that allows the roborio to detect that there is an action that should happen when it reaches that distance. With special code, we can detect when we reach the set distance and we can fire a command to execute things that we need to be done while we are driving.
To obtain an event point middle click on the middle path and put in any word or character to represent this action into the state part of the event point viewer.
Reverse Points: This program allows us to make points where the robot will instead of turning around it will just reverse to get to that point.
To obtain a reverse point right click on where you would like the robot to start reversing.
Profiles Viewer: In the program there is a special box where you can view what profiles are currently deployed on the roborio and when they were last modified.
Direct Profile Deployment: When your roborio ip address has been correctly entered into the settings you can set your profile name and click the large deploy button which will put the profile directly onto the roborio in a specified directory.
RoboRio Profile Loading: If you click on one of the motion profiles that shows up in the profile viewer it will load that file directly from the roborio to eliminate the need of passing around a usb drive with the motion profiles on it.
While there are a lot more features to this motion profiling tool the rest of them are not really special and they don’t need explaining. To view or to download the motion profiling code/tool you can go to our github and download it or clone it. If you have any questions about the tool please let me know.