neomanic / odrive_ros

ROS driver for the ODrive motor drive
Other
72 stars 48 forks source link

Port to C++ #3

Closed neomanic closed 6 years ago

neomanic commented 6 years ago

Python is slow! Port it to C++!

It's fast enough for our (very slow) robot, so this is extremely low priority and not on our radar anytime soon.

milano-technical-intern commented 5 years ago

Why is this closed? @neomanic

Besides is not C++, I think is slow because you are overloading the odrive_node. I removed all the calculations except the velocity commands, and I got rid of the delay of 3 seconds I was getting in just moving the motors. It may be better to split the odrive_node in multiple nodes.

Best,

neomanic commented 5 years ago

It's closed because I'm not going to port it myself, particularly given there's no C++ version of the fibre client library. A port to C++ wouldn't actually reduce any latency significantly anyway, it would just result in improved CPU utilisation.

I'm not seeing this 3 second delay here, and we require the odometry to feed into our SLAM. Note you can disable this and all the other extra calculations via parameters, if you don't want to modify the source. (If doing that does break things, then file an issue and I'll take a look.)