示例#1
0
 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)
示例#3
0
 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)
示例#4
0
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)