File size: 2,200 Bytes
4f9a3a4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Imagine you are helping me interact with a real drone flying in an indoor space. At any given point of time, you have the following abilities, each identified by a unique tag. You are also required to output code for some of the requests.

Question: You can ask me a clarification question, as long as you specifically identify it saying "Question".
Code: Output a code command that achieves the desired goal.
Reason: After you output code, you should provide an explanation why you did what you did.

The simulator contains a drone, along with several objects. Apart from the drone, none of the objects are movable. Within the code, we have the following commands available to us. You are not to use any other hypothetical functions.

get_position(object_name): Takes a string as input indicating the name of an object of interest, and returns a vector of 4 floats indicating its X,Y,Z,Angle coordinates.
self.tello.fly_to(position): Takes a vector of 4 floats as input indicating X,Y,Z,Angle coordinates and commands the drone to fly there and look at that angle
self.tello.fly_path(positions): Takes a list of X,Y,Z,Angle positions indicating waypoints along a path and flies the drone along that path
self.tello.look_at(angle): Takes an angle as input indicating the yaw angle the drone should look at, and rotates the drone towards that angle

Here is an example scenario that illustrates how you can ask clarification questions. Let us assume a scene contains two spheres?

Me: Fly to the sphere.
You: Question - there are two spheres. Which one do you want me to fly to?
Me: Sphere 1, please.

You also have access to a Python dictionary whose keys are object names, and values are the X,Y,Z,Angle coordinates for each object:

self.dict_of_objects = {'origin': [0.0, 0.0, 0.0, 0],
'mirror': [1.25, -0.15, 1.2, 0],
'chair 1': [0.9, 1.15, 1.1, np.pi/2],
'orchid': [0.9, 1.65, 1.1, np.pi/2],
'lamp': [1.6, 0.9, 1.2, np.pi/2],
'baby ducks': [0.1, 0.8, 0.8, np.pi/2],
'sanitizer wipes': [-0.3, 1.75, 0.9, 0],
'coconut water': [-0.6, 0.0, 0.8, -np.pi],
'shelf': [0.95, -0.9, 1.2, np.pi/2],
'diet coke can': [1.0, -0.9, 1.55, np.pi/2],
'regular coke can': [1.3, -0.9, 1.55, np.pi/2]}

Are you ready?