This page lists changes that are made in the 1.2.x series of ROS (C Turtle).
For future plans, see the roadmap. See also ROS/ReleaseProcess.
Contents
1.2.2 (forthcoming)
rosservice: bug fix to allow 'auto' and 'now' keywords with rosservice call #2996
bug fix to roslib.packages.list_pkgs_by_path() where the path is relative and points directly to a package.
- add mutex to prevent concurrent access to non-thread-safe rospack library.
roslaunch: changed pmon loop to 10hz to perform better on embedded systems (thanks Cedric Pradalier)
fixed bug in rosbag info --yaml with multiple connections on a topic
fixed bugs in rosbag record for unnamed bags, buffer size
fixed bug in rosbag reindex for some pre-Boxturtle bags
- fixed bug with invalid file names in asd files
fixed bug in make-roslisp-exec causing an undefined package
added unsubscribe function #2898
rosmsg: fix error message for rosmsg show with period in message type
roscpp: Removed excessive debug statement accidentally left in the UDP transport (#2962, r10729)
1.2.1 (2010-07-30)
rospy: bug fix to __get/setstate__ when using rospy.Time and Duration objects with copy.
topic_tools/mux: fix several bugs in input topic addition and deletion #2863
rosrecord: fix missing imports in rosrebag and add deprecation warning
1.2.0 (2010-07-28)
ROS architecture and client library updates
Both client libraries now only connect to /clock if /use_sim_time is set
Removed support for deprecated /time topic
Subscribers now set topic types on the Master
roscpp: Please see the roscpp 1.2 changelist
- Python messages are now pickle-able.
- Major performance improvements to message serialization.
Master is now in a separate rosmaster package and the zenmaster process has been renamed to rosmaster
added ServiceProxy.wait_for_service()
roslisp has now been moved into the ROS stack. roslisp is a full-featured Common Lisp client library for ROS. To avoid a dependency on the sbcl compiler from the ros stack, there is a dummy package roslisp_runtime in the roslisp_support stack. Packages that use roslisp should declare a dependency on the roslisp_runtime package in their manifest. This will cause sbcl to get downloaded and built into the sbcl package. Examples of use are now in the roslisp_tutorials package in the ros_tutorials stack.
rosnode info now works for roslisp nodes.
- Message objects are now immutable.
- Debug output can be set with ros parameters, and reset during execution with a service.
- Compilation of .lisp files now happens during build.
std_msgs: std_msgs/Time and std_msgs/Duration added
Graph tools
New <arg> tag, if/unless attributes, and $(arg) features.
default cwd for nodes is now ROS_HOME. Use of ros-root option is now deprecated. This change was made to prevent issues with core files being generated by nodes.
added deprecated attribute for <launch> tags
rostopic/rosservice: improved YAML compatibility of output to support YAML-encoded storage of messages.
rosservice: --wait option for call command to wait until service is available
rxgraph: New GUI front end based on Jon Bohren's smach_viewer
xdot: new package to contain xdot.py, by Jose Fonseca, plus Jon Bohren's wx wrapper for it.
rostest: added --bare options for running bare, non-node executables with a time limit.
New C++ and Python iterator-based API's for reading and writing bag files.
A major revision to the bag format including (optional) compression.
- Appending, and simultaneous reading and writing of bag files now supported.
New commands: compress, decompress, and reindex.
rosbag info shows more detailed statistics, and uses index rather than reading entire bag.
Added -e and --exclude options for rosbag record to record topics using regular expressions #2487.
Added --loop option to rosbag play for looping playback #2706
Added --output-dir option to specify output directory for compress, decompress and reindex commands
Rendering back-end upgraded to Cairo.
Added support for viewing multiple bags #2160
Added support for playing back all messages #2532
Added publishing support #2067
Added --record option for recording bags
Added -s option to start playhead at a specified time #2736
Added support for exporting an interval of messages to a bag #2655
- Added support for selecting regions on the timeline
- Added keyboard control
- Various user interface enhancements, e.g. scroll bar, status bar, state indicators, tooltips
Build tools
A new status bar at the bottom with the current build status and build times summarized. The option --status-rate=STATUS_UPDATE_RATE can be set to 0 to suppress this in an non interactive build.
- exposed bootstrap build errors to console
- Fixed handling of rosdep return codes
lucid rosdep.yaml targets added
- improved gentoo and freebsd support
- Completely rewritten
Now searches for system-installed versions of boost and uses the highest one unless ROS_BOOST_VERSION is set
No longer assumes -lboost_<library>-mt for system installs, and will error if it can't find a specific library.
ROS_BOOST_ROOT is now just an extra search path, force a specific version with ROS_BOOST_VERSION
New commands: --version and --print_versions. The first prints the version it will use, the second prints all versions it finds.
New environment variable: ROS_BOOST_NO_L_OR_I for preventing -L, -Wl,-rpath, and -I flags from being output if the version from ROS_BOOST_ROOT is used
/opt/ros is no longer a "special" location. If you have boost installed in /opt/ros you'll need to set CPATH, LIBRARY_PATH and LD_LIBRARY_PATH like you would with any other non-default include/lib location
rospack: The ROS_BINDEPS_PATH environment variable has been removed
Filesystem tools
rosmsg: new show -b BAGFILE option to show a message as defined in a bag file. #2666
roslocate: support for stacks (thanks Steven Bellens)
Support Libraries
Added _ONCE, _THROTTLE and _FILTER versions of the macros
Added ROSCONSOLE_FORMAT environment variable. Format is in the form of [${severity}] [${time}] [${thread}] [${logger}] [${file}:${line}:${function}]: ${message}
Refactored ros/console.h header so that it does not need to include log4cxx/logger.h. If you use log4cxx directly in your code please make sure you're including log4cxx/logger.h yourself, as that include will be removed in a future release
[C++] New Chain filter, see http://www.ros.org/wiki/message_filters#Chain
[C++] New policy-based Synchronizer filter, see http://www.ros.org/wiki/message_filters#Synchronizer
[C++] TimeSynchronizer: New drop callback that gets called whenever a set of messages are dropped
- roslaunch mode
- background tracking of nodes
ros-rgrep and ros-find-dired for searching in ros packages
slime-ros for roslisp integration
- nxml support for editing launch and manifest files






