All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Dependency
compas_mobile_robot_reloc
added as it is the broken outlocalization
module.
- Bumped
compas_fab
tov0.15.0
. - Added attribute
skip
torapid_clay_formations_fab.fab_data.PlaceElement
to replace use of attributeplaced
.skip
is meant to be set for current run only.
rapid_clay_formations_fab.localization
removed from package since it is now- Removed
rapid_clay_formations_fab.utils.temp_change_compas_precision
.
- Added
rhino_install
andproxy
subcommands to commandrcf
.
rapid_clay_formations_fab.robots.AbbRcfClient.check_reconnect
renamed toensure_connection
.ensure_connection
only restarts docker container once, after that it tries pinging multiple times.fab_conf.robot_client.speed.pick_place
split into two different key-values pairs.
- Removed kwarg
station_egress distance
and corresponding propertystation_egress_frame
fromrapid_clay_formations_fab.robots.PickStation
- ABB robot control example added to grasshopper examples.
compas_rcf.abb.run
documented under Usage in docs.
- Second level imports implemented. So
compas_rcf.fab_data.clay_objs.ClayBullet
can be imported ascompas_rcf.fab_data.ClayBullet
. - Examples renamed to Usage in documentation.
compas_rcf.fabrication
renamed tocompas_rcf.fab_data
.compas_rcf.fabrication.clay_obj
renamed tocompas_rcf.fab_data.clay_objs
.compas_rcf.fab_data.clay_objs.ClayBulletEncoder
now moved tocompas_rcf.fab_data.tools
.compas_rcf.utils.json_
andcompas_rcf.utils.csv_reports
merged and moved tocompas_rcf.fab_data.tools
.csv_reports
can be run usingcompas_rcf.fab_data.csv_report
.compas_rcf.fab_data.network
merged withcompas_rcf.fab_data.clay_objs
.compas_rcf.abb_rcf_runner
moved tocompas_rcf.abb.run
.compas_rcf.abb.programs
renamed tocompas_rcf.abb.procedure
.- Renamed
compas_rcf.abb.connectivity.check_connection
tocompas_rcf.abb.connectivity.check_reconnect
- Merged
compas_rcf.abb.helpers
andcompas_rcf.abb.connectivity
tohelpers
. SoDOCKER_COMPOSE_PATHS
,ROBOT_IPS
,ping
andcheck_reconnect
can now be found inhelpers
. compas_rcf
compas_rcf.fabrication.conf.ZONE_DICT
moved tocompas_rcf.abb.helpers.ZONE_DICT
- A lot of changes to package structure. Might be documented here more later.
sphinx_autodoc_typehints
plugin since not all of the code has type hints, but there's annotations in docstrings for most.- Unused functions in
compas_rcf.utils.util_funcs
.
- Draft of grasshopper example showcasing robot control using
compas_rrc
. - Command line argument to skip writing progress while running
compas_rcf.abb_runner
:--skip-progress-file
.
- Replaced
pathlib
withos.path
incompas_rcf.abb.connectivity
for Python 2 compatibility. compas_rcf.abb_runner
now writes progress to json while waiting for robot, to make sure the robot isn't idle between loops.- Some improvements to the
compas_rcf.utils.csv_reports
module, more data points and more informative headers.
compas_rcf.abb.helpers.RapidToolData
now takes optional tolerance for tooldata values.compas_rcf.docker.docker_cmds._run
is a new helper function for docker commands that works in both Python 2 and 3.compose_up
has a new keywordcheck_output
that toggles return code check ofsubprocess
call.compose_down
added tocompas_rcf.docker
base-docker-compose.yml
insrc/compas_rcf/docker/compose_files/abb
renamed tomaster-bridge-docker-compose.yml
dict
keyabb_driver
incompas_rcf.abb.connectivity.DOCKER_COMPOSE_PATHS
renamed todriver
.env_vars
incompas_rcf.abb.connectivity.connection_check
is now a stand alone keyword argument instead of being picked up from**kwargs
.RapidTooldata.from_plane_point
creates aRapidTooldata
object without usingfrom_frame_point
.
- Class
compas_rcf.abb.helpers.RapidToolData
added to create Rapid tooldata from compas and Rhino geometries. - Class property
weight
added tocompas_rcf.fabrication.ClayBullet
. - MyPy configuration so Mypy can find imports when running from Vim + Ale. Libraries without typehints set to
ignore_missing_imports
.
compas_rcf.abb.helpers
split intohelpers
andconnectivity
makehelpers
importable from IronPython.- Robot instruction in
compas_rcf.abb.programs.pick_bullet
to go to picking_frame now specifieszone_pick
instead ofzone_travel
to make sure that the tool actuators activate at the correct time. - Module
compas_rcf.utils.csv_reports
now adds more data fromClayBullet
instances. compas_rcf.install_rhino
,compas_rcf.utils.compas_to_rhino
andcompas_rcf.rhino_to_compas
now moved to new packagecompas_rcf.rhino
to more clearly show where an environment with Rhino is necessary.install_rhino
is however still available fromcompas_rcf.install_rhino
.- Renamed
compas_rcf.utils.util_funcs.list_elem_w_index_wrap
towrap_list
.
compas_rcf.fabrication.abb_runner
moved tocompas_rcf.abb_runner
.
- Prompt to confirm start of fabrication added to
compas_rcf.fabrication.abb_runner.abb_run
, replacing confirmation inget_settings
.
- Docstring changes in
compas_rcf.utils.compas_to_rhino
andrhino_to_compas
. - Redone the reference pages in the docs and fixed import problems.
- Replaced usage of
AttrDict
fromconfuse.Configuration
incompas_rcf.fabrication.abb_runner
to use the originalconfuse.Configuration
object. E.g.fab_conf["target"].get()
instead offab_conf.target
. This is to make the use of theConfiguration
object uniform across modules. ZONE_DICT
moved fromcompas_rcf.abb.helpers
tocompas_rcf.fabrication.conf
, mainly due to weird import errors.confuse.Template
objectconfuse.Path
vendorised from upstream master and put incompas_rcf.fabrication.conf
.- Renamed
logging
tolog
incompas_rcf.fabrication.abb_runner
to make usage of thelogging
object uniform across modules. - Added logging to
compas_rcf.abb.helpers
,compas_rcf.fabrication.conf
,compas_rcf.abb.programs
, - Directories set up previously by globals in
compas_rcf.fabrication.abb_runner
is now accessible using the configuration file. The old globals are now the default value in the configuration. - Moved submodule
docker
fromcompas_rcf.utils.docker
tocompas_rcf.docker
including its submodules and Docker-Compose files. - Refactored connection check from
compas_rcf.fabrication.abb_runner
to its own function:compas_rcf.abb.helpers.connection_check
. - Refactored logging setup from
compas_rcf.fabrication.abb_runner.abb_runner
to it's own function:compas_rcf.fabrication.abb_runner.logging_setup
. - Refactored fabrication data analysis and prompts for skipping or placing bullets in
compas_rcf.fabrication.abb_runner.abb_runner
to its own function:compas_rcf.fabrication.abb_runner.setup_fab_data
. - Refactored
compas_rcf.fabrication.abb_runner.get_setup
tocompas_rcf.fabrication.conf.interactive_conf_setup
. - Moved
compas_rcf.fabrication.abb_runner.initial_setup
to:compas_rcf.abb.programs.pre_procedure
. - Moved
compas_rcf.fabrication.abb_runner.shutdown_procedure
to:compas_rcf.abb.programs.post_procedure
. - Moved
compas_rcf.fabrication.abb_runner.send_picking
to:compas_rcf.abb.programs.pick_bullet
. - Moved
compas_rcf.fabrication.abb_runner.send_placing
to:compas_rcf.abb.programs.place_bullet
. - Moved
compas_rcf.fabrication.abb_runner.send_grip_release
to:compas_rcf.abb.programs.grip_and_release
. - Logging setup is now run in the
if __name__ = "__main__"
part ofcompas_rcf.fabrication.abb_runner
.
- Prompt to confirm settings removed in
compas_rcf.fabrication.abb_runner.get_settings" in favour of a later confirmation of the whole setup in
abb_run`.
- Configuration option for timeout and wait times for docker commands in
compas_rcf.fabrication.runner
.
- Skip and/or place logic reworked in
compas_rcf.fabrication.abb_runner
. abb_runner
is now verbose by default,--verbose
is removed in favour of--quiet
.- Removed print statements from
abb_runner
and replaced them withlogging.info
calls. - Fixed
id
attribute logic and renamed it tobullet_id
. classmethodcompas_rcf.fabrication.clay_objs.ClayBullet.from_data
is backwards compatible.
compas_rcf.fabrication.abb_runner
now prints progress updates to Flex pendant.abb_runner
now dumps list ofClayBullets
for every bullet into file with same filename as input JSON but with IN_PROGRESS added to start.abb_runner
now checks if attributeplaced
is set onClayBullet
and if so asks user if it should be skipped or placed (with the option to set skip and place for all future bullets withplaced
attribute). This file is deleted when script exits cleanly.compas_rcf.utils.csv_
renamed tocsv_reports
. Instead of a conversion tool it now creates an opinionated report from JSON file. It can also handle directories and multiple files as inputs.
- Settings regarding picking grid added to
compas_rcf.fabrication.conf
.
- Function
get_picking_frame
incompas_rcf.fabrication.abb_runner
reworked intopick_frame_from_grid
which reads settings from conf to return frames from a grid of picking points. - JSON dump after end of
abb_runner
now dumps original list (clay_bullets
) instead of a new.
- Reworded note in method
compas_rcf.utils.rhino_to_compas.rgplane_to_cgplane
to fix encoding error in Grasshopper.
- Dependency
prompt-toolkit
andPygments
. - Logging to
compas_rcf.utils.docker.docker_cmds
. compas_rcf.fabrication.abb_runner
now dumps placedClayBullets
after completed run, together with attributeplaced
with time of placement in UNIX epoch.- Functions
send_picking
&send_placing
incompas_rcf.fabrication.abb_runner
are now timed using Watch from compas_rrc and the sum of their durations are stored asClayBullet.cycle_time
. - Added command line argument to
compas_rcf.fabrication.abb_runner
:--skip-logfile
. - Module for converting JSON to CSV:
compas_rcf.utils.csv_
- Replaced function
compas_rcf.utils.ui.print_conf_w_colors
withpygment_yaml
, pretty printing yaml config using prompt_toolkit and pygments. - Added check of Exception message in
compas_rcf.abb.helpers
to narrow error catching. - Paths in
compas_rcf.fabrication.abb_runner
are changed to be pathlib.Path objects. - Changed
compas_rcf.utils.rhino_to_compas.rgplane_to_cgframe
to correctly inherit X and Y axis from Rhino plane. - Added a note to
rgplane_to_cgplane
to clarify that X and Y axises are note stored in compas planes.
- Unused functions in
compas_rcf.utils.docker.docker_cmds
.
- Docker compose integration via
compas_rcf.utils.docker
to set up needed services forcompas_rcf.fabrication.abb_runner
. - Added ping function to
compas_rcf.abb.helpers
, sends NoOp to controller and waits for feedback.
- Reordered functions in
abb_runner
and added comments to section of the functions.
- Grasshopper example file
create_bullets_read_write_json
updated to handle Grasshopper trees and take vkeys as an attribute. compas_rcf.fabrication.clay_obj.ClayBullet
property settertrajectory_to
andtrajectory_from
updated to handle list of planes.compas_rcf.utils.util_funcs.ensure_frame
updated to convert point to Frame with given point and flipped XY plane.- Updated config for black to also target py2.7 so it doesn't add trailing commas to lists. (Which IronPy 2.7 can't handle)
- Attribute dictionary added to class
compas_rcf.fabrication.clay_obj.ClayBullet
- Attribute
vkey
added toClayBullet
to store vertex key fromcompas.datastructures.Network
- Simple import tests added
- Property
Vector
inClayBullet
changed to represent the bullets center as a line.
- API docs. Some modules have issues but a lot of them works.
- More fixes of imports.
- Split of Rhino dependent functions from
compas_rcf.utils.util_funcs
tocompas_rcf.utils.util_funcs_rhino
.
- Properties
centroid_frame
,compressed_centroid_frame
,centroid_plane
addedcompressed_centroid_plane
tocompas_rcf.fabrication.clay_objs.ClayBullet
. - Classmethod
from_compressed_centroid_frame_like
added toClayBullet
.
compas_rcf.fabrication.abb_rcf_runner
renamed tocompas_rcf.fabrication.abb_runner
.- Typos in
abb_runner
fixed. - Trying to set up imports better between modules
- Fixes for tkinter file dialog in
compas_rcf.utils.ui
. - Property
post_planes
renamed totrajectory_from
inClayBullet
.
- Logging added to
compas_rcf.fabrication.abb_rcf_runner
. - Makes sure needles are retracted at start and end of
abb_rcf_runner
. - Hardcoded compression at pickup in
abb_rcf_runner
. Needs to be removed. - Added note about compas to
README.md
- Added note about compatibility with Python 2 and < 3.6.
- Whole package has had its imports sorted
- Set up black formatting and formatted everything
- Travis now handles build and releasing of tagged commit, using
setuptools_scm
to handle version setup. setuptools_scm
replacesMANIFEST.in
in handling what to include when building.- Package now requires Python >= 3.6 for installation.
- Lots of dev deps
- Module
compas_rcf.fabrication.conf
added. Reads yaml files for fabrication settings. Provides template to validate files. - Package
confuse
new dependecy, ("painless YAML config files for Python") - Default config file (in YAML) added to
compas_rcf.fabrication
- Module
compas_rcf.abb.helpers
added, for now only a dict mapping Zone data names to absolute value
compas_rcf.fabrication.abb_rcf_runner
updated to use YAML configs.- docker compose dirs moved from
./docker
to.data/docker-compose
- Hard-coded fabrication configuration removed from
compas_rcf.fabrication.abb_rcf_runner
. Default values now stored incompas_rcf.fabrication.default_config.yaml
- Print colored dict function added to
compas_rcf.utils.ui
. - Packages Colorama and Questionary added to to requirements. They are used for CLI runner.
compas_rcf.fabrication.abb_fabrication_non_interactive
refactoredcompas_rcf.fabrication.abb_fabrication_non_interactive
renamed toabb_rcf_runner
.compas_rcf.fabrication.abb_rcf_runner
now takes args and can edit conf setup during runtime.compas.rcf.fabrication.ClayBullet
propertyplacement_frame
changed to be where the tool should stop while placing. New propertylocation
is the new required argument for the object and defines the clay bullets lowest point.placement_frame
is derived fromlocation
andcompressed height
.ClayBulley
attributespre_frames
andpost_frames
renamed totrajectory_to
andtrajectory_from
to be more descriptive.- Fixes to docs: In Updating section of
getting_started.rst
python was changed to pip. Inline comments removed from installation instructions.
- After some testing to find the best way to distribute this package given the dependency on private repository
compas_rrc
I've concluded to keep uploading to PyPi. This means that compas_rrc will need to be installed manually before this package, since PyPi does not allow giving a "direct dependency`.
- Set up sphinx docs
- Added deploy job for travis
- Open file dialog function added to new module
compas_rcf.util.ui
- Open file dialog implemented in ABB fabrication runner
- Travis Python 3 version bumped up to 3.7
- docs moved from docsource to docs
- sphinx target directory now dist/docs
- Corrected compas_fab version range (from
<0.12
to<0.11
) - Fixed compas_rrc requirement syntax given it's installed from git repository
- Added compas_rrc to installable packages for
compas_rcf.install_rhino
ClayBulletEncoder
to serializeClayBullet
added tocompas_rcf.fabrication.clay_obj
- Frames before and after placement added to
ClayBullet
from_data
constructor added toClayBullet
- Function to parse list of ClayBullet instances from JSON added in new module
compas_rcf.utils.json_
ensure_frame
function added tocompas_rcf.utils.util_funcs
to convertPlanes
toFrames
compas_rcf.IPY
global boolean that usescompas
function to check if IronPython is running the code.
Rhino
modules are only loaded if IronPython is running the codecompas_rcf.fabrication.abb_fabrication_non_interactive
now reads JSON to load ClayBullets and extractsFrames
from them- Most settings in
abb_fabrication_non_interactive
are moved to top and set as globals.
compas_rcf.utils.databases
mock module removed in favor ofjson_
.
- Added abb non-interactive fabrication script
- Added docker-compose files for ABB ROS setup
- Example file
grasshopper_non_interactive
setup in docs - Partly finished structure for future ur online fabrication procedure
utils.py
now divided into multiple modules- Other renames and moves
- Name change from
rcf
tocompas_rcf
.
- First release, package setup by applying compas-dev/cookiecutter-pypackage on small library of modules from previous phase of project
rcf/ur
renamed torcf/ur_control
- Fabrication related functions moved from
rcf/ur
torcf/fabrication
- Unused code in
rcf/ur_control
- Start value for version