Skip to content

Compatibility with Ubuntu 20.04

Brian Zenowich requested to merge feature/ubuntu2004 into devel


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.




What issues does this fix?

Edited by Amy Blank

Merge request reports