{"id":21555026,"url":"https://github.com/rnuv/vex-tower-takeover","last_synced_at":"2025-04-10T10:10:23.242Z","repository":{"id":50898853,"uuid":"193944512","full_name":"rNuv/vex-tower-takeover","owner":"rNuv","description":"Codebase for 750E in the 2019-20 VEX competition, Tower Takeover. Comes with an autonomous routine with 2D motion profiling, inertial sensor rotation and a PID controller.","archived":false,"fork":false,"pushed_at":"2023-06-15T07:07:12.000Z","size":545,"stargazers_count":5,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T09:03:10.046Z","etag":null,"topics":["cpp","motion-profiling","pid-controller","pros-cli","vex-robotics"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rNuv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-26T16:52:16.000Z","updated_at":"2024-05-23T16:20:05.000Z","dependencies_parsed_at":"2024-11-24T08:15:09.901Z","dependency_job_id":null,"html_url":"https://github.com/rNuv/vex-tower-takeover","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rNuv%2Fvex-tower-takeover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rNuv%2Fvex-tower-takeover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rNuv%2Fvex-tower-takeover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rNuv%2Fvex-tower-takeover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rNuv","download_url":"https://codeload.github.com/rNuv/vex-tower-takeover/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248198890,"owners_count":21063628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","motion-profiling","pid-controller","pros-cli","vex-robotics"],"created_at":"2024-11-24T08:00:39.882Z","updated_at":"2025-04-10T10:10:23.222Z","avatar_url":"https://github.com/rNuv.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VEX Tower Takeover\n\n## Description\nMy 2019-20 year of VEX Robotics saw more experience with more advanced code techniques and methodologies. The code in this repo shows off the programming that went into our robot for Tower Takeover. We switched to PROS this year and made use of the Okapilib to (hopefully) get a smoother and more accurate autonomous routine. With techniques such as motion profiling and odometry, our robot began to win more auton points and make our way into semifinals at States. \n\nSome fancy features I implemented to make our bot perform better...\n\n## 2D Motion Profiling\n\nThe OkapiLib has functionality for 2D Motion Profiling. Essentially, you can imagine the VEX field as a 2D coordinate plane and tell your bot to move to certain coordinates, and the methods will automatically calculate the motions neccessary to get there. It also allows for curvilinear motion, which is the coolest thing I've ever seen.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/motionprof.png\" width=\"580\" height=\"430\"\u003e\n\u003c/div\u003e\n\n## LVGL Library\n\nTo prevent having to reupload auton code for different sides of the field, I made a auton selector with the Little vGL library. This way, drive team can just select the auton they want right before the match starts. Plus, it looks so sick..\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/lvlgcode.png\" width=\"580\" height=\"430\"\u003e\n\u003c/div\u003e\n\n## V5 Inertial Sensor and PID\n\nWe somehow got to mess with the new V5 Inertial Sensor. With its crazy accuracy, our turning angles became monumentally precise. To complement the sensor, I made a PID (proportional, intergral, and derivative) controller to make turning astronomically consistent. In a nutshell, the bot calculates the angle left to turn as it turns (known as the error) and slows changes its speed proporional to that angle, so it slows down as it reaches its target. \n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/gyropid.png\" width=\"580\" height=\"430\"\u003e\n\u003c/div\u003e\n\n## Parabolic Stacking\n\nStacking was a huge part of this game. Going too fast could knock down the cubes and going too slow was just took too much time. I made the pusher motor move as a function of the motor's encoder position so that it follows parabolic behavior. Essentially, it slows down as it goes forward, getting the best of both worlds.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/parabolic.png\" width=\"580\" height=\"430\"\u003e\n\u003c/div\u003e\n\n## Technologies\n- ![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge\u0026logo=c%2B%2B\u0026logoColor=white)\n- Pros CLI (https://pros.cs.purdue.edu)\n- VEX Tower Takeover (https://vrc-kb.recf.org/hc/en-us/articles/9660927408407-VRC-History-2019-2020-Tower-Takeover)\n- PID Controller (https://en.wikipedia.org/wiki/PID_controller)\n\n---\n*Made with \u003c3 by Arnav, circa 2019*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frnuv%2Fvex-tower-takeover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frnuv%2Fvex-tower-takeover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frnuv%2Fvex-tower-takeover/lists"}