I am running ROS kinetic on Ubuntu 16.04.3 LTS (and kernal name 4.13.0-32-generic). I am working with the dynamixel_workbench stack. Specifically, I have a MX-106, an MX-64, and another MX-64 daisy-chained.
When I read a motor state from only one motor, the rate is much faster than reading from all three daisy chained motors. **I want to speed up the publish rate of states for all three motors** so my graph of output are higher resolution.
For example, I've edited the dynamixel_workbench source code to read only torque and angular speed (in DynamixelState.msg, the only two message fields I have are present_load and present_speed. Accordingly, I edited multi_port.cpp so that I am only reading the Present_Load and Present_Speed ). When I rostopic hz, I see that he message rate is 15.62 hz. This is ok.
average rate: 15.625
min: 0.064s max: 0.064s std dev: 0.00003s window: 15
However, adding a daisy-chained motor slows this rate down a lot. With two motors now my rostopic hz rate is 7.8 hz.
average rate: 7.814
min: 0.128s max: 0.128s std dev: 0.00005s window: 8
Adding a third motor to the daisy chain, the publish rate becomes 5.2 hz! This is very slow. so when I try to look at rqt_graph it is jagged.
average rate: 5.209
min: 0.192s max: 0.192s std dev: 0.00004s window: 1017
I know there will be some inherent delays when daisy chaining the motors. Is there anything on the **software side** I can do to speed it up? Thanks!
↧