geometry 0.4.1 and common 0.6.1 have been released. This is a patch release. If you are having performance issues are wish to use these stacks with gcc 4.4 (e.g. Karmic Koala), please update.
Minor Changes
tf
patched TransformBroadcaster.sendTransform(*) methods to consistently remap
Fixed tf_monitor display of current chain to show last link
MessageFilter now remaps target frames (r25194, #3119)
MessageFilter now warns and immediately throws out messages with an empty frame_id (r25194)
Changed compile mode to Release from Debug r25374
Fixed usage message for static_transform_sender r25375
Nate Koenig of the Interaction Lab at USC is continuing his work here
at Willow Garage after a busy summer. Nate carried out an empirical study investigating the use of people as teachers for robots, while also researching learning by demonstration with PR2.
Participants in Nate's study used learning by demonstration to teach PR2 how to solve the Towers of Hanoi puzzle. As the name implies, learning by demonstration relies on a human
teacher to provide a robot "student" with demonstrations of a complex
task. In this case, the robot uses the state of the puzzle
(i.e., location of red disk compared to blue and green), along with the
teacher's command, to learn the demonstrated task. Volunteers used a web-based teaching tool to guide PR2 through the three-disk puzzle board. In one condition, teachers were able to directly see PR2, while in the other condition teachers viewed the robot's actions through a small video feed on the web tool. This manipulation allowed Nate to study if robot visibility affects teaching strategies and outcomes. Based on participants' commands and other observations from the
environment, the robot learned how to solve the puzzle on its own.
Results from this study indicate that teachers
perform better
when visually separated from the robot. Performing "better" means that
participants made fewer unnecessary or repetitive moves when teaching
the robot. While this may seem
counter-intuitive, the teachers who could see the robot were easily
distracted from the task and seemed to build inaccurate mental models of PR2's
capabilities.
In addition to this experiment, Nate worked on a number of smaller projects including developing the first video streaming ROS node and creating a web-based graphical interface for interacting with PR2. You can find many of these contributions in the hanoi package for ROS. Nate is also creator and lead developer for Gazebo, a popular open-source 3D robot simulator. Gazebo is heavily used at Willow Garage to simulate the actions of PR2, and Nate is providing us with numerous improvements.
vision_opencv 0.3.0 has been released. The new stack vision_opencv is a replacement for the old stack opencv. The stack opencv is now deprecated, as are its packages opencv_latest and opencvpython.
Please update your dependencies as follows: if your manifest.xml has opencv_latest, then replace it with opencv2 and cv_bridge. If you have scripts or launch files that reference opencv_latest, change to opencv2.
On the Willow Garage Blog, you can find out more about the Texas Robot, which is a telepresence robot built out of leftover PR2 parts and off-the-shelf components. One of the interesting aspects of the Texas robot is that it is running the PR2 software components as-is: motor controllers, tele-operation, visualization, etc... The only changes required were modifying the robot model (urdf) and writing new roslaunch files. You can find these changes in the texas package on ROS.org. Any other changes have been improvements that have been useful for both the Texas and PR2 robots, such as updates to the teleoperation controls.
robot_model 0.6.1 has been released. This release fixes a number of bugs in the 0.6.0 stable release. The most important fixes are in the urdf package: the parser now makes sure all required fields are present, and the parser now always fails when it finds a syntax error in a field, even when this field is optional. See the changelist below for more details.
Changes
robot_state_publisher:
Remove use of deprecated "~" in parameter names.
Add include of for g++ 4.4 compatibility
Fix warnings in regression tests
Increase buffer size for joint state from 1 to 500
Deal with an incomplete joint state by trimming corresponding
tree branches
ROS 0.9 has been released! Our focus with this release was bringing ROS closer to 1.0 status. ROS has been undergoing user testing as part of our Milestone 3 efforts, which has allowed us to make improvements to numerous tools, clarify error messages, and fix bugs. The most notable change with this release is that we have officially ended support for the deprecated ros::Node API in roscpp. We have also introduced a new "bool" type for ROS message types.
There were many other changes with this release as we work to improve and finalize the ROS feature set. You can find a complete list in the changelist.
image_common-0.5.0 has been released. This release removes all APIs deprecated in 0.2.0. The remaining APIs are stable. If you are still using ImagePublisher or ImageSubscriber, take a minute to update your code; see image_transport's Quickstart Guide or Tutorials for proper usage.
This is the first release to pass documentation review.
Changes
image_transport:
Removed all deprecated functions and classes.
Fixed compilation bugs in ImageTransport::subscribeCamera().
common-0.6.0 has been released. This is mostly a maintenance update to do the planned removal of the yaml-cpp package in favor of the yaml_cpp package introduced in 0.5.0. Below is the full changelist.
Major changes
yaml-cpp has been removed (use yaml_cpp instead)
Minor changes
* actionlib
* Removing deprecated version of SimpleActionClient::sendGoal. This only affects users who register a doneCallback when calling sendGoal
* Shortened names of the python and C++ SimpleActionClient wait* calls
* Switched internal references of deprecated ros::SingleSubscriberPublisher::getSubscriberCallerID to getSubscriberName
* Shortened wait* method names in the python action client
* waitForActionServerToStart and waitForGoalToFinish are now waitForServer and waitForResult. #3059
* Moved actionlibtutorials out of common and into rospkgtutorials
* xacro
* Added xacro.cmake file that exports new xacroaddxacrofile() macro, #3020
geometry-0.4.0 has been released. The main new feature in this release is an optional callback that has been added for when messages are dropped by the tf::MessageFilter. Debugging messages have also been updated for greater readability.
Major Changes
Make the error messages that tf prints more user friendly.
Add a failure callback to tf::MessageFilter
Minor Changes
bug fix: message notifier should listen to '/tf' and '/tf_message' topics.
navigation 0.5.0 has just been released. All packages in the navigation stack have now reached "doc review" status, which means that end-user documentation for all appropriate APIs has been documented and peer reviewed. Those wishing to use the navigation stack on their own robots are encouraged to use this release as the APIs are both stable and documented for us.
New Features
base_local_planner: Added "y_vels" parameter to allow holonomic robot users to control the y velocities that their robot will explore
All packages in the stack have passed documentation reviews
Minor Updates
robot_pose_ekf: Make parent-child tags in internal buffer consistent. Update to new tf::StampedTransform data type.
costmap_2d: Fixed many deprecation warnings resulting from new release of geometry stack
base_local_planner: Fixed many deprecation warnings resulting from new release of geometry stack
move_base: Fixed many deprecation warnings resulting from new release of geometry stack
Deprecations
base_local_planner: The min_vel_th, max_vel_th, and min_in_place_vel_th parameters have now been removed, update to max_rotational_vel and min_in_place_rotational_vel
costmap_2d The "inscribed_radius" and "circumscribed_radius" parameters have now been removed, switch to the "robot_radius" parameter or the "footprint" parameter.
Bug Fixes
costmap_2d: Fixed clearing the robot footprint of obstacles for circular robots.
Package Moves
All the tutorials for the navigation stack have moved to the ros_pkg_tutorials stack.
Jason's work on hierarchical planning helped the PR2 plan out its tasks in a more logical, premeditated manner. The package takes into consideration high-level decisions, like the order in which to fetch the ingredients, down to low-level decisions like where to position the base of the robot and what angle to grasp an object from. In the video, the PR2 is told to move several bottles between two tables. Instead of manipulating each bottle independently of the others, the robot plans ahead and places the bottle being manipulated near the next bottle to grab. That way, the robot can simply put down the current item and, without driving to the next goal, reach over and pick up its next bottle. Jason's code can be found in the
hierarchical_planning package. You may also be interested in Jason's and Bhaskara Marthi's RSS 2009 presentation on Angelic Hierarchical Planning.
In the process of working on this package, Jason spent time developing and debugging lower-level component actions, such
as moving the base to a particular location. Interactive scripting
languages are ideal for this purpose. Jason developed an experimental Java client library for ROS (rosjava), which he then used to create a ROS interface
to Clojure (rosclj), a Lisp-like language built on Java.
Using this interface, he then developed a large library of scripted
actions which can be used for quickly specifying and tele-operating
complex sequences. These can be found in the clj_pr2 package.
Ben Cohen of University of Pennsylvania has returned to the GRASP Lab after his summer internship here at Willow Garage. At Penn, Ben researches search-based methods for
path planning for robotic manipulators. During his time here, he worked on two motion planners: one for door opening and one for manipulation. When compared to the door planner used in Milestone 2, the new door planner uses SBPL (Search-Based Planning Library) to give the PR2 two new capabilities. First, it allows the robot to not only push doors open, but
also pull. Second, the door planner allows the robot to open doors,
regardless of hinge position -- left or right side of the door. These two novel capabilities
allow for robust, more universal door opening.
Additionally, Ben's work on a manipulation planner involved integrating SBPL into the
move_arm ROS package, which integrates a variety of motion planners.
Ben tested the SBPL planner on the PR2's arms, and added the supporting
software needed to perform collision checking. With collision
checking in place, SBPL can more readily handle cluttered, complex
environments.
Here are Ben's end-of-summer presentation slides discussing his planning work (Download PDF from ROS.org):
robot_model 0.6.0 has been released. This is the first "stable" release of the robot model stack. This release removed the last pieces of deprecated functionality in urdf and kdl_parser.
I am announcing the release of the robot_model.0.5.0. stack. The functionality of the kdl parser that was deprecated in the 0.3.0 release is removed in this release. To fix a memory leak in the urdf package, accessing the parent of a Link has changed, but this release maintains backwards compatibility.
Changes
Removed deprecated functionality form Kdl parser:
xml_parser is removed
Deprecated in urdf:
linkparent member variable in Link class is deprecated and
replaced by the getParent() method. Once the linkparent member
variable is completely removed (in the next release) the memory leak
Ticket #2680 will be fixed.
common-0.5.0 has been released. There is one major change. The yaml-cpp package is being renamed yaml_cpp. For backwards compatability the old version of yaml-cpp will remain in the system until the next release which is targeted for next Wednesday.
Porting to the new package only requires changing the dependency in the manifest. Everything else is the same.
Major changes
yaml-cpp renamed to yaml_cpp as dashes are not allowed in package names
Minor changes
actionlib
Deprecating SimpleActionClient's getTerminalState() and getGoalState(). Replaced by getState()
SimpleActionClient's SimpleDoneCallback now provides a SimpleClientGoalState argument instead of a TerminalState. The TerminalState version is thus deprecated.
Deprecating the python SimpleActionClient's get_terminal_state() and get_goal_state(). Replaced by get_state()
The done callback passed to Python's SimpleActionClient now takes the terminal state as one of the enumerated constants in actionlib_msgs/GoalStatus
I am announcing the release of the robot_model.0.4.0. stack. Since the last release, we've worked hard to review the API and documentation of all packages in this stack. This resulted in a lot of extra documentation and tutorials, and some minor API changes in the kdl parser.
Changes
API and Doc review: all packages in the robot_model stack have been through our API and Documentation review process.
Kdl parser
Deprecated xml_parser
Deprecated treeFromRobotModel method (replaced by treeFromUrdf). The deprecated functionality will be removed in the next release cycle.
URDF
Updated XML format documentation
New beginner tutorials to create and parse urdf files