aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/library_encoder_thread'damic0142019-11-263-56/+102
|\
| * Got threading and SW limits working really well. Still might be some ↵Raspberry Pi2019-11-262-60/+77
| | | | | | | | shakiness on deinitialization (need to coordinate GPIO.cleanup with threads), but program does exit and return home normally. Swingup test now runs very smooth and SW limits were increased with the drastically improved response time. Pushing to merge back to master.
| * Modify test_System to verify that threaded encoder measurements are working ↵damic0142019-11-261-11/+3
| | | | | | | | as expected. Run this to check before actually running the system.
| * Add encoder measurements via thread. This should help with linear encoder ↵damic0142019-11-262-12/+49
|/ | | | | | | accuracy and SW interrupt accuracy. Coupled with changes from the interrupt enhancement branch, the limit behavior should be much improved. Added a parameter to allow user to set their own SW limit-reached routine (default behavior is still the same). This should also help prevent over-excursion in the swingup test. Slightly modified swingup test to use new SW limit-reached routine. This should help prevent the system from over-excursing when the soft limits of the program are reached. Theoretically the program shouldn't be able to hit the HW limits anymore.
* Merge remote-tracking branch 'origin/library_interrupt_flags'damic0142019-11-262-12/+17
|\
| * Fix indentation, add symlink for System folder. Seems to be working as ↵Raspberry Pi2019-11-262-1/+2
| | | | | | | | expected. Commiting to merge to master - will need more testing before we know if it's a perfect solution.
| * Add interrupt flags so that motor cannot be triggered once the HW interrupt ↵damic0142019-11-261-12/+16
|/ | | | | | has been fired. This should help with the occasional issue where the ISR thread is interrupted and moves back to the primary thread where movements continue. May need to add another line in adjust() that if interrupted==True then coast the motor (not sure what the ramifications of this would be though: if in the process of going home and thread switches back, it might not get all the way home...)
* Added Andy's new swingup code. New issues with physical system: rod bearing ↵Raspberry Pi2019-11-212-16/+380
| | | | keeps coming loose if the speed is changed too quickly, rod will hit base if swinging too near extents (need to cut wood on both sides to allow free swinging.
* Fixed file imports to work with working directory of server.Raspberry Pi2019-11-211-2/+2
|
* Merge branch 'master' of ↵Raspberry Pi2019-11-2112-0/+242
|\ | | | | | | https://github.umn.edu/damic014/ee4950-inverted-pendulum
| * requirementsDat Nguyen2019-11-211-0/+18
| |
| * changed to .csvDat Nguyen2019-11-213-3/+5
| |
| * Update Server.pyDat Nguyen2019-11-211-1/+3
| |
| * a bunch of placeholder filesDat Nguyen2019-11-214-2/+0
| |
| * tabs to spaces smhDat Nguyen2019-11-212-42/+59
| |
| * removed unnecessaryDat Nguyen2019-11-211-2/+2
| |
| * fixed spaceDat Nguyen2019-11-211-2/+3
| |
| * working web stuff with running pageDat Nguyen2019-11-2110-80/+91
| |
| * Update PI.pybutoi0012019-11-211-2/+6
| |
| * Web stuff semi workingDat Nguyen2019-11-2010-0/+189
| |
* | Rework directory structure. Modify result file printing to match ↵Raspberry Pi2019-11-2013-7/+11
| | | | | | | | requirements of web server.
* | Fixed encoder zeroing. Other minor changes, still trying to get the swingup ↵Raspberry Pi2019-11-194-44/+90
|/ | | | controller working. Not sure if the code is good enough to make it happen...
* Remove leftover files from a past merge.Raspberry Pi2019-11-164-673/+0
|
* Updated encoder to have an offset when zeroing (allows that initial zero can ↵Raspberry Pi2019-11-163-40/+47
| | | | be set to upright instead of hanging). Updated system to allow for different angular units to be used (passed by argument on constructor, then passed to encoder.read_position when used). Bug fixes to system_swingup_test. Swingup test now runs properly (and almost actually did a swing up at one point), couldn't keep testing because the system accidentally destroyed itself, so called it time to stop to let glue dry....
* Fixed some indentation issues and leftover from porting. Compiles and ↵Raspberry Pi2019-11-161-12/+12
| | | | potentially runs now.
* Merge branch 'master' of ↵Raspberry Pi2019-11-153-0/+832
|\ | | | | | | | | | | https://github.umn.edu/damic014/ee4950-inverted-pendulum Merge changes from Raspberry Pi testing with control code provided by Andy (created/modified on another computer).
| * Add Andy's swing up code to the Python library. Created a new file ↵damic0142019-11-143-0/+832
| | | | | | | | | | | | (system_swingup_test.py), which modifies the code from homework8.ipynb and swingUp.py to (potentially) run on our physical system instead of the simulator. Needs to be compiled and tested on the RPi, but theoretically all of the major components should be there. NOTE: Potentially should remove the gym imports; not sure if these will work on the RPi, might need to be replaced with something else.
* | A few more minor tweaks to initialization. Added public variables for linear ↵Raspberry Pi2019-11-141-7/+16
| | | | | | | | extent. Tested initialization on functioning system - it works!
* | Update initialize to not use wait_for_event for detecting limit switches. ↵Raspberry Pi2019-11-141-17/+26
|/ | | | Update linear encoder to reduce noisy behavior and properly keep track of position. NOTE: Linear encoder direction seems to be backwards relative to the system (the motor currently also moves in this direction). Not a big deal as long as the motor and linear encoder work together properly, but ideally positive would be to the right.
* Got limit switches working properly and tested. Got result file printout ↵Raspberry Pi2019-10-291-7/+9
| | | | working properly. Other minor issues from merge conflict.
* Resolved merge conflicts.Raspberry Pi2019-10-296-2/+807
|\
| * Add better limit handling to system: when a limit is triggered, return to ↵damic0142019-10-292-0/+54
| | | | | | | | | | | | | | | | | | | | the linear-zero position. Add an initialize function for startup: use the limit switches to find the track extent and then go to zero. With the above two additions, we should be able to assume that new tests will always start at the zero position. Also add an initialize file which just calls sys.initialize to find the zero position. This should only be run on power-up (eventually, we should configure the Pi to run this on OS startup).
| * Add interrupts for HW limit switches.damic0142019-10-171-4/+85
| | | | | | | | | | Add ability to add SW limits (challenge mode). Add result file reporting (currently using date-time for the test, which we can assume will be unique per test).
* | Measured linear movement from physical system. Slightly modified test_Motor ↵Raspberry Pi2019-10-152-11/+9
|/ | | | to test on physical system.
* Updated encoder for proper zero setting and offset behavior. Tested system ↵Raspberry Pi2019-10-154-78/+83
| | | | library and successfully got the encoder position controlling the motor speed.
* Add a linear encoder class for abstracting the angular-to-linear encoding, ↵damic0142019-10-151-4/+37
| | | | which will be based on the specs of the system. This is the basic implementation we've talked about, but there might be some issues still because the position is only read when we tell it, so keeping track of number of rotations might not be very accurate - will need to test and possibly brainstorm alternate ideas.
* Add System library and system test file. Still need to finalize some ↵damic0142019-10-135-8/+93
| | | | | | implementation details (linear encoder, motor orientation, etc.). Need to compile and test on RPi still. Convert naming in other libraries to follow Python naming scheme.
* Encoder classDat Nguyen2019-10-022-54/+84
|
* Delete Motor.pydamic0142019-10-011-67/+0
|
* Got encoder workingRaspberry Pi2019-10-011-11/+14
|
* Initial test_Encoder.pyDat Nguyen2019-09-271-0/+55
|
* Tested on RPi and minor changes to make it work.Raspberry Pi2019-09-242-13/+80
|
* Add motor test file. Add __init__.py to allow library imports.damic0142019-09-242-0/+23
|
* Added Motor classdamic0142019-09-231-0/+67
|
* Initial commitdamic0142019-09-192-0/+106