Currently the driver is two massive classes with various functions, and it's not clear how different components relate to each other (if at all). I think it would be a good idea to see if it would work to break interactions out into their own classes, potentially as subclasses of some base abstract class which provides some universally required objects (e.g. the robot connection).
There might be potential benefit in this of being able to run these components in their own thread and thereby increasing the potential data throughput of odometry and other messages, which right now feels like it might be bottlenecked by having a single main loop.
Currently the driver is two massive classes with various functions, and it's not clear how different components relate to each other (if at all). I think it would be a good idea to see if it would work to break interactions out into their own classes, potentially as subclasses of some base abstract class which provides some universally required objects (e.g. the robot connection).
There might be potential benefit in this of being able to run these components in their own thread and thereby increasing the potential data throughput of odometry and other messages, which right now feels like it might be bottlenecked by having a single main loop.