This fork of the Dynamixel SDK adds support in python for using a websocket client as a port instead of a serial port. This makes it possible to use WiFi to control your dynamixels. However, it requires the dynamixels to be connected over half-suplex serial to a WiFi-enabledcontrol board (such as an ESP32) that uses a websocket server to relay the comms to and from connected motors. I am developing such a board and will link to it here when it is available.
The Arduino sketch that works as the websocket server is available here:
https://github.com/nsted/websocketServerForSmartServos
To use simply define your port as:
portHandler = PortHandler("ws://yourServerURL:portnum")
portHandler = PortHandler("ws://192.168.1.22:80")
Send binary with:
portHandler.writePort([byte1,byte2,...,byteN])
This feature is used by the Dynamixel SDK with calls such as:
packetHandler.write1ByteTxRx(portHandler, id, ADDR_TORQUE_ENABLE, TORQUE_ENABLE)
You can also send text with:
portHandler.writePort("my message here")
This is useful if you want to handle other commands on the server such as requests for sensor data.
The ROBOTIS Dynamixel SDK is a software development kit that provides Dynamixel control functions using packet communication. The API is designed for Dynamixel actuators and Dynamixel-based platforms. For more information on Dynamixel SDK, please refer to the e-manual below.
DynamixelSDK supports various programming languages.
- C: *Dynamic library and source code of this library and examples
- C# / Java / MATLAB / LabVIEW: Support based on dynamic library using C language
- C++: *Dynamic library and source code of this library and examples
- Python: Python module and examples (_ Dynamic library (_.dll, _.so, and _.dylib files) / .dll: dynamic-link library on Windows / .so: shared object on Linux / .dylib: dynamic library on MacOS)
For more information on ROS Packages for Dynamixel SDK, please refer to the ROS wiki pages below.