{ "info": { "author": "Hugo Ponte", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# dxl_py\nSimple python wrapper over the [Dynamixel API](https://github.com/ROBOTIS-GIT/DynamixelSDK).\nAllows commanding and receiving positions for an arbitrary number of servos.\n### Use\n\nCreate a config dictionary with one entry per servo:\n```\nMY_SERVOS_CONFIG = {\n 'test_servo': {\n 'id': 1, # Servo ID\n 'model': 'mx', # Servo model tag, one of 'MX' or 'PRO'\n 'min': 0, # Minimum position (MX servos go from 0 to 4095)\n 'max': 4095, # Maximum position\n },\n ...\n}\n```\nCreate the servo object using your config dictionary.\n```\nfrom dxl.servos import Servos\nmy_servos = Servos(config = MY_SERVOS_CONFIG, action_bounds = [-1.0, 1.0])\n```\nSet the servo position. The `action_bounds` kwarg determines how actions relate to positions. An action of 1.0 here\nsets the position of the servo to `4095`.\n```\nmy_servos.set({'test_servo' : 1.0, ...})\n```\nGet the servo position.\n```\nmy_servos.get(['test_servo', ...])\n```\n### Setup\n\nClone the DynamixelAPI repo into the desired directory. Install into your desired python environment (consider using [Anaconda](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)).\n```\n$ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git .\n$ cd DynamixelSDK/python/\n$ pip install -e .\n```\nThe wrapper can be installed as a pip package:\n```\npip install dxl_py\n```\nThis repo uses `MX-28` model dynamixel servos connected via USB through a [U2D2](http://www.robotis.us/u2d2/).\nAfter connecting the device, check it exists (the name might be different from the one below):\n```\n$ ls /dev/ttyUSB*\n/dev/ttyUSB0\n```\nNow configure and add a custom udev rule using the `fix_udev.sh` script. You might need to reboot.\n```\n$ sudo ./fix_udev.sh\n```\nIf we check the devices again we should now see the dynamixel device.\n```\n$ ls /dev/dynamixel\n/dev/dynamixel\n```\nConnect a servo with `id=1` and run the test with `python -m unittest`.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/HugoCMU/dxl_py.git", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "dxl-py", "package_url": "https://pypi.org/project/dxl-py/", "platform": "", "project_url": "https://pypi.org/project/dxl-py/", "project_urls": { "Homepage": "https://github.com/HugoCMU/dxl_py.git" }, "release_url": "https://pypi.org/project/dxl-py/0.1/", "requires_dist": null, "requires_python": "", "summary": "Dynamixel SDK Python Wrapper", "version": "0.1" }, "last_serial": 4829171, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "6d85dda7dce02804f7abf866eef7ce27", "sha256": "a97a995832dd921d32fbe5bcfe5266f4fd2b10ecaadfab1966c4790973feb1f3" }, "downloads": -1, "filename": "dxl_py-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6d85dda7dce02804f7abf866eef7ce27", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10033, "upload_time": "2019-02-16T16:44:32", "url": "https://files.pythonhosted.org/packages/f9/7a/cbade1b7f9fa2bccfc9bce11b468c614c63e9ab8fc8140759e2d0d6b1661/dxl_py-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1851b2f6a96147fe44e4f624b73b4ca9", "sha256": "44b0bbc9525fdfaf8b6fa2b4e013dfe6fe52c0c67e6631e98356c7e550b239e8" }, "downloads": -1, "filename": "dxl_py-0.1.tar.gz", "has_sig": false, "md5_digest": "1851b2f6a96147fe44e4f624b73b4ca9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4711, "upload_time": "2019-02-16T16:44:36", "url": "https://files.pythonhosted.org/packages/a3/33/e5ebffb7944af444b36bdfb1c8e3d4f0cb9cfabc4bbd52805d1c5761a7b5/dxl_py-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6d85dda7dce02804f7abf866eef7ce27", "sha256": "a97a995832dd921d32fbe5bcfe5266f4fd2b10ecaadfab1966c4790973feb1f3" }, "downloads": -1, "filename": "dxl_py-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6d85dda7dce02804f7abf866eef7ce27", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10033, "upload_time": "2019-02-16T16:44:32", "url": "https://files.pythonhosted.org/packages/f9/7a/cbade1b7f9fa2bccfc9bce11b468c614c63e9ab8fc8140759e2d0d6b1661/dxl_py-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1851b2f6a96147fe44e4f624b73b4ca9", "sha256": "44b0bbc9525fdfaf8b6fa2b4e013dfe6fe52c0c67e6631e98356c7e550b239e8" }, "downloads": -1, "filename": "dxl_py-0.1.tar.gz", "has_sig": false, "md5_digest": "1851b2f6a96147fe44e4f624b73b4ca9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4711, "upload_time": "2019-02-16T16:44:36", "url": "https://files.pythonhosted.org/packages/a3/33/e5ebffb7944af444b36bdfb1c8e3d4f0cb9cfabc4bbd52805d1c5761a7b5/dxl_py-0.1.tar.gz" } ] }