{ "info": { "author": "Caelan Garrett", "author_email": "yijiangh@mit.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering" ], "description": "=================\npybullet_planning\n=================\n\n\n\n.. Write project description\n\n**pybullet_planning** is a suite of utility functions to facilitate robotic planning related research on\nthe `pybullet `_ physics simulation engine.\nPlanning research made easy.\n\n\nMain features\n-------------\n\n* easy-to-use functions to connect with pybullet, tailored for task and motion planning research\n* built-in implementations of standard motion planners, including PRM, RRT, biRRT, A* etc.\n\n\nGetting Started\n---------------\n\n**pybullet_planning** can be installed using ``pip``:\n\n::\n\n pip install pybullet_planning\n\n\n.. note::\n\n On Windows, you may need to install `Microsoft Visual C++ 14.0 `_, if pybullet installation fails.\n\nOnce the installation is completed, you can verify your setup.\nStart Python from the command prompt and run the following:\n\n::\n\n >>> import pybullet_planning as pp\n\n\nFirst Steps\n---------------\n\n* `Documentation `_\n\nExamples can be found at the `unit tests `_.\nYou will be need to install ``pytest`` to run these tests (``pip install pytest``).\n\nThen, individual tests can be run by using their `pytest markers `_ by:\n\n::\n\n pytest -s -m collision_fn --viewer\n pytest -s -m motion_planning_2D --viewer\n\nAdditional pytest-free examples can be found at `pybullet_planning_tutorials `_.\n\nContributing\n------------\n\nCheck the `Contributor's Guide <./CONTRIBUTING.rst>`_ for more details.\n\nPyBullet Resources\n-------------------\n\n* Github - https://github.com/bulletphysics/bullet3\n* Quickstart - https://docs.google.com/document/d/10sXEhzFRSnvFcl3XxNGhnD4N2SedqwdAvK3dsihxVUA/\n* Forum - https://pybullet.org/Bullet/phpBB3/\n* Wordpress - https://pybullet.org/wordpress/\n* Examples - https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/examples\n* Bindings - https://github.com/bulletphysics/bullet3/blob/master/examples/pybullet/pybullet.c\n* Predecessors - `pybullet-planning`_, `motion-planners`_.\n\nCredits\n-------------\n\n Caelan Reed Garrett. PyBullet Planning. https://pypi.org/project/pybullet-planning/. 2020.\n\nThis package was initiated and maintained by Caelan Garrett `@caelan `_\nand other `contributors `_.\n\nHistory\n-------------\n\nThis repo is a stable and documented fork of Caelan's `pybullet-planning`_\n(previously called `ss-pybullet`) and `motion-planners`_.\nNew features will continue to be introduced first through these separate repos, and integrated into the current package later.\n\n.. _pybullet-planning: https://github.com/caelan/pybullet-planning\n.. _motion-planners: https://github.com/caelan/motion-planners\n\n\nChangelog\n=========\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on `Keep a Changelog `_\nand this project adheres to `Semantic Versioning `_.\n\nUnreleased\n----------\n\n**Added**\n\n**Changed**\n\n**Fixed**\n\n**Deprecated**\n\n**Removed**\n\nKnown Unresolved Issues\n-----------------------\n\n- `get_body_collision_vertices` does not support cloned body now. We don't have a good way to do catch-throw for this now.\n- Cloning body from an already cloned body introduces unexpected result (visual or collision data erased etc).\n\n0.6.0\n----------\n\n**Added**\n- Added `distance_threshold` to `pairwise_link_collision_info` and `pairwise_link_collision` to allow collision checking given a penetration threshold\n- Added `sweep_collision_fn` to `birrt` to allow sweep collision check in edge expansion\n- Added `coarse_waypoints` to the `smooth_path` function to give options for use refined shortcut to ensure collision-free results.\n- `LOGGER` introduced to replace `print`\n- Added `get_data_filename_and_height` to include cached mesh filename and scale from `get_model_info`\n- Added `CreateVisualArray` and `CreateCollisionArray` for `visual_shape_from_data` and `visual_shape_from_data`. We use the new `get_data_filename_and_height` when file_name is `UNKNOWN_FILE`.\n- Added `load_pybullet` support for `stl` files by `create_obj`.\n- Added `get_body_collision_vertices` for getting body collision vertices in its current configuration.\n\n**Changed**\n- Apply `HideOutput` to pybullet IK error printouts in `inverse_kinematics_helper`\n- ``motion_planners`` module up-to-date with commit `e6f23053e `_.\n- Changed the mesh reading procedure in `vertices_from_data` from `pp.read_obj` to `meshio.read`. This fixes #9.\n- `smooth_path`'s `max_iterations` argument changed to `max_smooth_iterations`\n- 'set_color' defaulted to set the color of all the links of body.\n- `vertices_from_data` get filename and **scale** from cached `INFO_FROM_BODY` (through `get_data_filename_and_height`) if the data's filename does not end with `.urdf`\n\n**Fixed**\n- Fixed `read_obj` returns empty dict if obj file does not start with objects (``o object_name``)\n- Fixed `get_extend_fn(q1,q2)` to include `q1` in its output path. This bug was causing incorrect planning result in birrt, because the two trees will have a gap in the middle that is unchecked.\n- Fixed a minor mesh vertex scaling bug in `vertices_from_data`\n- catch `get_num_joints(body) == 0` when a rigid body without joint and link are passed to `clone_body`\n- clear `INFO_FROM_DATA` when `disconnect` or `reset_simulation`\n\n0.5.1\n----------\n\n**Added**\n- Added `current_conf` to as the single-node ladder in the ladder graph Cartesian planning `plan_cartesian_motion_lg`\n\n**Changed**\n- Changed `Attachment.from_data` to construct parent and child bodies from body name data\n- Changed `EdgeBuilder` from using `upper_tm` and `joint_vel_limits` to directly using `jump_threshold`\n\n0.5.0\n----------\n\n**Changed**\n\n* Changed doc theme to sphinx-rtd-theme, doc hosted on readthedocs\n* Changed `motion_planners` to keep updated with https://github.com/caelan/motion-planners\n\n**Added**\n\n* Added `SE3` floating body motion planning\n* Added ladder graph cartesian planner\n\n**Removed**\n\n* Removed `requirments.txt`, moved dependencies into `setup.py`\n\n0.1.1\n----------\n\n**Fixed**\n\n* Fixed Windows OS \"Display not in os.environ\" issue in `connect`\n\n\n0.1.0\n----------\n\n**Added**\n\n* diagnosis collision checking function to help visualizing the collision bodies' information\n* add `workspace_bodies` to the `get_collision_fn` to check collisions with the obstacles specified in a URDF file.\n* move `ik_interface` module from application side to this repo, since it's \"universal\" for fixed-end robot. Might need to add a separete one for robots with moving base later.\n* enable travis ci unit test, collision_fn well tested\n* `get_floating_body_collision_fn` to check a body without joints's collision. Associated test added.\n* Added `snap_sols` to `kinematics.ik_utils`\n\n**Changed**\n\n* add `extra_disabled_collisions` parameter to `get_collision_fn`, `plan_joint_motion`\n* Changed `get_name` to return name without index if name is not `''`\n\n**Removed**\n\n* `get_collision_diagnosis_fn` removed, integrated into the `get_collision_fn`\n\n**Fixed**\n\n* `utils.numeric_sample.randomize`: `random.shuffle` cannot operate on a `range` in py 3.x. Enforced conversion to `list` to fix it.\n* Fixed `get_collision_fn` to ignore checking between bodies both specified in attachment and obstacles (prioritize its role as attachment)\n\n**Deprecated**\n\n**TODO**\n\n* add body name for bodies from `create_obj`\n\n**Requested features**\n\n* `clone_body` work for bodies from `create_obj`\n\n\n0.0.1\n-------\n\n**Added**\n\n* Initial version\n* Divide the original `utils.py` file into separate modules\n* Modules cycle dependency resolved.\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yijiangh/pybullet_planning", "keywords": "robotic planning,pybullet", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "pybullet-planning", "package_url": "https://pypi.org/project/pybullet-planning/", "platform": null, "project_url": "https://pypi.org/project/pybullet-planning/", "project_urls": { "Homepage": "https://github.com/yijiangh/pybullet_planning" }, "release_url": "https://pypi.org/project/pybullet-planning/0.6.0/", "requires_dist": [ "numpy", "scipy", "pybullet (>=3.1.7)", "imageio", "ghalton", "recordclass", "psutil", "meshio (>=4.3.11)", "termcolor" ], "requires_python": "", "summary": "a suite of utility functions to facilitate robotic planning related research on the pybullet physics simulation engine.", "version": "0.6.0", "yanked": false, "yanked_reason": null }, "last_serial": 13116363, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "78af384a847b4a7b4f4bbf583b35df73", "sha256": "b8d46699440ea09424b428643cbbeba597421f06c95222ae25d387c2c7fecbd6" }, "downloads": -1, "filename": "pybullet_planning-0.0.1.tar.gz", "has_sig": false, "md5_digest": "78af384a847b4a7b4f4bbf583b35df73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72400, "upload_time": "2019-10-23T21:24:47", "upload_time_iso_8601": "2019-10-23T21:24:47.500017Z", "url": "https://files.pythonhosted.org/packages/4a/ec/eaee984b76afc2368d9e35bf7f6d7d8df57c57d9689865f7fdb822aabc7b/pybullet_planning-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "31bb8b26ed76a0c6a617b344928b62b1", "sha256": "f309c10e2b571b1c3f79f196f3b2a36bf7c09aff405c0ffa573a4d920843ce13" }, "downloads": -1, "filename": "pybullet_planning-0.1.0.tar.gz", "has_sig": false, "md5_digest": "31bb8b26ed76a0c6a617b344928b62b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4392139, "upload_time": "2019-11-14T16:46:06", "upload_time_iso_8601": "2019-11-14T16:46:06.159128Z", "url": "https://files.pythonhosted.org/packages/f5/c9/73ab010d3ea6ed8ca638f9cedeb1d173288cf0370ba724b9baf511b9dfc1/pybullet_planning-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "2003591ea26cbb00c6a628b1c503dbc1", "sha256": "7f7fc7058edb851bc9ca1194c93cd6c4e969df2e13ef09965519a061cc37ac4b" }, "downloads": -1, "filename": "pybullet_planning-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2003591ea26cbb00c6a628b1c503dbc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4394964, "upload_time": "2019-12-26T03:34:31", "upload_time_iso_8601": "2019-12-26T03:34:31.954455Z", "url": "https://files.pythonhosted.org/packages/89/1d/d0f539fd6ea24d29d3bccbb71870bd91ac20d7792db7ac91315a3ede93e4/pybullet_planning-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "5efec401e4f1b393befb8f5037004f9c", "sha256": "dd52e51081c6176995c41b5e9a071e854dadd290ada0b59e9da7dd78aacb7368" }, "downloads": -1, "filename": "pybullet_planning-0.5.0.tar.gz", "has_sig": false, "md5_digest": "5efec401e4f1b393befb8f5037004f9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8167762, "upload_time": "2020-05-08T18:58:03", "upload_time_iso_8601": "2020-05-08T18:58:03.705278Z", "url": "https://files.pythonhosted.org/packages/a6/e0/4a183f92a8bd1605a2e869f9258d044d191186f7f539d12b4a9f18905f67/pybullet_planning-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "4ee91aee2f5ba4063f4173c64be1aa3f", "sha256": "313ecd289351e98ff7f0793dcc1951941e481f8aa19d2168c344ceb853d4c585" }, "downloads": -1, "filename": "pybullet_planning-0.5.1.tar.gz", "has_sig": false, "md5_digest": "4ee91aee2f5ba4063f4173c64be1aa3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8168315, "upload_time": "2020-10-28T16:16:10", "upload_time_iso_8601": "2020-10-28T16:16:10.204287Z", "url": "https://files.pythonhosted.org/packages/37/54/df1c62ce84d4735084130f5b76d03946cc24b85bdb52dbe2daa2366b14ac/pybullet_planning-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "18fded096d9260fad6ee4bb2244f0d52", "sha256": "3dc63d4af3fd2bf59f39ee8301375dbaf7d596e5fa2ba70e001539dfc572c1c1" }, "downloads": -1, "filename": "pybullet_planning-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "18fded096d9260fad6ee4bb2244f0d52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 131274, "upload_time": "2022-03-08T18:59:03", "upload_time_iso_8601": "2022-03-08T18:59:03.261233Z", "url": "https://files.pythonhosted.org/packages/1a/0c/eaaf7dc1b4f5472c0345a2557ab99bddeb395ebe06c01666880296b9fb1e/pybullet_planning-0.6.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "71af573798cf2ae54d5170dd33c1b98c", "sha256": "a42e71e6a89146a1ef436c3050fc1094877ef2204e18128a5920742123e9f463" }, "downloads": -1, "filename": "pybullet_planning-0.6.0.tar.gz", "has_sig": false, "md5_digest": "71af573798cf2ae54d5170dd33c1b98c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 411603, "upload_time": "2022-03-08T18:59:05", "upload_time_iso_8601": "2022-03-08T18:59:05.555665Z", "url": "https://files.pythonhosted.org/packages/bc/b2/7382d429cfa489001aa8131f46a6ef2d7647d4eb088b929677e9a566b7ac/pybullet_planning-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "18fded096d9260fad6ee4bb2244f0d52", "sha256": "3dc63d4af3fd2bf59f39ee8301375dbaf7d596e5fa2ba70e001539dfc572c1c1" }, "downloads": -1, "filename": "pybullet_planning-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "18fded096d9260fad6ee4bb2244f0d52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 131274, "upload_time": "2022-03-08T18:59:03", "upload_time_iso_8601": "2022-03-08T18:59:03.261233Z", "url": "https://files.pythonhosted.org/packages/1a/0c/eaaf7dc1b4f5472c0345a2557ab99bddeb395ebe06c01666880296b9fb1e/pybullet_planning-0.6.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "71af573798cf2ae54d5170dd33c1b98c", "sha256": "a42e71e6a89146a1ef436c3050fc1094877ef2204e18128a5920742123e9f463" }, "downloads": -1, "filename": "pybullet_planning-0.6.0.tar.gz", "has_sig": false, "md5_digest": "71af573798cf2ae54d5170dd33c1b98c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 411603, "upload_time": "2022-03-08T18:59:05", "upload_time_iso_8601": "2022-03-08T18:59:05.555665Z", "url": "https://files.pythonhosted.org/packages/bc/b2/7382d429cfa489001aa8131f46a6ef2d7647d4eb088b929677e9a566b7ac/pybullet_planning-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }