I've run across some curious behavior within smach, and I was curious if others have observed similar issues.

The issue arises when using a Concurrency container _and_ the smach_viewer.  In essence, when running my state machine with smach_viewer and without concurrency, the state transitions are almost instantaneous.  The same applies when running without the smach_viewer and with the concurrency section.  However, when I run both the concurrency container and smach_viewer simultaneously, _all_ state transitions take 7+ seconds.   If I start off without the viewer, the transitions are instantaneous, but degrade as soon as the viewer launches.

Any thoughts or suggestions?

~Travis Deyle
PhD student @ Georgia Tech's Healthcare Robotics Lab
Co-Founder www.Hizook.com -- Robotics News for Academics & Professionals


PS -- Occasionally I get the following smach_viewer error:

[ERROR] [WallTime: 1303127819.346248] bad callback: <bound method SmachViewerFrame._status_msg_update of <__main__.SmachViewerFrame; proxy of <Swig Object of type 'wxFrame *' at 0x953f420> >>
Traceback (most recent call last):
  File "/opt/ros/diamondback/stacks/ros_comm/clients/rospy/src/rospy/topics.py", line 563, in _invoke_callback
    cb(msg)
  File "/opt/ros/diamondback/stacks/executive_smach_visualization/smach_viewer/smach_viewer.py", line 659, in _status_msg_update
    if container.update_status(msg):
  File "/opt/ros/diamondback/stacks/executive_smach_visualization/smach_viewer/smach_viewer.py", line 146, in update_status
    self._local_data._data = pickle.loads(msg.local_data)
  File "/usr/lib/python2.6/pickle.py", line 1374, in loads
    return Unpickler(file).load()
  File "/usr/lib/python2.6/pickle.py", line 858, in load
    dispatch[key](self)
  File "/usr/lib/python2.6/pickle.py", line 1090, in load_global
    klass = self.find_class(module, name)
  File "/usr/lib/python2.6/pickle.py", line 1124, in find_class
    __import__(module)
ImportError: No module named geometry_msgs.msg._PoseStamped