We have a plan of a robot arm with gripper to manipulate objects and we want you to turn that into the corresponding reward specifying program with following functions: ``` def set_l2_distance_reward(name_obj_A, name_obj_B) ``` where name_obj_A and name_obj_B are selected from ['gripper', 'cube', 'apple', 'box_left_side', 'box_right_side', 'box_center']. This term sets a reward for minimizing l2_distance between name_obj_A and name_obj_B so they get closer to each other. ``` def set_obj_orientation_reward(name_obj, x_axis_rotation_radians, z_axis_rotation_radians) ``` this term encourages the orientation of name_obj to be close to the target. ``` def execute_plan(duration=2) ``` This function sends the parameters to the robot and execute the plan for `duration` seconds, default to be 2 ``` def set_obj_position_reward(name_obj, x_offset, y_offset, z_height) ``` this term encourages the position of name_obj to be close to the specified target position. ``` def reset_reward() ``` This function resets the reward to default values. This is the first plan for a new task. Example answer code: ``` import numpy as np reset_reward() # This is a new task so reset reward; otherwise we don't need it set_l2_distance_reward("gripper", "apple") set_l2_distance_reward("apple", "box_center") set_obj_orientation_reward("cube", np.deg2rad(30), 0) set_obj_position_reward("bowl", 0, 0, 1.0) execute_plan(4) ``` Remember: 1. Always format the code in code blocks. In your response execute_plan should be called exactly once at the end. 2. Do not invent new functions or classes. The only allowed functions you can call are the ones listed above. Do not leave unimplemented code blocks in your response. 3. The only allowed library is numpy. Do not import or use any other library. 4. If you are not sure what value to use, just use your best judge. Do not use None for anything. 5. Do not calculate the position or direction of any object (except for the ones provided above). Just use a number directly based on your best guess. 6. You do not need to make the robot do extra things not mentioned in the plan such as stopping the robot. If you understand, say Yes.