Problem summary
One Dynamixel motor in the arm chain does not appear when instantiating the arm in PYLUOS. PyLuos only returns “void_dxl” when just this motor is connected. This motor was previously configured successfully, but disappeared for unknown reasons. All other motors in the chain still identify and can be controlled successfully.
Where is the problem seen?
- Physically connect the PyLuos modules (dxl and arm USB gate)
- Follow the procedure for setting up the Luos with Dynamixel
- Dynamixel is not discovered in the network
Luos setup procedure
Luos Boards are all flashed with the firmware that came with the Reachy Operating system and according to the instructions here: https://pollen-robotics.github.io/reachy-docs/docs/appendices/flash-luos-module/
Our test setup consists of one USB Gate Luos Board and a Dynamixel Luos Board. Power is provided from a 12V power supply and is connected with the Jack Power Input Luos Board. We are measuring the proper voltage levels at all boards.
We are also following the plug-in sequence as detailed here: https://docs.luos.io/pages/demo_boards/boards_list/dxl.html
Run in shell:
pyluos-usb-gate discover
to figure out which USB port the gate is connected to
Launch Python3
python3
Import Device from pylous package and create an object “device” with the correct USB port
from pyluos import Device
device = Device('/dev/ttyUSB1')
Print a list of the modules using:
device.modules
With a single dynamixel connected, the expected output should be as below. We should see that we can detect one dynamixel in the network with ID 1 and alias “dxl_1”
The problem:
- When we print device.modules, the expected value in the Alias column should be “dxl_1”, but instead it shows: “void_dxl”. This basically means PyLuos cannot see the motor.
- We can successfully communicate with the ‘problem’ Dynamixel via dynamixels Wizard2.0 software, and connecting via the U2D2 dynamixel dongle. The motor is controllable.
- All other motors work fine with both PyLuos and the Dynamixel wizard.
When did it start to fail?
It was working at first, and then we tried to connect to the motor via the u2d2 board and it didn’t connect with one computer. This is the only computer that doesn’t connect to the u2d2. In the middle of troubleshooting this problem, we tried probing the leads to verify that power was being delivered. While probing, there was a small short that occurred. However, using another computer to connect with the Dynamixel Wizard and u2d2 (which connected successfully), we could verify that all of the motors were present with their original configurations (baud rate, angle limits, etc.) After connecting with pyluos again, the one dynamixel in question is no longer visible. However, the other dynamixels are visible.
Troubleshooting attempts
None of these made any difference.
-
Swapped to a different power supply.
-
Swapped out different dynamixel wires
-
Re-flashed the Dynamixel luos board and the corresponding USB gate luos board
-
Performed a factory reset of the motor
-
Attempted dynamixel detection using : robot.void_dxl.dxl_detect()
Link: https://community.luos.io/t/i-cant-connect-to-my-dynamixel-servo-void-dxl/203
-
When using the dxl-util, the baud rate change (1,000,000 bps) is sent successfully to the dynamixel, but the util doesn’t receive a response. We can verify the changed baud rate with the wizard. Subsequent attempts by the util to communicate fail and the motor is not found.
Questions
- Is there some sort of setting on that dynamixel that needs to be modified or reset in order for it to get back to a known state?
- What information is the dxl-util writing to the dynamixels?