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.
Added
Changed
Fixed
Deprecated
Removed
Added
- Added new backend feature
ResetPlanningScene
- Added
MoveItResetPlanningScene
Changed
- Updated to
COMPAS 0.18
Fixed
- Fixed bug in
remove_attached_tool
ofPlanningScene
Added
- Added
name
property toTool
class.
Fixed
- Fixed bug in
add_attached_tool
ofPlanningScene
- Fixed
frame_id
generation when tool name changes - Fixed freeze with some sync planning scene methods on Grasshopper/IronPython
Changed
- Updated to
COMPAS 0.17
Added
- PyBullet integration: added support for PyBullet client and forward/inverse kinematic solver
- Added
ClientInterface
,PlannerInterface
and various backend feature interfaces - Added implementations of these interfaces for ROS and V-REP
- Added
attributes
dictionary toRobot
class - Added
compas_fab.robots.Tool.from_t0cf_to_tcf
- Added
compas_fab.robots.Tool.from_tcf_to_t0cf
- Added
joint_names
as optional parameter for allcompas_fab.robots.Configuration
constructors - Added
compas_fab.robots.Configuration.iter_differences
- Added
compas_fab.robots.Configuration.max_difference
- Added
compas_fab.robots.Configuration.close_to
- Added
compas_fab.robots.Configuration.merge
- Added
compas_fab.robots.JointTrajectoryPoint.merge
- Added
compas_fab.robots.Semantics.group_states
- Added
compas_fab.robots.Robot.get_configuration_from_group_state
Changed
- Updated to
COMPAS 0.16.9
- Renamed
compas_fab.robots.Robot.to_local_coords
tocompas_fab.robots.Robot.to_local_coordinates
- Renamed
compas_fab.robots.Robot.to_world_coords
tocompas_fab.robots.Robot.to_world_coordinates
- Backend clients have been restructured according to the new interfaces
- Parameter
backend
of forward kinematics has been renamed tosolver
- The signatures of all kinematics, motion planning and planning scene management methods have been homogenized across backend clients and within
Robot
- All examples have been updated to reflect these changes
- The installer to Rhino has been unified with COMPAS core. Now running
python -m compas_rhino.install
will also detect and install COMPAS FAB and its dependencies. - Renamed all
RobotArtist
implementations toRobotModelArtist
to reflect the fact they depend oncompas.robots.RobotModel
. - Renamed
compas_fab.robots.Robot.from_tool0_to_attached_tool
tocompas_fab.robots.Robot.from_t0cf_to_tcf
- Renamed
compas_fab.robots.Robot.from_attached_tool_to_tool0
tocompas_fab.robots.Robot.from_tcf_to_t0cf
- Changed ROS planning scene methods to be synchronous.
Fixed
- Attached collision meshes are included in inverse kinematics calculations in ROS
Deprecated
- The methods
forward_kinematics
,inverse_kinematics
,plan_cartesian_motion
andplan_motion
ofRobot
class have been refactored, but a backwards-compatible deprecated version with the old signatures still exists suffixed by_deprecated
, e.g.forward_kinematics_deprecated
. RobotArtist
are deprecated in favor ofRobotModelArtist
.
Removed
Added
- Added optional
joint_names
toConfiguration
- Added
Configuration.scaled
- Added
full_joint_state
toRobot.inverse_kinematics
- Added
Semantics.get_all_configurable_joints
Changed
- Updated to
COMPAS 0.15
- Construct
full_configuration
withvalues
,types
,joint_names
inRobot
rather than inMoveItPlanner
MoveItPlanner
returnsstart_configuration
with setjoint_names
- Removed parameter
names
fromRobotArtist.update
- Updated Grasshopper examples
Robot
:forward_kinematics
returns nowframe_WCF
MoveItPlanner
:forward_kinematics
takes now instance ofConfiguration
androbot
MoveItPlanner
:inverse_kinematics
takes now instance ofConfiguration
androbot
- Property :class:`compas_fab.robots.Robot.artist` does not try to scale robot geometry if links and/or joints are not defined.
- In :class:`compas_fab.robots.constraints.JointConstraint`, added
tolerance_above
andtolerance_below
for allowing asymmetrical constraints. - In :class:`compas_fab.robots.Robot`, changed the
constraints_from_configuration
function withtolerances_above
andtolerances_below
. - :meth:`compas_fab.robots.CollisionMesh.scale` now takes a scale factor instead of a :class:`compas.geometry.Scale` instance as an argument.
Fixed
- Convert constraints on inverse kinematics and cartesian planner to ROS messages
- Fix support for trajectory constraints on kinematic planner
Added
- Added Python 3.8 support
Changed
- Updated to
COMPAS 0.13
Fixed
- Fix DAE parser to handle
polylist
meshes - Bumped
roslibpy
dependency to0.7.1
to fix blocking service call issue on Mac OS
Added
- Added
attach_tool
,detach_tool
,draw_attached_tool
,from_tool0_to_attached_tool
andfrom_attached_tool_to_tool0
toRobot
- Added
attach_tool
anddetach_tool
toArtist
- Added
add_attached_tool
andremove_attached_tool
toPlanningScene
- Added redraw/clear layer support to :class:`~compas_fab.rhino.RobotArtist` for Rhino
- Added material/color support for DAE files on ROS file loader
Changed
- Changed
inverse_kinematics
,plan_cartesian_motion
andplan_motion
to use the attached_tool'sAttachedCollisionMesh
if set
Fixed
- Fixed mutable init parameters of
Configuration
,JointTrajectoryPoint
,JointTrajectory
andRobot.basic
. - Fixed interface of :class:`~compas_fab.blender.RobotArtist` for Blender
- Fixed DAE parsing of meshes with multiple triangle sets
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
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
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
tocompas_fab.backends.CancellableFutureResult
- ROS client: changed joint trajectory follower (
follow_joint_trajectory
) to support genericJointTrajectory
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.
Changed
- Updated
COMPAS
dependency to0.8.1
- Base robot artist functionality moved to
compas.robots.RobotModel
Robot
:inverse_kinematics
returns now group configurationRobot
:forward_kinematics
has new parameterbackend
to select eitherclient
FK ormodel
FK.Robot
:forward_kinematics
returns nowframe_RCF
Robot
:forward_kinematics
doesn't need full configuration anymore- Fixed delays when modifying the planning scene of ROS.
Added
- Added
jump_threshold
parameter toplan_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
Changed
- ROS Client: renamed
compute_cartesian_path
toplan_cartesian_motion
- ROS Client: renamed
motion_plan_goal_frame
andmotion_plan_goal_configuration
toplan_motion
- ROS Client: removed methods from
Robot
that are now handled withPlanningScene
, e.g.add_collision_mesh
andadd_attached_collision_mesh
- ROS Client: change the return type of
plan_motion
andplan_cartesian_motion
to the new trajectory classes. - ROS File Server Loader: moved to
compas_fab.backends
package - ROS File Server Loader: renamed
load
toload_urdf
and sync'd API to other loaders. - V-REP Client: renamed
get_end_effector_pose
toforward_kinematics
- V-REP Client: renamed
find_robot_states
toinverse_kinematics
- V-REP Client: renamed
find_path_plan_to_config
toplan_motion_to_config
- V-REP Client: renamed
find_path_plan
toplan_motion
- V-REP Client: changed
is_connected
to become a property - Made
robot_artist
defaultNone
onRobot
constructor - Changed
PathPlan
class to use the new trajectory classes
Added
- Added
scale
method toConfiguration
- Implemented Constraints (
OrientationConstraint
,PositionConstraint
,JointConstraint
) to use withplan_motion
- Implemented
PlanningScene
,CollisionMesh
andAttachedCollisionMesh
- 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
andTransformation
. Import fromcompas.geometry
instead.
Fixed
- Fixed missing library for V-REP on macOS
Deprecated
- The aliases for
Frame
andTransformation
will be removed, in the future, import directly fromcompas
core.
Added
- Color parameter to Rhino robot artist
Changed
- Updated to
COMPAS 0.4.10
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
toRosFileServerLoader
- Updated to
COMPAS 0.4.8
Added
- Robot artist for Blender
Added
- First open source release!
- V-REP and ROS clients
- Updated to
COMPAS 0.3.2
Added
- Initial version