def test_work_order(self, json_file=None): from work_order import ( get_work_order, get_sorted_work_order, get_work_order_msg, ) from common import get_object_list if json_file is None: json_file = os.path.join(pkg_path, 'data/apc-a.json') # for original work order work_order = list(get_work_order(json_file)) self.assertEqual(len(work_order), len('abcdefghijkl')) object_list = get_object_list() for bin_, object_ in work_order: self.assertIn(bin_, 'abcdefghijkl') self.assertIn(object_, object_list) # for sorted work order sorted_work_order = list(get_sorted_work_order(json_file)) self.assertEqual(len(sorted_work_order), len('abcdefghijkl')) for bin_, object_ in sorted_work_order: self.assertIn(bin_, 'abcdefghijkl') self.assertIn(object_, object_list) # for msg msg = get_work_order_msg(json_file) self.assertEqual(len(msg['left'].array), 8) self.assertEqual(len(msg['right'].array), 4) for lr in ('left', 'right'): for order in msg[lr].array: self.assertIn(order.bin, 'abcdefghijkl') self.assertIn(order.object, object_list)
def test_work_order(self, json_file=None): from work_order import get_work_order, get_sorted_work_order, get_work_order_msg if json_file is None: json_file = os.path.join(pkg_path, "data/apc-a.json") # for original work order work_order = list(get_work_order(json_file)) self.assertEqual(len(work_order), len("abcdefghijkl")) object_list = jsk_2015_apc_common.data.object_list() for bin_, object_ in work_order: self.assertIn(bin_, "abcdefghijkl") self.assertIn(object_, object_list) # for sorted work order sorted_work_order = list(get_sorted_work_order(json_file)) self.assertEqual(len(sorted_work_order), len("abcdefghijkl")) for bin_, object_ in sorted_work_order: self.assertIn(bin_, "abcdefghijkl") self.assertIn(object_, object_list) # for msg msg = get_work_order_msg(json_file) self.assertEqual(len(msg["left"].array), 8) self.assertEqual(len(msg["right"].array), 4) for lr in ("left", "right"): for order in msg[lr].array: self.assertIn(order.bin, "abcdefghijkl") self.assertIn(order.object, object_list)
def test_work_order(self, json_file=None): from work_order import ( get_work_order, get_sorted_work_order, get_work_order_msg, ) if json_file is None: json_file = os.path.join(pkg_path, 'data/apc-a.json') # for original work order work_order = list(get_work_order(json_file)) self.assertEqual(len(work_order), len('abcdefghijkl')) object_list = jsk_apc2015_common.data.object_list() for bin_, object_ in work_order: self.assertIn(bin_, 'abcdefghijkl') self.assertIn(object_, object_list) # for sorted work order sorted_work_order = list(get_sorted_work_order(json_file)) self.assertEqual(len(sorted_work_order), len('abcdefghijkl')) for bin_, object_ in sorted_work_order: self.assertIn(bin_, 'abcdefghijkl') self.assertIn(object_, object_list) # for msg msg = get_work_order_msg(json_file) self.assertEqual(len(msg['left'].array), 8) self.assertEqual(len(msg['right'].array), 4) for lr in ('left', 'right'): for order in msg[lr].array: self.assertIn(order.bin, 'abcdefghijkl') self.assertIn(order.object, object_list)
def main(): json_file = rospy.get_param('~json', None) if json_file is None: rospy.logerr('must set json file path to ~json') return work_order = get_sorted_work_order(json_file=json_file) first_orders = dict(left='', right='') for bin_, _ in work_order: if bin_ in 'abdeghjk' and first_orders['left'] == '': first_orders['left'] = bin_ elif bin_ in 'cfil' and first_orders['right'] == '': first_orders['right'] = bin_ elif first_orders['left'] == '' and first_orders['right'] == '': break rospy.set_param('/left_process/target', first_orders['left']) rospy.set_param('/right_process/target', first_orders['right']) rospy.set_param('/left_process/state', 'wait_for_user_input') rospy.set_param('/right_process/state', 'wait_for_user_input') rospy.set_param('/total_score', 0) # wait for rqt_yn_btn wait_for_rqt_yn_btn = True while wait_for_rqt_yn_btn and (not rospy.is_shutdown()): try: rospy.wait_for_service('/rqt_yn_btn', timeout=10) wait_for_rqt_yn_btn = False except rospy.ROSException, e: rospy.logerr('timeout for /rqt_yn_btn: {0}'.format(e)) rospy.sleep(1)