Releases: jrl-umi3218/mc_rtc
Releases · jrl-umi3218/mc_rtc
Release v1.13.0
Changes
- [general] mc_rtc now uses C++17 (#297)
Added
- [mc_control] Publish joint sensors in ROS (#293)
- [mc_rbdyn] Add a non throwing version of ZMP computations (#292)
- [mc_rbdyn] Add const accessor for grippers (#298)
- [mc_rtc] Add gui::Polyhedron element (#296)
- [mc_tasks] DCM derivative gains are now 2D (#295)
Fixes
Release v1.12.0
Changes
- [mc_control] GUI can be accessed from a const controller (#282)
Added
- [mc_control] Add
EnableController
callback in Datastore and the EnableController state (#278) - [mc_control] Add
JointSensor
and related interfaces (#279) - [mc_rbdyn] Load compound joints description from RobotModule yaml/json files (#273)
- [mc_solver] Allow to specify compound joint constraints outside of the RobotModule (#273)
- [mc_tasks] Datastore calls to set external wrenches for the stabilizer and set the CoP admittance gains (#276)
Fixes
- [general] Fix build for fmt >= 0.9.0 and Python >= 3.9
- [mc_control] Fixes oberved state on controller switch (#276)
- [mc_control] Fixes about initialization of the robot attitude when specified in the controller (#275/#286)
- [mc_log_ui] Fixes animations on right side in Python 3
- [mc_log_ui] Fix a bug when NaN values are explicitly logged
- [mc_log_ui] Avoid failed imports in headless environments
- [mc_tasks] Do not filter the feedforward velocity in admittance tasks (#261)
- [mc_tasks] Reset of StabilizerTask when already active (#276)
- [mc_tasks] Fix a stabilizer issue when standing far from the origin (#285)
Release v1.11.0
Highlights
mc_rbdyn::Frame
and mc_rbdyn::RobotFrame
have been introduced. This removes the unnecessary distinction between bodies and surfaces that has existed in the framework. (#247)
API breaks
mc_rbdyn::Robots
cannot be created directly anymore, one has to go through a factory function (#247)mc_rbdyn::Robots
stores indiviual robot as pointer and in particularrobots.robots()
returns a self reference instead ofvector<Robot>
,Robots
behaves a little more like a vector now to mitigate the impact of this change (#247)EndEffectorTask
and co. cannot use abodyPoint
in their constructor anymore, proper frames should be used instead (#247)VectorOrientationTask
and co. cannot set or get thebodyVector
after the fact anymore (#247)
Deprecations
- Usage of
body
orsurface
in JSON/YAML is deprecated in favor of frame, the doc will only showframe
but it should continue to work with all old JSON/YAML files (#247) - Idem for specifications of relative targets (#247)
Changes
- [mc_control] Many functionalities of FSM controllers -- notably simplified contact and collision manipulations and configuration based initialization -- are now available in basic controllers (#250)
Added
- [mc_control] Controllers can specify extra frames in their configuration frame (#251)
- [mc_control] Controllers can specify different
init_pos
for differentMainRobot
(#251) - [mc_rbdyn] Add an overload to load a robot module with a custom name
- [mc_rtc_utils]
mc_rtc::shared
is a wrapper aroundstd::enabled_shared_from_this
to allow reference-style API where the data is backed by a shared pointer (#247) - [mc_tasks] All tasks (when it makes sense) can accept a frame at construction (#247)
- [mc_solver]
mc_solver::BoundedSpeedConstr
can be used to constraint a frame velocity (#247) - [mc_solver] Active joints in a collision can be specified via
mc_rbdyn::Collision
objects (#262) - [utils]
build_and_install
now supports Ubuntu Jammy (22.04) (#248) - [utils]
build_and_install
can now install the Panda module (#249)
Fixes
- [debian] Python bindings now include mc_observers
- [fsm::Meta] Fix missed iterations at the start of meta states (#257)
- [mc_control] Make robot position initialization consistant (#245)
- [mc_rbdyn] Fix initialization of the default body sensor (#258)
- [utils] Fix issues with pip/pip3 on Ubuntu Focal (#246)
- [utils] Honor forced selection of Python for mc_log_ui
Release v1.10.0
Tutorials translation
mc_rtc website and tutorials are now available in Japanese (#225/#231)
Removed
- mc_rbdyn_urdf is no longer used by mc_rtc, all related APIs that were deprecated have been removed in this release (#243)
Added
- [mc_tasks/Stabilizer] Add CoM correction using bias estimation (#227)
- [mc_rtc] A source can be provided when adding GUI elements to simplify cleanup code (#237)
- [mc_solver] Added
FeedbackType::ClosedLoopIntegrateReal
(#240) - [bindings] RPY utils are now available in mc_rbdyn bindings (#236)
Changes
- [mc_control] Improve handling of metric grippers
- [mc_control]
mc_control::fsm::State::configure
now has a reasonable default implementation based on existing practice (#238) - [mc_control] Data is now logged for all active robots in the controller automatically (#241)
- [mc_rtc]
log_error_and_throw
now defaults tostd::runtime_error
and includes a stacktrace (#224)
Fixes
- [mc_control]
env/ground
is used as the new default environment module - [mc_rbdyn] Normalize the rotation provided to
posW
for fixed base robots - [mc_rbdyn]
RobotModule::init(rbd::parsers::ParserResult)
does not overwrite the reference joint order if it was already provided - [mc_rbdyn]
RobotModule::expand_stance
does not include theRoot
joint - [mc_tasks] Align posture task gains' GUI with other tasks
- [mc_tasks] Avoid cutoff period overwrite in impedance tasks (#227)
- [mc_tasks] Conserve
dimWeight
value when joints' selection is changed - [ROS] Ensure all published quaternions are normalized (#242)
Release v1.9.0
New build tool
- Introduce mc-rtc-superbuild a new tool to replaced the build_and_install script
- See #221 for a list of benefits of mc-rtc-superbuild over build_and_install
- build_and_install will be maintained and should keep working for a while but new users are advised to use the superbuild tool instead
- You can start using mc-rtc-superbuild if you are using build_and_install already but this will require a full rebuild
Changes
- hpp-spline has been dropped in favor of the actively maintained ndcurves (#210)
- Ubuntu Xenial (16.04) is no longer actively supported
- [mc_control] Allow plugin loaded at the controller level (#198)
- See the global plugins tutorial for caveats and details regarding configuration
- [mc_control_fsm] A state final name is now correctly state when it enters
::configure
for the first time (#218) - [mc_log_ui] Autoscaling has been improved (#222)
- [mc_rbdyn/mc_control_fsm] Contacts now compare equal regardless of the robots' order (i.e.
r1::s1/r2::s2 == r2::s2/r1::s1
) (#202) - [mc_rtc] YAML improvments (#208/#213)
- Allow to use the merge key from YAML 1.1
- Disable y/n and yes/no bool conversion
- [mc_rtc] ObjectLoader sandboxing has been removed (#217)
Fixes
- [build_and_install] Fix permissions issues on ninja logs
- [cmake] Handle building on aarch64 (#217)
- [cmake] Honor GNUInstallDirs (#217)
- [mc_control] Fix crash on controller restart/reset (#206)
- [mc_control] Fix issues with
removeRobot
(#207) - [mc_log_ui] Fix many functionalities when running in Python 3 (#222)
- [mc_rbdyn] Fix stabilizer configuration loading (#206)
- [mc_solver] Automatically swap contact order if the first robot has no dof (#202)
- [mc_tasks] Correct name setting for
EndEffectorTask
Added
- [GUI] Forms can now have dynamic elements (#197)
- [GUI] New plots can be added to a plot after it has been added (#197)
- [mc_bin_utils/mc_log_ui] It is now possible to extract some keys from a log (#209)
- [mc_control] Added a multi-robot aware init method for
mc_control::MCGlobalController
(#206) - [mc_control] Added a reset method for
mc_control::MCGlobalController
(#206) - [mc_control] alphaOut (command velocity) and alphaDOut (command acceleration) are now logged by default (#222)
- [mc_control_fsm] API have been added to allow writing FSM tools (#222)
- [mc_rtc] Added
mc_rtc::ConfigurationFile
to simplify save/reload of configuration files (#222) - [mc_tasks] MetaTask now has an
iterInSolver
method (#200)
Release v1.8.2
New package
- Interface
- mc_mujoco for MuJoCo simulation
Fixes
- [mc_control] Fix message ordering in the FSM (#193)
- [mc_rbdyn] Fix Robot::copy (#188)
- [mc_solver] Prevent a crash when doing contacts manipulation after a solver run (#196)
- [mc_tasks] Correctly set mimic joint target in PostureTask (#194)
- [Python] Allow Python controllers to be interrupted
- [utils] Fix a file descriptor leak that could occur in mc_log_ui
Added
- [mc_rbdyn] Allow to iterate over all devices in a robot
- [mc_tasks] Add dimWeight support in the stabilizer configuration (#191)
Release v1.8.1
Fix a testing issue that prevented the correct packaging of 1.8.0
Release v1.8.0
New distribution channels
- Homebrew
- mc_rtc is now available via Homebrew using the mc-rtc/mc-rtc tap
- vcpkg
- mc_rtc is now available via vcpkg using the mc-rtc/vcpkg-registry registry, see also How to start using registries with vcpkg
Changes
- [GUI] Improve handling of default values in form (#164 #178)
- [mc_control] Change collision management for FSM controllers
- Work-around Tasks issue when adding a collision where the first robot is non-actuated and the second is
- Use the same manager for r1/r2 and r2/r1 collisions
- Throw an exception if a wildcard collision does not create actual collisions
- [mc_solver] Always call
robot.forwardAcceleration()
- [mc_tasks] The
MetaTask::name(const std::string &)
method is now virtual, this allows to rename sub-tasks as needed - [plugins] Give finer control over plugin run behavior (#168)
- [utils] Use ninja to build projects when possible (only affects new builds)
Added
- [global] Add
MC_RTC_DEVELOPER_MODE
option - [GUI] Add the
Visual
element (#159) - [Logging] Add support for
Eigen::Ref
- [mc_rbdyn] Allow a
RobotModule
to specify extra collision objects from sch primitives (#163) - [mc_robots] objects now have a dummy
FloatingBase
sensor - [mc_solver] Add support for jerk bounds (#173)
- [mc_tasks] Add holding strategy for
mc_tasks::ImpedanceTask
(#143) - [mc_tasks] PostureTask now supports
refVel
andrefAccel
(#165) - [mc_tasks] PostureTask now supports
dimWeight
(#174)
Fixes
- [Logger] Emit a warning if the logger queue is outrun in threaded mode; under normal circumstances this would indicate a hardware issue
- [mc_control] Correctly stop GUI sockets
- [mc_observers] Fix orientation transform issue between IMU and base link
- [mc_rbdyn] Avoid re-loading calibrator in
Robot::robotCopy
- [mc_rbdyn] Save/Load material from JSON for visual elements
- [mc_rtc] Improve YAML -> JSON conversion
- [mc_tasks] Renaming the stabilizer task correctly renames its managed tasks (#171)
- [mc_tasks] Fix stabilizer disabling (#155)
- [ROS] Prevent crash on restart
- [utils] Fix string display in
mc_log_ui
(#180) - [utils] Fix branch selection
Release v1.7.0
New packages
- Interface
- mc_franka for libfranka integration
- Robot
- mc_panda for working with the Panda robot in mc_rtc
- GUI (experimental)
Changes
- [Grippers] Allow to specify per-joint target angle and enforce joint limits in such cases (#125)
- [mc_log_ui] Greatly improve animation support (#126)
- [mc_rbdyn] Aliases are preserved as loading parameters for the RobotModule
- [mc_rtc] Allow to specify a data source for logging, entries can then be removed through this source (#115)
- [mc_rtc] When deserializing a Quaternion object, accept matrix and RPY representations
- [meta] Template projects for new controllers and robot modules are now available under the mc-rtc organization https://github.com/mc-rtc/
- [observers] Allow to specify optional observers and potentially failing observers (#123)
- [QHull] Update to QHull 2020.2 (#87)
- [Stabilizer] Add the possibility to estimate DCM bias (#105)
- [Stabilizer] Can now handle external forces (#95)
- [utils] Make Python executable modifiable, defaults on python3 for Ubuntu 20.04
Added
- [global] Add MC_RTC_DISABLE_NETWORK option and MC_RTC_BUILD_STATIC option, allow to build a wasm version of the framework (#88)
- [GUI]
LineConfig
can be provided forPolygon
elements (#118) - [GUI] Add the
Robot
type to publish robots to non-ROS GUI - [mc_rtc] Add support for logging
sva::ImpedanceVecd
- [mc_tasks] Added ImpedanceTask (#100)
- [utils] Allow to specify a different (potentially absolute) build directory (#82)
- [utils] Auto-completion support for build-and-install (#83)
- [utils] Added support for HRP4CR (#106)
Fixes
- [mc_rtc] Performance improvement for writing
sva::ForceVecd
andsva::MotionVecd
in the log - [ROS] Fix an issue where the publication rate was not enforced properly (#133)
- [Stabilizer] Fix min/max bug in contact computation (only affected logging/GUI) (#114)
- [Stabilizer] Fix
speed()
method (#124) - [Stabilizer] Improve consistency when loading the configuration (#122)
- [utils] Correctly set DISABLE_ROS option in every case
- [web] Various typos in tutorials and website (#99, #107, #108, #116, #128, #132)
- [Windows] Fix pragma warnings and add
/bigobj
flag (#129)
Release v1.6.0
Changes
- [cmake/loader] When mc_rtc is build in debug mode it will look for loadable libraries (controllers, robots, observers and plugins) in the debug sub-folder of the standard installation location (#78)
- [cmake/loader] On Windows, mc_rtc will now look for loadable libraries in the
bin/mc_[component]
folder instead oflib/mc_[component]
and install helper libraries in thebin
folder (#81) - [FSM]
RemovePostureTask
is nowDisablePostureTask
, it disables either all FSM posture tasks for the state's duration if it is set totrue
or disable only the posture tasks for the provided robots (#80) - [FSM]
RemovePostureTask
is kept for backward compatibility, it has the same capabilities asDisablePostureTask
(#80)
Added
- [FSM] Posture state has been introduced to interact with the global posture (#67)
- [FSM] HalfSitting can now handle any robot (#67)
- [mc_robots] Generate env aliases for the objects (#67)
- [mc_tasks] Add a simple constructor for StabilizerTask (#69)
- [cmake] Export mc_rtc observers as targets so they can be used as a base class
- [mc_rtc] Introduce mc_rtc::debug() (#78)
- [FSM]
constraints
can be used to load extra-constraints in any state (#80) - [FSM]
tasks
can be used to load extra-tasks in any state (#80) - [mc_trajectory] Introduce
SequenceInterpolator
to do linear interpolation between values over a time-sequence (#64) - [mc_tasks] SplineTrajectoryTask can use
SequenceInterpolator
to use varying gains during the task execution (#64)
Fixes
- [mc_observers] Fix configuration reading for anchor frame configuration (#69)
- Typo in CMake macros for controller build in catkin workspace (#75)
- Load libraries from a symlink (#76)
- [mc_log_ui] The open_log function returns a ditionnary as documented
- [mc_rtc] Configuration::empty() correctly returns false if the Configuration hold a value
- [mc_rtc] Configuration::load() does not (wrongly) load the full document under some circumstances