PolarRobotics / PolarRobotics/PR-ESPIDFCodebase
Characterize Motor RPM
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 9
- Forks
- 1
- Avg merge
- 14m
- Merged PRs (30d)
- 3
Description
Background
The Sabretooth motor controller doesn't have a linear motor percent (pwm value being sent)/RPM relationship, the curve is more exponential. There are a few methods of solving this issue:
- Completely ignore it and assume 100% power in either direction is the maximum rpm of the motor accounting for the gear ratio.
- Another method (which has been performed) is to test by sending a series of motor power commands to the sabretooth and record the rpm (after the motor has reached speed) and plotting this to create a curve and use the curve fit function in excel, using the equation of the curve to be able to convert from a motor percent to an expected RPM value and vice versa
Goal:
there really isn't a goal here, because either method is going to produce similar results, but having a better estimate of what the motors are doing in code will help the turning algorithms and potential closed loop control, which has been deemed as "not worth it"
Subtasks:
- Create a new function to handle the conversion from rpm to motor power in motorControl. Needs to handle different motor characteristic curves based on motor type
- Get encoders on Runningback
- do power sweeping text on falcon 500 motors
- graph and generate curve fit for falcon 500
- add curve fit for falcon 500 to percent2prm and rpm2percent
- add encoders to a bot with small motors
- do power sweeping test on small motors
- graph and generate curve fit for small motors
- add curve fit for small motors to percent2prm and rpm2percent
- input of rpm, output of power percentage
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating motorControl and the existing percent2prm and rpm2percent functions. Review the encoder and motor hardware setup for Runningback, Falcon 500 motors, and the small motors, then determine which power sweeps and measurements are available. Done means measured curves are fit and the conversions support the relevant motor types, including RPM-to-power input.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- embedded-iot, robotics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100