def _update_jtc_list(self): # Clear controller list if no controller information is available if not self._list_controllers: self._widget.jtc_combo.clear() return # Update widget running_jtc = self._running_jtc_info() running_jtc_names = [data.name for data in running_jtc] update_combo(self._widget.jtc_combo, sorted(running_jtc_names))
def _update_jtc_list(self): # Clear controller list if no controller information is available if not self._list_controllers: self._widget.jtc_combo.clear() return # List of running controllers with a valid joint limits specification # for _all_ their joints running_jtc = self._running_jtc_info() if running_jtc: ns = self._cm_ns.rsplit('/', 1)[0] if ns not in self._cm_checked: try: for jnt, lims in get_joint_limits( description=rospy.get_param( '{}/robot_description'.format( ns))).iteritems(): self._robot_joint_limits[jnt] = lims self._cm_checked.add(ns) except KeyError: rospy.logwarn( 'Could not find a valid robot_description parameter in namespace {}' .format(ns)) try: for jnt, lims in get_joint_limits( description=rospy.get_param( 'robot_description')).iteritems(): self._robot_joint_limits[jnt] = lims except KeyError: rospy.logwarn( 'Could not find robot_description parameter') valid_jtc = [] for jtc_info in running_jtc: has_limits = all(name in self._robot_joint_limits for name in _jtc_joint_names(jtc_info)) if has_limits: valid_jtc.append(jtc_info) valid_jtc_names = [data.name for data in valid_jtc] # Update widget update_combo(self._widget.jtc_combo, sorted(valid_jtc_names))
def _update_jtc_list(self): # Clear controller list if no controller information is available if not self._list_controllers: self._widget.jtc_combo.clear() return # List of running controllers with a valid joint limits specification # for _all_ their joints running_jtc = self._running_jtc_info() if running_jtc and not self._robot_joint_limits: self._robot_joint_limits = get_joint_limits() # Lazy evaluation valid_jtc = [] for jtc_info in running_jtc: has_limits = all(name in self._robot_joint_limits for name in _jtc_joint_names(jtc_info)) if has_limits: valid_jtc.append(jtc_info); valid_jtc_names = [data.name for data in valid_jtc] # Update widget update_combo(self._widget.jtc_combo, sorted(valid_jtc_names))
def _update_cm_list(self): update_combo(self._widget.cm_combo, self._list_cm())