youbot/youbot-ros-pkg — pull request #13 by hayesbh (2012-11-08 22:32:21+00:00)
Title: Fixed youbot_oodl bugs with multi-arm systems, added namespacing and more

Here are the updates I've made to the youbot_oodl code-- hopefully others find them helpful!

Updated youbot_oodl driver to properly support multiple arms being initialized. Previously, the arm initialized last would override all ethercat joint entries for previous arms. This meant joint_states messages for the last initialized arm were being broadcasted as the joint_states messages for all arms in the system, which could be dangerous if unnoticed before handing control to autonomous software.

Added proper namespacing to ROS topics for initialized base/arms, so they now publish within the topic /armName/* (e.g., /armName/joint_states). This will avoid joint name collisions on multi-arm systems.

Changed YouBotConfiguration::youBotArmConfigurations to be a vector of YouBotArmConfiguration pointers, and updated youbot_oodl package code to reflect this change.

youbot_oodl driver can now be configured entirely via ROS launch files, rather than requiring the user to make edits in the youbot_oodl.cpp file to define their configuration/system.

Added debugging information on arm initialization to give user more information about how their arms are configured at runtime.

Updated instructions for starting the youbot_oodl driver.

Updated youbot_oodl launch file to include youbot_description information, so the user only needs to start one process. It seems rare that one would have an OODL configuration that describes something different from what he/she would want description information published about. Instructions for how to generalize this to particular users' configurations is included in the youbot_oodl_driver.launch file.