Skip to content

Better handling of runtime dependencies #74

Description

@arntanguy

Right now, runtime dependencies (robots, plugins, controllers, etc) expected by each other are not really declared, except in superbuild module presets. This is a bit silly as in practice, a controller tends to know ahead of time what it expects, e.g lipm_walking can work with all HRP robots and more and needs some plugins for external footstep planning (optional).

The idea here could be to exploit passthru to let each derivation declare a list of runtime dependencies it needs along with optional ones.

Something along the lines of

passthru = {
  required = {
    controllers = [];
    robots = [];
    config = {
       mainRobot = "JVRC1";
       enabled = "LIPMWalking";
    }
  };   
  optional = {
    robots = ["mc-hrp5-p", "mc-hrp4"];
    apps = ["mc-mujoco"];
  };
};

This could be used for several things:

  • Generate derivations that can wrap one or several controllers into executable form
  • Auto-generate devshells simply from a controller name
  • Revive the WebAssembly build (website example) by pulliing all runtime components into mc-rtc's source-tree and cross-compiling statically

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions