Rx line of some of the Roboclaw motor drivers are not working

asked 2017-02-18 09:49:25 -0500

naveen-b gravatar image

updated 2017-02-18 10:25:05 -0500

System description:

There are four roboclaw motor drivers (R1, R2, R3, R4) which are being controlled by Nvidia Tegra processor. Two (R1, R2) are 2x30a and others (R3, R4) are 2x7a. R1 and R2 are connected to the processor via a USB hub and are controlled by two independent nodes(R1_node and R2_node). R3 and R4 are commanded by a single node (R34_node) which are also connected to the same USB hub via a UART to USB converter. A launch file launches R1_node, R2_node, and R34_node.

Issue:

Upon launching the launch file, one or two of R1_node and R2_node don't spawn successfully. The unnsuccessful spawning doesn't occur if I launch any one or two of the three nodes. This only occurs only sometimes when three nodes are launched together. The unsuccessful spawning is because when a command is sent to the roboclaw and if no acknowledgement is received from it, a runtime error is issued (written in our header file). When this error was being issued, the controller corresponding to the unspawned node was commanded using a python driver. Commands which read data from the motor driver (say, ReadTemp, ReadEncM1) doesn't work. However, any command which commands the motor driver (say ForwardM1) are working. So, the issue is: when I spawn all the three nodes together, some of the roboclaws' Rx line is not being read by the processor.

Also, the three USB connections are visible in /dev.

Any quick help with this issue would be greatly appreciated.

Note: The node/nodes which don't spawn is changing randomly within R1_node and R2_node. R34_node is always successfully spawned.

edit retag flag offensive close merge delete