API review

Proposer: Tully Foote

Present at review:

  • List reviewers


nodelet API as documented on the nodelet page, including:

  • The base class
  • the launcher API
  • the rosconsole macros

Question / concerns / comments

Enter your thoughts on the API and any questions / concerns you have here. Please sign your name. Anything you want to address in the API review should be marked down here before the start of the meeting.


  • I'd like to be able to pass command-line arguments through into nodelets. This would factor into the Nodelet base class API as well.
  • Is there a way of starting a Nodelet standalone without having to specify a manager? Something like nodelet --standalone my_nodelet_name package/Type

  • Can we turn standalone_nodelet_manager into manager?

  • Nodelet class
    • I'd prefer no direct use of protected members, i.e. turn nh_, private_nh_ etc. into private members with accessors (ros::NodeHandle& getNodeHandle(), ros::NodeHandle& getPrivateNodeHandle()...

    • std::string getName() -> const std::string& getName()

    • init_request() -> initRequest()

    • What does init_request() do? Not explained anywhere

    • Would be nice to have getMTNodeHandle()/getMTPrivateNodeHandle() methods as well, instead of having to deal with the multithreaded callback queue yourself

Meeting agenda

To be filled out by proposer based on comments gathered during API review period


Package status change mark change manifest)

  • /!\ Action items that need to be taken.

  • {X} Major issues that need to be resolved

  • (./) change to getNodeHandle() getPrivateNodeHandle() methods, private members

  • (./) consolidate standalone manager into cpp implementation of nodelet(python)

    • three modes
      • nodelet standalone
      • manager
      • remote
    • try command structure (manager, standalone, remote)
  • (./) return string const reference name

  • (./) change base class method to init(namespace, remappings) and subclass to onInit()

  • (./) getMTCallbackQueue() method, make queue private

  • (./) add getMTNodeHandle() getMTPrivateNodeHandle()

  • (./) add std::vector<std::string> getMyArgv()

  • (./) add args to service call

  • (./) enforce names within manager

  • (./) remove nonblocking launcher calls

  • (./) remove anonymous launching and make the nodelet take the launchers name, default (classname)

  • roadmap:

Wiki: nodelet/Reviews/2010-03-08_API_Review (last edited 2010-03-09 23:08:47 by TullyFoote)