Metadata-Version: 2.1
Name: compas-fab
Version: 0.10.0
Summary: Robotic fabrication package for the COMPAS Framework
Home-page: https://github.com/compas-dev/compas_fab
Author: Gramazio Kohler Research
Author-email: gramaziokohler@arch.ethz.ch
License: MIT license
Keywords: robotic fabrication,digital fabrication,architecture,robotics,ros
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: IronPython
Classifier: Topic :: Scientific/Engineering
Requires-Dist: compas (<0.12,>=0.11)
Requires-Dist: roslibpy (>=0.7)
Requires-Dist: pyserial

============================================================
COMPAS FAB: Robotic Fabrication for COMPAS
============================================================



**Robotic fabrication package for the COMPAS Framework** that facilitates the
planning and execution of robotic fabrication processes. It provides interfaces
to existing software libraries and tools available in the field of robotics
(e.g. OMPL, ROS) and makes them accessible from within the parametric design
environment. The package builds upon `COMPAS <https://compas-dev.github.io/>`_,
an open-source Python-based framework for collaboration and research in
architecture, engineering and digital fabrication.


Main features
-------------

* Multiple backends for simulation and execution (e.g. `ROS: Robot Operating System <https://ros.org>`_)
* Planning tools: kinematic solvers, path planning, etc.
* Execution tools: feedback loops, robot control, etc.

**COMPAS FAB** runs on Python 2.x, 3.x and IronPython 2.7.


Getting Started
---------------

The recommended way to install **COMPAS FAB** is to use `Anaconda/conda <https://conda.io/docs/>`_:

::

    conda install -c conda-forge compas_fab

But it can also be installed using ``pip``:

::

    pip install compas_fab


.. note::

    On Windows, you may need to install
    `Microsoft Visual C++ 14.0 <https://www.scivision.co/python-windows-visual-c++-14-required/>`_.


Once the installation is completed, you can verify your setup.
Start Python from the command prompt and run the following:

::

    >>> import compas_fab


First Steps
-----------

* `Documentation <https://gramaziokohler.github.io/compas_fab/>`_
* `COMPAS FAB Examples <https://gramaziokohler.github.io/compas_fab/latest/examples.html>`_
* `COMPAS FAB API Reference <https://gramaziokohler.github.io/compas_fab/latest/reference.html>`_
* `COMPAS Examples <https://compas-dev.github.io/main/examples.html>`_
* `COMPAS API Reference <https://compas-dev.github.io/main/api.html>`_


Questions and feedback
----------------------

We encourage the use of the `COMPAS framework forum <https://forum.compas-framework.org/>`_
for questions and discussions.


Contributing
------------

We love contributions!

Check the `Contributor's Guide <https://github.com/compas-dev/compas_fab/blob/master/CONTRIBUTING.rst>`_
for more details.


Releasing this project
----------------------

Ready to release a new version of **COMPAS FAB**? Here's how to do it:

* We use `semver <https://semver.org/>`_, i.e. we bump versions as follows:

  * ``patch``: bugfixes.
  * ``minor``: backwards-compatible features added.
  * ``major``: backwards-incompatible changes.

* Update the ``CHANGELOG.rst`` with all novelty!
* Ready? Release everything in one command:

::

    invoke release [patch|minor|major]

* Celebrate! 💃

Credits
-------

This package is maintained by Gramazio Kohler Research `@gramaziokohler <https://github.com/gramaziokohler>`_
and a long list of `contributors <https://github.com/compas-dev/compas_fab/blob/master/AUTHORS.rst>`_


Changelog
=========

All notable changes to this project will be documented in this file.

The format is based on `Keep a Changelog <https://keepachangelog.com/en/1.0.0/>`_
and this project adheres to `Semantic Versioning <https://semver.org/spec/v2.0.0.html>`_.

0.10.0
----------

**Added**

* Added ``attach_tool``, ``detach_tool``, ``draw_attached_tool``, ``from_tool0_to_attached_tool`` and ``from_attached_tool_to_tool0`` to ``Robot``
* Added ``attach_tool`` and ``detach_tool`` to ``Artist``
* Added ``add_attached_tool`` and ``remove_attached_tool`` to ``PlanningScene``
* Added redraw/clear layer support to `RobotArtist` for Rhino
* Added material/color support for DAE files on ROS file loader

**Changed**

* Changed ``inverse_kinematics``, ``plan_cartesian_motion`` and ``plan_motion`` to use the attached_tool's ``AttachedCollisionMesh`` if set

**Removed**

**Fixed**

* Fixed mutable init parameters of ``Configuration``, ``JointTrajectoryPoint``, ``JointTrajectory`` and ``Robot.basic``.
* Fixed interface of `RobotArtist` for Blender
* Fixed DAE parsing of meshes with multiple triangle sets

**Deprecated**

0.9.0
----------

**Added**

* Added ``load_robot`` method to ROS client to simplify loading robots from running ROS setup.
* Added ``compas_fab.robots.Wrench``: a Wrench class representing force in free space, separated into its linear (force) and angular (torque) parts.
* Added ``compas_fab.robots.Inertia``: a Inertia class representing spatial distribution of mass in a rigid body

**Changed**

* Updated to COMPAS 0.11

0.8.0
----------

**Changed**

* Updated to COMPAS 0.10
* Add better support for passive joints on IK, Cartesian and Kinematic planning

**Fixed**

* Use WorldXY's origin as default for robots that are have no parent join on their base
* Fixed parsing of semantics (SRDF) containing nested groups
* Fixed DAE support on ROS File loader

0.7.0
----------

**Changed**

* Fixed Python 2 vs Python 3 incompatibilities in ``compas_fab.sensors`` module
* Changed example for loading PosConCM (includes parity argument, differs from PosCon3D)
* Changed format ``compas_fab.sensors.baumer.PosConCM.set_flex_mount()``
* Changed tasks.py to run ``invoke test``
* Renamed ``compas_fab.backends.CancellableTask`` to ``compas_fab.backends.CancellableFutureResult``
* ROS client: changed joint trajectory follower (``follow_joint_trajectory``) to support generic ``JointTrajectory`` arguments.
* ROS client: changed return type of trajectory execution methods to ``CancellableFutureResult``

**Added**

* Added ``compas_fab.sensors.baumer.PosCon3D.reset()``
* Added ``compas_fab.sensors.baumer.PosConCM.reset()``
* ROS client: added support for MoveIt! execution action via ``client.execute_joint_trajectory``.
* Added ``compas_fab.backends.FutureResult`` class to deal with long-running async tasks

**Removed**

* Removed ``compas_fab.sensors.baumer.PosConCM.get_live_monitor_data()``
* Removed non-implemented methods from ``compas_fab.robots.Robot``: ``send_frame``, ``send_configuration``, ``send_trajectory``

**Fixed**

* Fixed missing planner initialization when used without context manager.

0.6.0
----------

**Changed**

* Updated ``COMPAS`` dependency to ``0.8.1``
* Base robot artist functionality moved to ``compas.robots.RobotModel``
* ``Robot``: ``inverse_kinematics`` returns now group configuration
* ``Robot``: ``forward_kinematics`` has new parameter ``backend`` to select either ``client`` FK or ``model`` FK.
* ``Robot``: ``forward_kinematics`` returns now ``frame_RCF``
* ``Robot``: ``forward_kinematics`` doesn't need full configuration anymore
* Fixed delays when modifying the planning scene of ROS.

**Added**

* Added ``jump_threshold`` parameter to ``plan_cartesian_motion``
* Added ``action_name`` parameter to reconfigure joint trajectory follower action.
* Added support to retrieve the full planning scene.

**Removed**

* Removed ``compas_fab.Robot.get_configuration``

0.5.0
----------

**Changed**

* ROS Client: renamed ``compute_cartesian_path`` to ``plan_cartesian_motion``
* ROS Client: renamed ``motion_plan_goal_frame`` and
  ``motion_plan_goal_configuration`` to ``plan_motion``
* ROS Client: removed methods from ``Robot`` that are now handled with
  ``PlanningScene``, e.g. ``add_collision_mesh`` and
  ``add_attached_collision_mesh``
* ROS Client: change the return type of ``plan_motion`` and ``plan_cartesian_motion``
  to the new trajectory classes.
* ROS File Server Loader: moved to ``compas_fab.backends`` package
* ROS File Server Loader: renamed ``load`` to ``load_urdf`` and sync'd API to other loaders.
* V-REP Client: renamed ``get_end_effector_pose`` to ``forward_kinematics``
* V-REP Client: renamed ``find_robot_states`` to ``inverse_kinematics``
* V-REP Client: renamed ``find_path_plan_to_config`` to
  ``plan_motion_to_config``
* V-REP Client: renamed ``find_path_plan`` to ``plan_motion``
* V-REP Client: changed ``is_connected`` to become a property
* Made ``robot_artist`` default ``None`` on ``Robot`` constructor
* Changed ``PathPlan`` class to use the new trajectory classes

**Added**

* Added ``scale`` method to ``Configuration``
* Implemented Constraints (``OrientationConstraint``, ``PositionConstraint``, ``JointConstraint``) to use with ``plan_motion``
* Implemented ``PlanningScene``, ``CollisionMesh`` and ``AttachedCollisionMesh``
* Added generic representations for motion planning requests (``JointTrajectory``, ``JointTrajectoryPoint``, ``Duration``)
* Added UR5 robot model data for example purposes
* Added several doc examples

**Removed**

* Aliases for ``Frame`` and ``Transformation``. Import from ``compas.geometry`` instead.

0.4.1
----------

**Fixed**

* Fixed missing library for V-REP on macOS

**Deprecated**

* The aliases for ``Frame`` and ``Transformation`` will be removed, in the future, import directly from `compas` core.

0.4.0
----------

**Added**

* Color parameter to Rhino robot artist

**Changed**

* Updated to COMPAS 0.4.10

0.3.0
----------

**Added**

* Deeper integration with MoveIt! motion planning services
* Added sync and async versions of many ROS service calls
* Added support for cancellable tasks/actions

**Changed**

* Renamed ``UrdfImporter`` to ``RosFileServerLoader``
* Updated to COMPAS 0.4.8

0.2.1
----------

**Added**

* Robot artist for Blender

0.2.0
-----

**Added**

* First open source release!
* V-REP and ROS clients
* Updated to COMPAS 0.3.2

0.1.0
-----

**Added**

* Initial version


