Skip to content

Releases: jrl-umi3218/mc_rtc

Release v1.13.0

16 Oct 02:15
157faae
Compare
Choose a tag to compare

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

  • [mc_control] Fix gripper initialization issue (#291)
  • [mc_control] Fix assumption around robot.hasJoint
  • [mc_tasks] Set roll and pitch target of torso to 0 in StabilizerTask (#175)
  • [mc_tasks] Fix foot force difference control issue in StabilizerTask (#290)

Release v1.12.0

07 Sep 00:26
34d0f1d
Compare
Choose a tag to compare

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

08 Jul 13:57
aa0fdc8
Compare
Choose a tag to compare

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 particular robots.robots() returns a self reference instead of vector<Robot>, Robots behaves a little more like a vector now to mitigate the impact of this change (#247)
  • EndEffectorTask and co. cannot use a bodyPoint in their constructor anymore, proper frames should be used instead (#247)
  • VectorOrientationTask and co. cannot set or get the bodyVector after the fact anymore (#247)

Deprecations

  • Usage of body or surface in JSON/YAML is deprecated in favor of frame, the doc will only show frame 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 different MainRobot (#251)
  • [mc_rbdyn] Add an overload to load a robot module with a custom name
  • [mc_rtc_utils] mc_rtc::shared is a wrapper around std::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

06 Apr 06:50
b272cf3
Compare
Choose a tag to compare

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 to std::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 the Root 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

10 Feb 04:49
f17e035
Compare
Choose a tag to compare

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

15 Oct 12:42
958ff02
Compare
Choose a tag to compare

New package

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

10 Aug 10:18
91f0902
Compare
Choose a tag to compare

Fix a testing issue that prevented the correct packaging of 1.8.0

Release v1.8.0

10 Aug 07:50
962e0a5
Compare
Choose a tag to compare

New distribution channels

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 and refAccel (#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

31 Mar 09:39
3f79869
Compare
Choose a tag to compare

New packages

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 for Polygon 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 and sva::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

16 Oct 10:20
bc8b92b
Compare
Choose a tag to compare

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 of lib/mc_[component] and install helper libraries in the bin folder (#81)
  • [FSM] RemovePostureTask is now DisablePostureTask, it disables either all FSM posture tasks for the state's duration if it is set to true or disable only the posture tasks for the provided robots (#80)
  • [FSM] RemovePostureTask is kept for backward compatibility, it has the same capabilities as DisablePostureTask (#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