Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
209 commits
Select commit Hold shift + click to select a range
8bbf8c9
Fixed a whole bunch of Sphinx errors, No more warning messages
yck011522 Dec 13, 2023
03f1646
Merge branch 'compas-dev_main' into fix_sphinx_warnings
yck011522 Dec 13, 2023
5a7916f
author
yck011522 Dec 13, 2023
87a8ebb
Merge branch 'retire_vrep' into fix_sphinx_warnings
yck011522 Dec 13, 2023
d5b3d35
add todo tag
yck011522 Jan 25, 2024
9cb9268
changed wording
yck011522 Jan 25, 2024
161c061
Cannot break list with a dot dot sphinx comment
yck011522 Jan 25, 2024
fd6562f
Still missing some underscore
yck011522 Jan 25, 2024
b2ae285
wip script to extract urdf
yck011522 Jan 30, 2024
302db5c
Merge branch 'compas-2.x-compat' into extract-urdf-from-xarco
yck011522 Feb 6, 2024
791531b
Refactor ros_connect.py to load URDF and SRDF using RosFileServerLoader
yck011522 Feb 6, 2024
99ac345
black
yck011522 Feb 6, 2024
4994d19
Extraction Script
yck011522 Feb 9, 2024
5c0edb9
docs
yck011522 Feb 12, 2024
6b01b21
renamed extraction script
yck011522 Feb 12, 2024
c14d79b
Introduce `RobotLibrary` Class with three robots
yck011522 Feb 12, 2024
e26cd34
Merge branch 'compas-2.x-compat' into robot_library
yck011522 Feb 12, 2024
bd1f58f
Merge branch 'compas-2.x-compat' into robot_library
yck011522 Feb 16, 2024
8d204c1
fix docs
yck011522 Feb 16, 2024
033a67a
black
yck011522 Feb 16, 2024
1d83bfa
update rfl using new compas_robot
yck011522 Feb 16, 2024
02d9b4f
Merge branch 'compas-2.x-compat' into robot_library
yck011522 Feb 16, 2024
f92fc0e
remove load test
yck011522 Feb 16, 2024
4ed1b37
Add UR10e robot
yck011522 Feb 19, 2024
7003959
Update CHANGELOG.md
yck011522 Feb 19, 2024
c394823
Update 03_robot_instances.rst
yck011522 Feb 19, 2024
3eacb31
Update robot_library.py
yck011522 Feb 19, 2024
712f163
Merge branch 'compas-2.x-compat' into robot_library
yck011522 Feb 20, 2024
b5712b2
Fix failed doctest
yck011522 Feb 20, 2024
7020942
Make nicer comments in the Script
yck011522 Feb 20, 2024
84c2ef7
Better Doc String for the RobotLibrary Class
yck011522 Feb 20, 2024
50d6835
Removed all mentions of compas.robot.ur5
yck011522 Feb 20, 2024
60277e1
Remove old UR5 and UR10e data files from `src/ compas_fab/data`
yck011522 Feb 20, 2024
ed630a8
Fix Doctest Failure
yck011522 Feb 20, 2024
188d356
Replace `ee_link` with `tool0` wherever possible
yck011522 Feb 20, 2024
f4c152b
changelog
yck011522 Feb 20, 2024
bcfb6ce
lint
yck011522 Feb 20, 2024
07111af
Fix IPY comparision error using string
yck011522 Feb 20, 2024
4428808
black
yck011522 Feb 20, 2024
7304f26
More timeout for connections to RosClient in doctest
yck011522 Feb 20, 2024
3f9cbaf
Prepare changelog for next release
gonzalocasas Feb 22, 2024
8774b7a
Trying to pass doctest more reliably
yck011522 Feb 22, 2024
db1f215
Merge branch 'compas-dev_main' into robot_library_remove_old_robots
yck011522 Feb 22, 2024
317b129
Update integration.yml from py3.8 to 3.11
yck011522 Feb 22, 2024
672fb42
Update integration.yml to py3.10
yck011522 Feb 22, 2024
0e25492
Revert integration.yml to py3.11
yck011522 Feb 22, 2024
771e704
Reverting the Ros timeout and the Context Manager in example
yck011522 Feb 22, 2024
a1f1146
Merge branch 'compas-dev_main' into robot_library
yck011522 Feb 22, 2024
20a3f4f
Introduce `compas_fab.robot.Target` class
yck011522 Feb 22, 2024
12f2937
Merge branch 'compas-dev_main' into fix_sphinx_warnings
yck011522 Feb 22, 2024
5e7dc5a
remove todo message
yck011522 Feb 22, 2024
59235e9
Merge pull request #395 from compas-dev/fix_sphinx_warnings
gonzalocasas Feb 22, 2024
12c4b8d
Merge branch 'compas-dev_main' into new-planning-target-class
yck011522 Mar 5, 2024
6cc358a
Introduce Targets for plan_motion()
yck011522 Mar 8, 2024
555055a
Black src
yck011522 Mar 8, 2024
a2a259d
Lint
yck011522 Mar 8, 2024
56c5e5f
Make Targets and Constraints serializable.
yck011522 Mar 22, 2024
d611985
Test adding sleep after RosClient Calls hopefully fixing random errors
yck011522 Mar 29, 2024
ae45f9c
Trying to handle the close event correctly if the script that request…
gonzalocasas Mar 29, 2024
a18dadb
lint issue
gonzalocasas Mar 29, 2024
11bc807
lint again
gonzalocasas Mar 29, 2024
8ea46c1
Update docs/examples/02_description_models/03_robot_instances.rst
yck011522 Mar 29, 2024
01f396d
Update docs/examples/02_description_models/03_robot_instances.rst
yck011522 Mar 29, 2024
4fbb0d7
Update docs/examples/02_description_models/03_robot_instances.rst
yck011522 Mar 29, 2024
7d3b912
Update src/compas_fab/robots/robot_library.py
yck011522 Mar 29, 2024
5d8cc15
Update src/compas_fab/robots/robot_library.py
yck011522 Mar 29, 2024
5ee40b9
wait?
gonzalocasas Mar 29, 2024
5f90b81
🤷‍♂️
gonzalocasas Mar 29, 2024
853806b
:/
gonzalocasas Mar 29, 2024
6466a75
trying to see if the problem is ros.run on-ready is set in wrong order.
yck011522 Mar 30, 2024
d63c0e7
Error Message with time stamp
yck011522 Mar 30, 2024
b522f81
Update RosTimeoutError message to include start time
yck011522 Mar 30, 2024
ac65786
connection with automnatic retry
yck011522 Mar 30, 2024
6da3104
Apply suggestions from code review (Docstrings only)
yck011522 Apr 5, 2024
5b3ea4d
Lint
yck011522 Apr 5, 2024
e88d248
Modified Changelog
yck011522 Apr 5, 2024
81f48d0
update documentation
yck011522 Apr 5, 2024
6252afe
Renaming target_z_vector to target_z_axis
yck011522 Apr 5, 2024
ed3de29
format to a one liner
yck011522 Apr 5, 2024
6500c20
Update src/compas_fab/robots/targets.py
yck011522 Apr 5, 2024
42acac7
Remove renaming when importing Robot.
yck011522 Apr 12, 2024
b5f8b13
Add doc tutorial page reference
yck011522 Apr 12, 2024
f63300c
Fix Docstring
yck011522 Apr 12, 2024
ff75aa9
Update docs/examples/02_description_models/03_robot_instances.rst
gonzalocasas Apr 12, 2024
d088aee
Merge pull request #406 from compas-dev/robot_library
yck011522 Apr 12, 2024
1809733
Update integration.yml back to py 3.8
yck011522 Apr 12, 2024
4e19ab3
tool_coordinate_frame accepts a Transformation as input
yck011522 Apr 12, 2024
43fb45a
Remove loading RobotModel from URDF example in ROS.
yck011522 Apr 12, 2024
30b6fe6
Skipped all tests inside docstring of ROS Client and Robot
yck011522 Apr 12, 2024
6419e8c
Merge remote-tracking branch 'compas-dev/main' into robot_library_rem…
yck011522 Apr 12, 2024
bfd1310
Removing the autofixture in pytest for robot.py and planning_scene.py
yck011522 Apr 12, 2024
92d2d6e
Revert "Skipped all tests inside docstring of ROS Client and Robot"
yck011522 Apr 12, 2024
2e189c1
Change all ROSClient examples to be using context manager
yck011522 Apr 12, 2024
9229af3
Skip tests in Robot
yck011522 Apr 12, 2024
c237849
doc string error
yck011522 Apr 12, 2024
b0c0bcb
Remove the Hack that we introduced into Client.py to test different i…
yck011522 Apr 12, 2024
a660e39
Clean up a bunch of docstring links
yck011522 Apr 12, 2024
454e67e
Update src/compas_fab/backends/ros/client.py
gonzalocasas Apr 12, 2024
08773ba
Merge pull request #407 from compas-dev/robot_library_remove_old_robots
yck011522 Apr 12, 2024
d6fd63e
Merge remote-tracking branch 'compas-dev/main' into yck011522/issue413
yck011522 Apr 12, 2024
d2f9db6
Add some more description to the API page
yck011522 Apr 12, 2024
876cb08
Fix Docstrings in Semantics
yck011522 Apr 12, 2024
f43efc1
Attributes sectons in Semantics
yck011522 Apr 12, 2024
314bfce
Properties and Attributes docstring of Tool class, introduced TCF and…
yck011522 Apr 12, 2024
5782eb7
Fixing errounous rounding in Duration. Fix docstrings
yck011522 Apr 12, 2024
bc243d4
Fix doc header
gonzalocasas Apr 16, 2024
21da373
Update tool coordinate frame terminology in Tool class
yck011522 Apr 19, 2024
ef12e3e
Update documentation for Robot and Tool classes. Attributes be comple…
yck011522 Apr 19, 2024
b06c6e6
Update documentation for RobotSemantics class. Fix SRDF link.
yck011522 Apr 19, 2024
4c64cc7
Reverted the change to time and duration
yck011522 Apr 19, 2024
f888268
Update Duration class to handle nanoseconds greater than 1 second
yck011522 Apr 19, 2024
2c515b5
Update src/compas_fab/robots/targets.py
yck011522 Apr 19, 2024
a5ccbef
Merge branch 'compas-dev_main' into new-planning-target-class.
yck011522 Apr 19, 2024
4af4b5d
Merge branch 'new-planning-target-class' of https://github.com/compas…
yck011522 Apr 19, 2024
0f1e117
remove commented out code
yck011522 Apr 19, 2024
c85d8b2
Update example in Constraints to use new RobotLibrary
yck011522 Apr 19, 2024
3e2970f
clean up some mention of new Frames.
yck011522 Apr 19, 2024
e7bae55
Clean up the broken Class and Function links in docstrings
yck011522 Apr 19, 2024
0669e49
Update src/compas_fab/robots/semantics.py
yck011522 Apr 19, 2024
d7fa5e8
Update src/compas_fab/robots/semantics.py
yck011522 Apr 19, 2024
78dbf6c
Update src/compas_fab/robots/robot.py
yck011522 Apr 19, 2024
c62c368
Merge pull request #417 from compas-dev/yck011522/fix_time_addition_e…
yck011522 Apr 19, 2024
bb847f7
Merge branch 'yck011522/fix_time_addition_error' into yck011522/issue413
yck011522 Apr 19, 2024
a809746
Merge conflict
yck011522 Apr 19, 2024
d49db17
Merge pull request #414 from compas-dev/yck011522/issue413
yck011522 Apr 19, 2024
ab5e0c0
Update docs/examples/02_description_models/03_targets.rst
yck011522 Apr 24, 2024
d11dec5
Removes mention of PCF
yck011522 Apr 26, 2024
d3bf8f0
Update src/compas_fab/robots/targets.py
yck011522 Apr 26, 2024
949b0ec
Merge branch 'compas-dev_main' into new-planning-target-class
yck011522 Apr 26, 2024
5168010
Merge branch 'new-planning-target-class' of https://github.com/compas…
yck011522 Apr 26, 2024
eff3f6c
Update GH Component tool tip and comments
yck011522 Apr 26, 2024
e52ff98
Improve input description for Cf_PointAxisTarget
yck011522 Apr 26, 2024
4578c13
Update tolerance for free rotation in convert_target_to_goal_constrai…
yck011522 Apr 26, 2024
4e5d751
Merge pull request #409 from compas-dev/new-planning-target-class
yck011522 Apr 26, 2024
0762974
First draft of the two waypoint classes
yck011522 Apr 27, 2024
576febb
Tests for Targets
yck011522 Apr 27, 2024
754e4b2
more test for waypoints
yck011522 May 3, 2024
fbb7147
test for scaled function in targets and waypoints
yck011522 May 3, 2024
9bf2995
lint
yck011522 May 3, 2024
9940866
Fix api completeness test failure
yck011522 May 3, 2024
36a1d60
change log
yck011522 May 3, 2024
f895b21
regenerated compas_fab api completeness json list
yck011522 May 3, 2024
b68bd03
ipy test failure fix
yck011522 May 3, 2024
174e55e
doc string fix
yck011522 May 3, 2024
bb1bd4d
add tool_coordinate_frame stub
yck011522 May 3, 2024
7926032
Add tool_coordinate_frame parameter to Waypoints constructor
yck011522 May 3, 2024
a49f023
Refactor plan_cartesian_motion method in Robot class
yck011522 May 3, 2024
c0f92d7
Refactor plan_cartesian_motion method to accept waypoints instead of …
yck011522 May 3, 2024
1d6c96b
Refactor plan_cartesian_motion method to accept waypoints and impleme…
yck011522 May 9, 2024
63b89fb
I bit more comments
yck011522 May 9, 2024
b56b144
ros backend plan_cartesian_motion uses waypoints
yck011522 May 10, 2024
5d10999
comment change
yck011522 May 10, 2024
1fcadb5
add type check, fix some mistakes
yck011522 May 10, 2024
1c23183
Fix bugs in Targets
yck011522 May 10, 2024
eb856ec
test file
yck011522 May 10, 2024
9eb80fb
changed 3 doc tests files
yck011522 May 10, 2024
23acbf9
docs and change log
yck011522 May 10, 2024
02f9753
fix IPY type checking
yck011522 May 10, 2024
49847ed
more stuff
yck011522 May 10, 2024
a4f697f
Change planning backend features to use inherence instead of call for…
yck011522 May 10, 2024
c5b4748
changelog
yck011522 May 10, 2024
ff98cb0
Better generated docs
yck011522 May 10, 2024
f1064ce
render compas_fab.backends.ros.backend_features in docs
yck011522 May 10, 2024
5bfe447
unbreak my heart
yck011522 May 10, 2024
7d15d94
Renamed `get_cached_robot` to `get_cached_robot_model`
yck011522 May 29, 2024
658b9d9
Pin compas version in ironpython workflow
yck011522 May 30, 2024
9343064
Revert incorrect docstring under Target
yck011522 May 30, 2024
17c8801
Merge pull request #427 from compas-dev/patch_ironpython_workflow_pin…
gonzalocasas May 31, 2024
5334327
Update tests/robots/test_targets.py
gonzalocasas May 31, 2024
14bc292
Update src/compas_fab/robots/targets.py
gonzalocasas May 31, 2024
9c9e300
Merge branch 'feature-multiple-targets-waypoints' of https://github.c…
yck011522 May 30, 2024
0e9d543
Update src/compas_fab/robots/targets.py
gonzalocasas May 31, 2024
512f5ed
Update tests/robots/test_targets.py
gonzalocasas May 31, 2024
edae6b7
Update tests/robots/test_targets.py
gonzalocasas May 31, 2024
56f2984
Refactor tolerance_orientation scaling in FrameTarget class
yck011522 May 30, 2024
506fd5e
Merge pull request #421 from compas-dev/feature-multiple-targets-wayp…
gonzalocasas May 31, 2024
c1dff0a
Update docs/examples/02_description_models/03_targets.rst
yck011522 May 31, 2024
13bd652
Remove type hints from new files
yck011522 Jun 6, 2024
de28b22
Rephrased the developer note inside _plan_cartesian_motion_with_frame…
yck011522 Jun 6, 2024
e7dc608
Rephrased the doc for `waypoint` parameter in `robot.plan_cartesian_m…
yck011522 Jun 6, 2024
34f60be
Fixed incorrect docs for target and waypoint
yck011522 Jun 6, 2024
a01221b
chore: Refactor tolerance_orientation calculation in FrameTarget
yck011522 Jun 6, 2024
88c1ee2
lint
yck011522 Jun 6, 2024
93b7502
Merge branch 'feature_plan_c_motion_uses_waypoints' into remove_plann…
yck011522 Jun 6, 2024
847142a
Update CHANGELOG.md
yck011522 Jun 7, 2024
3f77062
Apply suggestions from code review
yck011522 Jun 7, 2024
90d07c4
fix test_target incorrect test at tolerance_orientation
yck011522 Jun 6, 2024
b8dd26e
Merge branch 'main' into feature_plan_c_motion_uses_waypoints
yck011522 Jun 7, 2024
e652a7f
Clean up code in plan_cartesian_motion
yck011522 Jun 12, 2024
ba32b90
Added comment about interpolation in the test for AnalyticalPyBulletC…
yck011522 Jun 12, 2024
c63a5f3
Merge branch 'feature_plan_c_motion_uses_waypoints' into remove_plann…
yck011522 Jun 13, 2024
dee68dc
Update build.yml to run on all Pull Requests (#434)
yck011522 Jun 14, 2024
9195ee5
Merge pull request #422 from compas-dev/feature_plan_c_motion_uses_wa…
gonzalocasas Jun 14, 2024
11c6590
Update CHANGELOG.md
gonzalocasas Jun 14, 2024
56e02c1
Update src/compas_fab/backends/ros/planner.py
gonzalocasas Jun 14, 2024
ffe375f
Update src/compas_fab/backends/pybullet/planner.py
gonzalocasas Jun 14, 2024
47b2c5b
Update src/compas_fab/backends/pybullet/client.py
gonzalocasas Jun 14, 2024
7552b64
Update src/compas_fab/backends/pybullet/client.py
gonzalocasas Jun 14, 2024
b6a493a
doh
gonzalocasas Jun 14, 2024
d6d080a
refactor: Use TOL.is_close for checking if scaling is needed in Robot…
yck011522 Jun 14, 2024
13e5337
AnalyticalPyBulletClient constructor super is not correct
yck011522 Jun 14, 2024
74dfc5a
Merge pull request #433 from compas-dev/remove_planner_call_magic
yck011522 Jun 14, 2024
74c30a6
Merge branch 'main' into patch_rename_cached_robot
yck011522 Jun 14, 2024
c6ef2c0
Merge pull request #428 from compas-dev/patch_rename_cached_robot
yck011522 Jun 14, 2024
59107e6
Change planner type arg
gonzalocasas Jun 20, 2024
40832df
Temporarily limit numpy to less than 2.x
gonzalocasas Jun 20, 2024
3c1933d
Rename
gonzalocasas Jun 20, 2024
005e268
Merge pull request #439 from compas-dev/planner_type_arg
yck011522 Jun 21, 2024
505930e
Initial plan
Copilot Oct 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ on:
push:
branches:
- main
- wip
pull_request:
branches:
- main

jobs:
build:
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ on:
push:
branches:
- main
- wip
pull_request:
branches:
- main

jobs:
build:
Expand All @@ -17,7 +16,7 @@ jobs:
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
python-version: '3.8'
- name: Set up docker containers
run: |
docker-compose -f "tests/integration_setup/docker-compose.yml" up -d --build
Expand Down
26 changes: 23 additions & 3 deletions .github/workflows/ironpython.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ on:
push:
branches:
- main
- wip
pull_request:
branches:
- main

jobs:
build:
Expand All @@ -16,15 +15,34 @@ jobs:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
echo "Installing IronPython..."
choco install ironpython --version=2.7.8.1

echo "Downloading ironpython-pytest..."
curl -o ironpython-pytest.tar.gz -LJO https://pypi.debian.net/ironpython-pytest/latest
curl -o compas.tar.gz -LJO https://pypi.debian.net/COMPAS/latest

echo "Downloading COMPAS..."
curl -o compas.tar.gz -LJO https://pypi.debian.net/COMPAS/COMPAS-2.1.0.tar.gz

echo "Downloading roslibpy..."
curl -o roslibpy.tar.gz -LJO https://pypi.debian.net/roslibpy/latest

echo "Downloading compas_robots..."
curl -o compas_robots.tar.gz -LJO https://pypi.debian.net/compas_robots/latest

echo "Setting up IronPython environment..."
ipy -X:Frames -m ensurepip

echo "Installing ironpython-pytest..."
ipy -X:Frames -m pip install --no-deps ironpython-pytest.tar.gz

echo "Installing COMPAS..."
ipy -X:Frames -m pip install --no-deps compas.tar.gz

echo "Installing roslibpy..."
ipy -X:Frames -m pip install --no-deps roslibpy.tar.gz

echo "Installing compas_robots..."
ipy -X:Frames -m pip install --no-deps compas_robots.tar.gz
- uses: NuGet/setup-nuget@v1.0.5
- uses: compas-dev/compas-actions.ghpython_components@v5
Expand All @@ -33,11 +51,13 @@ jobs:
target: src/compas_fab/ghpython/components/ghuser
- name: Test import
run: |
echo "Testing import of compas_fab..."
ipy -m compas_fab
env:
IRONPYTHONPATH: ./src
- name: Run tests
run: |
echo "Running tests..."
ipy tests/ipy_test_runner.py
env:
IRONPYTHONPATH: ./src
4 changes: 2 additions & 2 deletions AUTHORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ If you use COMPAS FAB in a project, please use the following citation:
Lytle, B. and
Huang, Y. and
Kasirer, C. and
Bruun, E.
Bruun, E. and
Leung, P.Y.V.
},
howpublished={https://github.com/compas-dev/compas\_fab/},
note={Gramazio Kohler Research, ETH Z\"{u}rich},
Expand Down Expand Up @@ -50,4 +51,3 @@ Authors
* Chen Kasirer <kasirer@arch.ethz.ch> `@chenkasirer <https://github.com/chenkasirer>`_
* Edvard Bruun <ebruun@princeton.edu> `@ebruun <https://github.com/ebruun>`_
* Victor Pok Yin Leung <leung@arch.ethz.ch> `@yck011522 <https://github.com/yck011522>`_

39 changes: 39 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,40 @@ 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).

## Unreleased

### Added

* Added `compas_fab.robots.Waypoints` class to represent a sequence of targets. It has two child classes: `FrameWaypoints` and `PointAxisWaypoints`.
* Added `compas_fab.robots.Target` class to represent a motion planning target.
* Added also child classes `FrameTarget`, `PointAxisTarget`, `ConfigurationTarget`, `ConstraintSetTarget`
* Unlike previous constraints, `Targets` do not contain `group` as parameter. Instead, group parameter is passed to the planning call.
* Target scaling function is now embeded in the code for Targets. `scaled()` should be called by the user before passing the target to the `plan_motion` function.

### Changed


* Renamed `PybulletClient.get_cached_robot` to `PybulletClient.get_cached_robot_model` to avoid confusion between the `RobotModel` and `Robot` class.
* Renamed `PybulletClient.ensure_cached_robot` to `PybulletClient.ensure_cached_robot_model`.
* Renamed `PybulletClient.ensure_cached_robot_geometry` to `PybulletClient.ensure_cached_robot_model_geometry`.
* Renamed `PybulletClient.cache_robot` to `PybulletClient.cache_robot_model`.
* Backend planners now use multi-inherence instead of `__call__` to include the backend functions. This allows for better generated documentation.
* `Robot.plan_carteisan_motion()` now accepts `Waypoints` as target. Implementation for `FrameWaypoints` is supported with same functionality as before. Simply wrap `Frame` objects using `FrameWaypoints(frames)`.
* Changed `BoundingVolume`, `Constraint`, `JointConstraint`, `OrientationConstraint`, `PositionConstraint` to inherit from `compas.data.Data` class.
* Change the signature of `plan_motion()` to use `target` (`Target` class) instead of `goal_constraints`. Only one target is accepted. Users who wish to compose their own constraint sets can still use `ConstraintSetTarget`.
* Moved `Robot.orientation_constraint_from_frame()` to `OrientationConstraint.from_frame()`, as constraints are no longer intended for users to use directly.
* Moved `Robot.position_constraint_from_frame()` to `PositionConstraint.from_frame()`, as constraints are no longer intended for users to use directly.
* Moved `Robot.constraints_from_frame()` to ros.backend_features and is handled by `convert_target_to_goal_constraints()`. Users who wish to use a frame as target should use a `FrameTarget` instead.
* Changed the behavior of Duration class when accepting both seconds (float) and nanoseconds (int) where the decimal point of seconds and the nanoseconds add up to more than 1 second.
* Changed GH Component `ConstraintsFromPlane` to `FrameTargetFromPlane`.
* Changed GH Component `ConstraintsFromTargetConfiguration` to `ConfigurationTarget`.
* Changed `RosClient` constructor to take a type for planner backend instead of a string. This also changes the name of the argument from `planner_backend` to `planner_type`.

### Removed

* Removed `plan_cartesian_motion_deprecated` and `plan_motion_deprecated` methods from `Robot` class
* Removed `forward_kinematics_deprecated` and `inverse_kinematics_deprecated` method from `Robot` class

## [1.0.2] 2024-02-22

### Added
Expand All @@ -30,6 +64,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added

* Add parameter to control which link the tool is connected to in Grasshopper.
* Introduced `compas_fab.robots.RobotLibrary` class with 4 built-in robots.
* Added a script to extract URDF, SRDF and meshes from a Docker MoveIt instance.

### Changed

Expand All @@ -44,13 +80,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* Add `attributes` to `Trajectory` class.
* Fixed `data` serialization API to comply with `COMPAS 2.0` private data API.
* Use the tool's `connected_to` link when showing end-effector frames in Grasshopper.
* Change default end-effector link name from `ee_link` to `tool0`.

### Removed

* Removed V-Rep backend.
* Removed outdated `PathPlan` class.
* Removed outdated rfl demo class.
* Remove deprecated aliases for artists (currently on `compas_robots`).
* Removed `compas_fab.robots.ur5` because it is now part of `compas_fab.robots.RobotLibrary`.
* Removed data files of ur5 and ur10e from `src/compas_fab/data/universal_robots` because they are now in of `src/compas_fab/data/robot_library`.

## [0.28.0] 2023-05-10

Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def setup(app):
"logo": {
"image_light": "_static/compas_icon_white.png",
"image_dark": "_static/compas_icon_white.png",
"text": "COMPAS docs",
"text": "COMPAS FAB",
},
"navigation_depth": 2,
}
Expand Down
12 changes: 12 additions & 0 deletions docs/developer/backends.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,15 @@ Backend interfaces
==================

.. automodule:: compas_fab.backends.interfaces

Implemented backend features
============================

The following backend features are implemented for the ROS backend:

.. automodule:: compas_fab.backends.ros.backend_features

The following backend features are implemented for the PyBullet backend:

.. automodule:: compas_fab.backends.pybullet.backend_features

2 changes: 2 additions & 0 deletions docs/examples/01_fundamentals/01_frame_and_transformation.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _frame_and_transformation:

*******************************************************************************
Frame and Transformation
*******************************************************************************
Expand Down
2 changes: 2 additions & 0 deletions docs/examples/01_fundamentals/02_coordinate_frames.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _coordinate_frames:

*******************************************************************************
Coordinate frames
*******************************************************************************
Expand Down
2 changes: 2 additions & 0 deletions docs/examples/02_description_models/01_kinematic_model.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _kinematic_model:

*******************************************************************************
Kinematic model
*******************************************************************************
Expand Down
2 changes: 2 additions & 0 deletions docs/examples/02_description_models/02_robot.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _robot_model:

*******************************************************************************
Robot models
*******************************************************************************
Expand Down
53 changes: 53 additions & 0 deletions docs/examples/02_description_models/03_robot_instances.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
********************************************************************************
RobotModel Packages
********************************************************************************

.. rst-class:: lead

``COMPAS FAB`` provides several ready-to-use robot packages that can be used for
demonstrating the capabilities of the package. These packages can be accessed from the
:class:`compas_fab.robots.RobotLibrary`. The robot packages are loaded from local data
files. They contain
the `robot.model`, `robot.semantics` and meshes associated with the robot links.


The following packages are available:


.. list-table:: Robot Packages
:widths: 25 25 50 25
:header-rows: 1

* - Model
- Brand
- Description
- Location
* - UR5
- Universal Robots
- 6 DOF offset-wrist robot
- :class:`~compas_fab.robots.RobotLibrary.ur5`
* - UR10e
- Universal Robots
- 6 DOF offset-wrist robot
- :class:`~compas_fab.robots.RobotLibrary.ur10e`
* - IRB 4600-40/2.55
- ABB
- 6 DOF spherical-wrist robot
- :class:`~compas_fab.robots.RobotLibrary.abb_irb4600_40_255`
* - RFL
- ETH Arch_Tec_Lab
- Multi-​robotic system with 2 gantry and 4 robotic arms
- :class:`~compas_fab.robots.RobotLibrary.rfl`


Description of the RFL Robotic Setup (`Robotic Fabrication Laboratory <https://ita.arch.ethz.ch/archteclab/rfl.html>`_)


Origin of the packages
======================

The robot packages originates from ROS MoveIt Robot Packages located in
`gramaziokohler/ros_docker <https://github.com/gramaziokohler/ros_docker/>`_.
The docker files are *composed up* and extracted over ROS to a local folder structure
that is compatible with the COMPAS Fab package. The convertion script can be found in the
source code repository folder `scripts/extact_robot_package_from_ros.py`.
65 changes: 65 additions & 0 deletions docs/examples/02_description_models/03_targets.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
.. _targets:

*******************************************************************************
Targets and Waypoints
*******************************************************************************

-----------------------
Targets (Single Goal)
-----------------------

Target classes are used to describe the goal condition (i.e. end condition) of a robot
for motion planning. They can be used for Free-space Motion Planning with :meth:`compas_fab.robots.Robot.plan_motion`.

The :class:`compas_fab.robots.FrameTarget` is the most common target for motion planning.
It defines the complete pose of the end-effector (or the robot flange, if no tool is attached).
A frame target is commonly created from a :class:`compas.geometry.Frame` object, or alternatively from a :class:`compas.geometry.Transformation` object.

The :class:`compas_fab.robots.PointAxisTarget` class is used for specifying a target
based on a point (`target_point`) and a Z-Axis (`target_z_axis`).
This is useful for example when the robot is using a cylindrical tool to perform a task,
for example 3D printing, welding or drilling.
In a more general case, it can be used for any tools for which the rotation
around its own Z axis is acceptable during use.
The point and the Z-Axis are defined relative to the tool coordinate frame (TCF).
The goal is (1) for the tool's TCF point to coincide with the `target_point`,
and (2) for the TCF's Z-axis to become parallel to the `target_z_axis`.
Note that the exact orientatio of the TCF is not determined until after the target is planned.

The :class:`compas_fab.robots.ConfigurationTarget` class is used to specify a target
based on a specific robot configuration (joint values).
For example, it can be used to move the robot to a taught position acquired by jogging.
Typically, the ConfigurationTarget should have the same number of joints as the planning group
of the robot. However, it is possible to specify a subset of the joints, in which
case the remaining joints are left unspecified.

The :class:`compas_fab.robots.ConstraintSetTarget` class is used to specify a list of
constraints as a planning target. This is intended for advanced users who want to create custom
combination of constraints. See :class:`compas_fab.robots.Constraint` for available
constraints. At the moment, only the ROS MoveIt planning backend supports this target type.

.. _waypoints:

------------------------------------------
Waypoints (Multiple Points / Segments)
------------------------------------------

Waypoints classes are used to describe a sequence of
waypoints that the robot should pass through in a planned motion. They are similar to Targets classes
but contain a list of targets instead of a single target, which is useful for tasks such as
drawing, welding or 3D printing.
They can be used for Cartesian Motion Planning with :meth:`compas_fab.robots.Robot.plan_cartesian_motion`.

The :class:`compas_fab.robots.FrameWaypoints` is the most common waypoint for Cartesian motion planning.
It defines a list of complete pose for the end-effector (or the robot flange, if no tool is attached).
It is created by a list of :class:`compas.geometry.Frame` objects or alternatively from a list of
:class:`compas.geometry.Transformation` objects.

The :class:`compas_fab.robots.PointAxisWaypoints` class is used for specifying a list of waypoints based on
the Point-Axis concept used in the :class:`compas_fab.robots.PointAxisTarget`. Compared to
:class:`~compas_fab.robots.FrameWaypoints`, this class allows for specifying targets where the rotation
around the Z-axis is not fixed. This is useful for example when the robot is using a cylindrical tool
to perform a task, for example 3D printing, welding or drilling. The freely rotating axis is defined relative
to the Z-axis of the tool coordinate frame (TCF). Note that the orientation of the tool
at the end of the motion is not determined until after the motion is planned.

Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@
import compas_fab

# Locate the URDF file inside compas fab installation
urdf = compas_fab.get("universal_robot/ur_description/urdf/ur10e.urdf")
urdf = compas_fab.get("robot_library/ur10e_robot/urdf/robot_description.urdf")

# Create robot model from URDF
model = RobotModel.from_urdf_file(urdf)

# Also load geometry
loader = LocalPackageMeshLoader(compas_fab.get("universal_robot"), "ur_description")
support_package_name = ""
loader = LocalPackageMeshLoader(compas_fab.get("robot_library/ur10e_robot"), support_package_name)
model.load_geometry(loader, precision=12)

print(model)
9 changes: 0 additions & 9 deletions docs/examples/03_backends_ros/02_robot_models.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,3 @@ request the full model to be loaded from ROS.

.. literalinclude :: files/02_robot_model.py
:language: python

Load model from URDF
====================

Alternatively, the URDF model can be loaded from URDF files (stored locally
or remotely):

.. literalinclude :: files/02_robot_model_urdf.py
:language: python
12 changes: 0 additions & 12 deletions docs/examples/03_backends_ros/files/02_robot_model_urdf.py

This file was deleted.

Loading
Loading