merging iface with other work

This commit is contained in:
Pavel Lutskov
2019-02-09 16:48:45 +01:00
3 changed files with 31 additions and 6 deletions

View File

@@ -3,16 +3,20 @@
<!--Launch file for Test of teleoperating NAO project--> <!--Launch file for Test of teleoperating NAO project-->
<launch> <launch>
<arg name="autoimitate" default="--no-autoimitate"/>
<arg name="controller" default="dumb"/>
<node name="usb_cam" pkg="usb_cam" type="usb_cam_node"/> <node name="usb_cam" pkg="usb_cam" type="usb_cam_node"/>
<node name="aruco_detector" pkg="teleoperation" type="aruco_detector" <node name="aruco_detector" pkg="teleoperation" type="aruco_detector"
output="screen"/> output="screen"/>
<node name="speech_server" pkg="teleoperation" type="speech_server.py" <node name="speech_server" pkg="teleoperation" type="speech_server.py"
output="screen"/> output="screen"/>
<node name="masterloop" pkg="teleoperation" type="masterloop.py" <node name="masterloop" pkg="teleoperation" type="masterloop.py"
output="screen"/> output="screen" args="$(arg autoimitate)"/>
<node name="hand_ler" pkg="teleoperation" type="hand_ler.py"/> <node name="hand_ler" pkg="teleoperation" type="hand_ler.py"/>
<node name="imitator" pkg="teleoperation" type="imitator.py" <node name="imitator" pkg="teleoperation" type="imitator.py"
output="screen"/> output="screen" args="--controller $(arg controller)"/>
<node name="walker" pkg="teleoperation" type="walker.py"/> <node name="walker" pkg="teleoperation" type="walker.py"/>
<node name="fall_detector" pkg="teleoperation" type="fall_detector.py"/> <node name="fall_detector" pkg="teleoperation" type="fall_detector.py"/>

View File

@@ -15,8 +15,26 @@ _inform_masterloop = inform_masterloop_factory('imitator')
TORSO = False TORSO = False
def controller_factory(ctrl):
if ctrl == 'nao_cartesian':
return lambda my_arm_xyz, side: nao_cart_movement(my_arm_xyz, side)
if ctrl == 'dumb':
cfunc = dumb
elif ctrl == 'our_cartesian':
cfunc = our_cartesian
return lambda my_arm_xyz, side: movement(my_arm_xyz, side, cfunc)
if __name__ == '__main__': if __name__ == '__main__':
rospy.init_node('imitator') rospy.init_node('imitator')
ap = ArgumentParser()
ap.add_argument('--controller', default='dumb', const='dumb', nargs='?',
choices=['dumb', 'nao_cartesian', 'our_cartesian'],
help='Choose the controller for arm motions')
args, _ = ap.parse_known_args()
imitation_cycle = controller_factory(args.controller)
rospy.wait_for_service('inform_masterloop') rospy.wait_for_service('inform_masterloop')
ll = tf.TransformListener() ll = tf.TransformListener()
@@ -56,4 +74,4 @@ if __name__ == '__main__':
my_arm_xyz = np.array(arm) - np.array(a0) my_arm_xyz = np.array(arm) - np.array(a0)
# rospy.loginfo('{}'.format(my_arm_xyz)) # rospy.loginfo('{}'.format(my_arm_xyz))
# rospy.loginfo('{}'.format(dumb(my_arm_xyz, side))) # rospy.loginfo('{}'.format(dumb(my_arm_xyz, side)))
movement(my_arm_xyz, side, dumb) imitation_cycle(my_arm_xyz, side)

View File

@@ -140,9 +140,12 @@ if __name__ == '__main__':
rospy.init_node('masterloop') rospy.init_node('masterloop')
ap = ArgumentParser() ap = ArgumentParser()
ap.add_argument('-i', '--autoimitate', aig = ap.add_mutually_exclusive_group(required=False)
help='Switch between moving and imitating automatically', aig.add_argument('--autoimitate', dest='autoimitate',
action='store_true') action='store_true')
aig.add_argument('--no-autoimitate', dest='autoimitate',
action='store_false')
ap.set_defaults(autoimitate=False)
args, _ = ap.parse_known_args() args, _ = ap.parse_known_args()
AI = args.autoimitate AI = args.autoimitate