Compatibility with Ubuntu 20.04
Description
The main effort included:
- Python3
- Clang
- Update dependencies
- Allow WAM loop to run while reading BHand sensors
- Convert ex10 haptics visualization from vpython to OpenGL
- Base WAM loop on a (100x) more accurate timer_fd instead of sleep()
- More robust installation script
- Improve mutex handling for non-rt operation
- Offer Top10 tactile values from BHand for higher update rates
What to focus on
I am concerned about:
- Changes to matrix.h required for clang to understand what was going on with those crazy definitions. It works now, but I'll never understand why.
- I had to eliminate the std::terminate error callback. Clang just refused to support this. I think this callback might violate some new C++ standard.
- Removing over 80% of wamdiscover's code. I don't know if mfg uses all the fancy "mount remote drive" features, but that would have been a lot of code to port to Python3.
- I put the latest installation instructions on our support wiki, but I suspect we may want them included in libbarrett's README, too. Also, the instructions & scripts will need to be updated to pull from devel instead of feature/ubuntu2004.
- I tried to use standard libconfig instead of our custom-modified version. I still think it is possible, but I don't know enough about how the compiler allocates class private data to get a valid pointer into the memory we need to access. For now, it still requires our custom version.
- The WAM control smoothness is not perfect. It is no worse than it was with Xenomai (in my opinion), but I think it could be improved by setting the WAM control thread to a higher priority and re-evaluating whether the system mutexes AND the CAN mutexes are placed & working correctly to guard against loop time starvation.
Reviewers
Resources
Issues
What issues does this fix?
- Fixes #44 (closed), #39 (closed), #38 (closed), #33 (closed), #30 (closed), #17 (closed), #16 (closed), and possibly #29
- If we are officially abandoning Xenomai and/or Preempt_RT, then it fixes several more issues: #42, #43, #37, #36, and #25.
Edited by Amy Blank