Refactor Project Structure
Total Project Structure Refactor
Improve code efficiency
- create a child class from mindprobe client to add an additional layer of functionality
- give the client the responsibility of handling data
- place all controller classes, sensor classes and ROS service classes in arrays that are created when the client is initialized
- write all msgs to the robot on the ros loop interval, to minimize the number of msgs being sent
- pass the data directly to the sensor data publishing classes from the listener (rather than collecting from the buffer on interval)
- replace setter/getter with reader/writers to fit new structure.
Clean up project
- add in black python formatter
- add in flake8 python linter
- update readme documentation
- moved some general functions from mp to utils
- moved listener to its own file
- moved resources files into hv_bridge
- added
__init__.py
files
Implement correct formatting for lidar data
- now using global sick scan data
- must be converted to char string before parsed to float
- TODO: may be possible to make more efficient by adding in a special case handler in the get tlv methods
Start implementing improved error handling
- add
try
/except
to most functions
- passing most errors up to main function
- TODO: add in error handling for specific functions and errors
- using traceback to show where in code error occurred
implemented initialization modularity and launch files
-
hv_bridge launch file to launch the robot to ROS connection with all features enabled
-
harvey launch file to launch the robot to ROS connection with all features enabled as well as the harvey demo code
-
teleop launch file to launch only the robot control functions enabled as well as the hv_teleop function