{"id":17984941,"url":"https://github.com/rdspring1/cs393r","last_synced_at":"2025-04-04T02:21:45.098Z","repository":{"id":11186570,"uuid":"13565545","full_name":"rdspring1/cs393r","owner":"rdspring1","description":"Autonomous Robots Assignment 4","archived":false,"fork":false,"pushed_at":"2013-12-09T04:16:14.000Z","size":1032,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-09T13:43:48.217Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/rdspring1.png","metadata":{"files":{"readme":"README.txt","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}},"created_at":"2013-10-14T15:45:07.000Z","updated_at":"2018-06-25T16:39:57.000Z","dependencies_parsed_at":"2022-09-02T13:40:48.406Z","dependency_job_id":null,"html_url":"https://github.com/rdspring1/cs393r","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/rdspring1%2Fcs393r","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdspring1%2Fcs393r/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdspring1%2Fcs393r/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdspring1%2Fcs393r/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rdspring1","download_url":"https://codeload.github.com/rdspring1/cs393r/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247108342,"owners_count":20884881,"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":[],"created_at":"2024-10-29T18:23:28.613Z","updated_at":"2025-04-04T02:21:45.078Z","avatar_url":"https://github.com/rdspring1.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"README - CS393R Final Project\nRyan Spring\nEdaena Salinas\n12/5/2013\n\n----- KickModule Functions -----\n/// Initializes the joint angles used to balance the robot\nvoid initJointAngles();\n/// Initializes the pressure values for each of the 4 foot regions - front, back, left, right\nvoid initFeetSensorValues();\n/// Sums the pressure values of the given foot region on the left foot\n/// If the given region is Front, the function will add the value of the top left and top right pressure sensors of the foot\nfloat sumFsrs(FootSensorRegion r);\n/// Determine if any of the foot sensors are not on the ground\nbool footSensorHasValues();\n/// Set the Left and Right Hip Pitch joint angles to a valid angle\nvoid setHipPitch(float newXAngle);\n/// Set the Left and Right Hip Roll joint angles to a valid angle\nvoid setHipRoll(float newYAngle);\n/// Returns the Hip Pitch Joints to their regular stand values using PID control\nvoid uprightPitchController();\n/// Returns the Hip Roll and Ankle Roll Joints to their regular stand values using PID control\nvoid uprightRollController();\n/// Modify Hip Pitch Joint Angles to balance the robot based on feet pressure\nvoid footPitchBalance(float x_error, float d_x);\n/// Modify Hip Roll and Ankle Roll Joint Angles to balance the robot based on feet pressure\nvoid footRollBalance(float y_error, float d_y);\n/// A Process Frame function used to execute a step\nvoid processFrameForStep();\n/// A function that dynamically generates a step for the robot alternating the center of mass depending on the type of step\nKickParameters* kickParamsGenerator(KickParameters * kp, float distance, bool forward, bool rightleg);\n/// A function that resets the Hip and Ankle controllers after executing a step\nvoid resetBalanceValues(); \n/// Determine the Joint Angles from the Sensor\nvoid getSensedAngles();\n/// Update the previous joint angles with the command angles for the current process frame\nvoid updatePreviousAngles();\n/// Generates the size of the step to prevent the robot from following using the position and velocity of the center of mass\nfloat stepBalance();\n\n----- p2Task1 Python Function ----- \nThe python code executes a stand command and waits a few seconds before activating the stand balance functions.\nIn addition, the python code works in conjunction with the c++ code to complete the step action. The stand command in the c++ command\ndoes not execute with the stand balance functions active so the workaround is to execute stand command in the Python code. The c++ stand\nbalance functions reactivate after the Python stand command executes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdspring1%2Fcs393r","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frdspring1%2Fcs393r","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdspring1%2Fcs393r/lists"}