API review

Proposer: John Hsu

Present at review:

  • List reviewers

Proposal

We need to resolve a few issues on how to update meshes and urdf in pr2_description in the future, keeping /etc/ros/urdf forward/backward compatible with new releases of pr2_common.

Please feel free to edit the list below with your concerns and suggestion. Thank you.

Question / concerns / comments

  • break backward compatibility in latest/c-turtle, i.e. /etc/ros/urdf/robot.xml constructed from a new release will not work if the local pr2_common tree has older revision.

  • keep multiple copies of /etc/ros/urdf/robot_*.xml corresponding to the trees.

  • forward compatibility maintained by keeping mesh names the same, i.e. old /etc/ros/urdf/robot.xml works with new pr2_common releases. As long as mesh coordinates do not change, upgrades should not break things on the robot.

  • what to do with sudo robot start?

  • multiple pr2.launch files.

Vijay

  • Storing the meshes at /etc/ros/urdf/meshes

    • This makes it tricky for remote nodes (rviz, robot_self_filter, etc) to access the meshes. We could potentially write some type of "resource server" that makes these available
  • Get the names to match
    • Now that we have the "correct" meshes, do we expect the mesh files to change very much? If not, then getting the filenames to match up might be a clean, one-time hack for getting this working.
  • Note that both of these approaches fail when things other than meshes are changed, such as link and joint names.

Meeting agenda

  • namespace /etc/ros/boxturtle/* /etc/ros/latest/*. sudo robot start requires a new argument, e.g. sudo robot start boxturtle.
  • python select - provide a symlink switcher tool. /etc/ros-boxturtle, /etc/ros-latest. point /etc/ros at either.
  • some default environment variable ROS_CONFIG? points to /etc/ros. User can set it to /etc/ros-latest to use alternate releases of ros.
  • /etc/ros/sensor could have sym-links across multiple /etc/ros-* trees.
  • Conclusion: paralle /etc/ros/* needed. /etc/ros/sensors, /etc/ros/boxturtle, /etc/ros/latest, etc. Things that are release dependent will go into release-versioned sub directory.
  • For now, add a subdirectory /etc/ros/latest containing files that are release version dependent. Keep boxturtle files in /etc/ros.
  • Feature inquiry for environment variable that replaces /etc/ros with appropriate release.

Conclusion

Stack status change mark change manifest)

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

  • {X} Major issues that need to be resolved

Additional Notes (John)

see here for differences between boxturtle and c-turtle meshes.


Wiki: pr2_common/Reviews/2010-05-24_API_Review (last edited 2010-06-03 18:53:19 by hsu)