<> == Future Work == === ros_comm 1. === [[/2010-12-15 ros_comm 1.5 planning meeting]] === ros_comm 1.7 === * [[rosnode]]: 'machines' command <> * [[rostest]]: remove deprecated ''bare'' commands * deploy rosbuild2 * ros_msgs stack * port code to use rospkg instead of roslib (REP 114) * move message code from roslib into ros_msgs * polled topics (REP 106) * roslaunch: * meta-tag for roslaunch? * scripting API for roslaunch * Mature rosjava/android * mature interfaces * mature app_manager == Brainstorming == * subscribe to sub-topics if sub-topic is a message * multiple masters * roslaunch * network API: launch processes, as well as query state of existing processes. See <> for ideas. * roslaunch-console: curses GUI for interacting with roslaunch-based processes * optional include: add an attribute to include that makes "file not found" not a fatal error (to facilitate optional files). * substitution arg based on shell command: similar to how environment variables can be used to build names, create an option that uses the output of a shell command (e.g. date, hostname). * Networking: * Transports: * UDP support in rospy * Compressed transports * UDT? * Spread? * ZeroMQ? * multicast UDP * Shared memory transport (C++ only). Need to run tests that demonstrate the benefit of shared memory. * Support compression of serialized data * Handle firewalls, one-way connectivity (see [[rosproxy]] prototype) * Published and/or sent timestamps in transport header * Logging * Unify client libraries for setting logging levels, expose ability to externally set logging level in rospy/roslisp * Security * Client libs (e.g., vet roscpp for security issues) * Embed security into wire protocol? * Resource management, and related permissions issues (e.g., prevent a node from controlling motors) * Pub/Sub: * Support for optional fields in messages * Default values for message fields * Export doc strings from nodes / topics / params = semantic description of node API * Subscriptions to sub-messages (possibly just subscribe to actual sub-message fields and not allow subscribe to primitives) * ROS spec * new separator to distinguish between topics and fields (for rostopic, rxplot, and potentially other tools) * Interfaces prototype in ROS (e.g. camera, actions) * Provide a standard way to report status of a node. * introspection into who is calling service calls * Other: * Remote-launch [[roswtf]]. For inspiration, see closed ticket https://code.ros.org/trac/ros/ticket/1130 * Handle backward time jumps in some way * wire only supports un-acknowledged 'poll' signal. Fancier semantics, like synchronous poll, and push at some rate, are implemented in the client lib.