API review
Proposer: Tully Foote
Present at review:
- List reviewers
Scope
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.
Josh
- 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
Conclusion
Package status change mark change manifest)
Action items that need to be taken.
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)
- three modes
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: