A Method For Automated Drone Viewpoints to Support Remote Robot Manipulation

Drones can provide a minimally-constrained adapting camera view to support robot telemanipulation. Furthermore, the drone view can be automated to reduce the burden on the operator during teleoperation. However, existing approaches do not focus on two important aspects of using a drone as an automated view provider. The first is how the drone should select from a range of quality viewpoints within the workspace (e.g., opposite sides of an object). The second is how to compensate for unavoidable drone pose uncertainty in determining the viewpoint. In this paper, we provide a nonlinear optimization method that yields effective and adaptive drone viewpoints for telemanipulation with an articulated manipulator. Our first key idea is to use sparse human-in-the-loop input to toggle between multiple automatically-generated drone viewpoints. Our second key idea is to introduce optimization objectives that maintain a view of the manipulator while considering drone uncertainty and the impact on viewpoint occlusion and environment collisions. We provide an instantiation of our drone viewpoint method within a drone-manipulator remote teleoperation system. Finally, we provide an initial validation of our method in tasks where we complete common household and industrial manipulations.


I. INTRODUCTION
Remotely teleoperated robots can assist in many unstructured and inaccessible settings. Effective telemanipulation in these environments requires the remote operator to achieve sufficient situational awareness for manipulation. One of the major factors affecting awareness is visual information, which benefits from quality live views during manipulation. The requirements for a quality view can vary dramatically over the course of the task, requiring a variety of positions and orientations. One solution to meet these requirements is to provide an adapting view from a camera on a drone. To reduce the cognitive load and effort associated with manual control of the drone camera, the drone viewpoint can be automated based on available environment and task information. However, while an automated drone has the This work was supported in part by a NASA University Leadership Initiative (ULI) grant awarded to the UW-Madison and The Boeing Company (Cooperative Agreement # 80NSSC19M0124). 1  [esenft|pragathi|gleicher|bilge]@cs.wisc.edu Top: A potential application of our method where an automated drone view supports a user teleoperating a robotic manipulator to press an estop button. Our method suggests alternate drone viewpoints (red) to which the operator can reposition the drone for additional perspective. Bottom: The operator can use the adaptive drone view and additional visual information, such as a view from the end-effector camera, to complete the task.
potential to assist operators with the range of views required to support manipulation tasks, using a drone also introduces challenges. One challenge introduced by the mobility of the drone is how to select a viewpoint when there are multiple quality viewpoints spread across the workspace. Another challenge is how the viewpoint selection should compensate for drone flight characteristics, such as stability of the viewpoint and occlusions or collisions with objects in the environment. To address these challenges, we propose a method that combines human-toggling of automaticallygenerated drone viewpoints with an otherwise automated drone view that considers occlusions, collisions, and drone uncertainty. In our implementation, an operator controls a manipulator through a remote interface and the drone automatically tracks the end-effector to provide an appropriate task view. Many existing works, summarized in Section II, have used drones to provide a dynamic view for applications such as search and rescue or cinematography. However, these existing methods have not focused on providing an automated drone view that is designed for cluttered manipulation environments. Manipulations often benefit from the perspective of multiple viewpoints of the task, for example to see specific parts of the manipulated object. However, particularly in cluttered environments, these viewpoints can require drastically different camera positions. For example, when pressing a button on a panel, as shown in Figure 1, two good viewpoints may be on opposite sides of the workspace. Our method leverages two simultaneous optimizations to allow operators to toggle between multiple viewpoints during manipulation tasks. The first optimization locally commands the drone pose. The second optimization globally queries the workspace, aggregating alternate viewpoints where the operators can reposition the drone, for example to get a different perspective of the manipulation task. When providing viewpoints in cluttered environments, the challenge of uncertainty in the drone's command tracking (i.e., small perturbations and oscillations from the desired pose) must also be addressed. Failing to account for uncertainty could lead to unexpected collisions or occluded views.
In this work, we present a method to enable an automated drone viewpoint for telemanipulation tasks. Our method combines a set of nonlinear optimization objectives, which are defined based on environment modeling from a sensor mounted on the manipulator and empirically measured drone pose uncertainty. These objectives are used within a localglobal optimization that both controls the drone and searches for and proposes alternate viewpoints to the operator. We provide an open-source implementation of our method which provides multiple live camera views from an RGB-D camera mounted to the manipulator and the drone on-board camera. Finally, we provide an initial validation of our method in an indoor, cluttered environment by performing manipulations of household and industrial objects.

II. RELATED WORK A. Methods for Camera Control
Automatic camera control has been studied extensively in computer graphics to provide users with an effective view of a virtual environment (see [1] and [2] for surveys). Many of these existing methods rely on a fully unconstrained camera and a complete understanding of the virtual scene. In real-world scenarios, automatic camera control can be achieved using a robot (such as a drone) that dynamically and autonomously react to visual changes in the environment. In robotics, visual servoing [3] and active perception [4], [5] are control methods that are used to move a robot based on a stream of vision data. In visual servoing, features extracted from vision data are used to define a target pose for the robot and to determine how the robot should move [6]. This technique has been used previously for autonomous drone control (e.g., in [7] and [8]). In active perception, a robot (with an on-board camera) autonomously adapts its viewpoint to gain more information to complete tasks such as object recognition, manipulation, or reconstruction.
We draw from the optimization-based techniques for camera control in computer graphics where visual properties are encoded as objectives, but include real-world drone considerations. Additionally, to address the specific case of telemanipulation, our method is designed to work with an approximate geometric model of the environment captured on site by sensors mounted on the manipulator. Our work shares parallels with 3D visual servoing, but unlike active perception where the viewpoint is adapted for a robot to autonomously complete a task, our method adapts the viewpoint to support human users completing manipulation tasks.

B. Vision for Remote Robot Teleoperation
During teleoperation, effective visual feedback from the remote environment is critical for the operator's situational awareness. A single static view of the remote environment is unlikely to provide all the visual information necessary for adequate awareness [9]. While multiple static cameras can sometimes provide such information (e.g., in [10], [11]), the placement of the cameras is often strategically chosen for the scenario at hand, and slight variations in the task or the environment can make it difficult to complete the task. Additionally, at the time of robot deployment, environments may be inaccessible for setting up multiple static cameras. Hence, one or more dynamic cameras (i.e., cameras that can provide different views) can be valuable in the presence of varying task requirements. Manually controlling a dynamic camera can be effective in certain situations, such as first-person teleoperation of a humanoid robot (e.g., in [12], [13] using head-tracking for camera control). However, in many telerobotics applications, manually controlling a dynamic camera introduces additional workload on the operator and reduces teleoperation performance. Prior work in laparoscopic surgery [14], [15], telemanipulation [16], [17], [18], [19], and search and rescue [20], [21] has shown the effectiveness of employing autonomous dynamic cameras.

C. Drone as Viewpoint Provider
A dynamic camera can be moved using several mechanisms such as a gantry system [22], an articulated head [23], a stationary robot arm [19], a mobile robot arm [24], or a drone [21]. These mechanisms provide different types of viewpoints to the user based on their range of motion and degrees of freedom. For example, the camera on an articulated head in [23] provides first-person pan-tilt views, whereas the camera on a drone in [21] provides thirdperson, six degree-of-freedom views. Each mechanism for moving a dynamic camera has trade-offs. For example, a camera on a drone has high mobility, but uncertainty in its pose information due to flight dynamics that can result in unsafe, unstable, or occluded viewpoints. Drones have been used to provide views of teleoperated robots such as another drone [25], a construction machine [26], or a ground robot [21], [27]. However, these works have not considered cluttered manipulation environments where small errors in pose information can lead to collisions or occluded views.
Drones are also widely used for autonomous aerial cinematography. Our work shares similar goals with drone cinematography such as visual objectives that define the quality of a viewpoint [28], [29] and on-the-fly avoidance of occlusions and collisions [30]. However, visual objectives for telemanipulation need to be tailored to provide a quality viewpoint for manipulation tasks rather than to produce cinematic shots. Similarly, the occlusion and collision objectives can leverage the specific geometries present in manipulation scenarios. In many cinematography applications, events are scripted and the user is able to initially provide the system with specifications about desired viewpoints (for example, through keyframes in [31], [32]). In contrast, the required views or regions of interest are not known beforehand in a number of scenarios where robots are deployed for telemanipulation. This prevents the user from providing any information ahead of time. Thus, telemanipulation scenarios also necessitate fast, online point-to-point optimization and preclude the use of offline trajectory optimization methods.

D. Summary
Previous work has highlighted the opportunities provided by drones to provide viewpoints for robot operators. However, there remain a number of questions that need to be addressed when considering the specific scenario of telemanipulation in unknown cluttered environments.
Similar to [18], [19], [33], our work adapts viewpoints to support human users completing manipulation tasks. Our work differs from previous work in drone camera control in three ways. Our work does not require a semantic understanding of the task or full representation of the workspace; instead we use a simplified geometric understanding of the manipulator, environment, and task (similar to [34]) for selecting viewpoints. Second, we dynamically integrate user preferences by calculating and presenting the user with alternate viewpoints that can be used to reposition the drone. Finally, we draw from the work on drone pose uncertainty (see [35] for a survey) and integrate the empirically measured drone pose error into our nonlinear optimization formulation for viewpoint selection.

III. METHOD
In our method, a drone is autonomously controlled to provide an operator with a dynamic camera view during manipulation tasks. In this section, we describe geometric cost functions that define a quality viewpoint while accounting for uncertainty in the drone pose and avoiding collisions with the environment. We also describe our solution to provide the operator with alternate drone viewpoints.

A. Drone Characterization
Viewpoint characteristics (e.g., occlusion) can be sensitive to small changes in position. One challenge with using drones for dynamic viewpoints is compensating for errors in the drone pose caused by flight dynamics and disturbances. To address this challenge, we geometrically characterize the drone pose uncertainty and use this geometric characterization to inform our nonlinear optimization objectives.
Our premise is to empirically measure the maximum expected deviation of the drone pose. To do so, we use a series of command-tracking tasks (e.g., prolonged stationary pose tracking) to measure the discrepancies between the commanded and actual drone pose. The largest deviations in the drone state variables (x, y, z, θ) are used to represent the uncertainty. Practically, drones can often control yaw (i.e., angle or θ) with a relatively high degree of precision compared to Cartesian directions and we observed this effect on our platform too. Thus, we incorporate the uncertainty from the three Cartesian directions into the objectives involving geometric collisions and occlusions. Depending on the characteristics of a particular drone platform, it is also possible to add additional uncertain parameters as part of the geometric viewpoint objectives.

B. Environment modeling
To geometrically assess collisions and occlusions, the representation of the environment model needs to support rapid distance checking between shapes. In this work, we use planes as a simple geometric primitive to approximate the environment. Planar surfaces are pervasive in human-made environments (e.g., walls and tables), and there are many existing methods to recognize them from unstructured point cloud data. We use these planes to evaluate both collisions and occlusions. Further, we assume that the manipulator will interact with objects on the planes. Thus, we approximate a region of interest for manipulation by calculating the point on the plane closest to the current position of the manipulator's end-effector. This approximation allows us to formulate objectives for viewing angle and distance that effectively support manipulation.
We model the drone and manipulator by enveloping their geometries with simple primitives to obtain convex hulls that are used to approximate collision, viewing, and occlusion regions. The drone collision hull is modeled as a cuboid encapsulating the drone geometry. Each dimension of the cuboid is extended by the empirically-measured drone uncertainty. The drone viewing hull is modeled as a convex hull connecting a cuboid representing the drone camera's position and the manipulator's end effector position. The cuboid is centered on the drone camera position and has the dimensions of the drone pose uncertainty (see Figure 2). The manipulator collision hull is represented by a polyline connecting each of the joints from the base to the endeffector with a constant width based on the width of the robot. Finally, the manipulator occlusion hull is represented with the same structure as the collision hull but without the end effector as part of the polyline.

C. Drone pose optimization
The commanded drone pose is calculated online using a weighted-sum nonlinear optimization: where c i are weighted objective terms (introduced below) with corresponding weights w i and x contains the drone state variables (e.g., x, y, z, θ). The weighted objectives can be divided into three categories: collision objectives, view objectives, and motion-limiting objectives. To improve performance, the cost function at each iteration is optimized over Angle between the drone camera direction and the vector from the drone to the end effector θ β (x) Angle between the vector from the end effector to the closest plane and the vector from the end effector to the drone d dr→plane k (x) Distance between the drone collision hull and the k th plane (negative distance when intersecting) d dr→mc (x) Distance between the drone collision hull and the manipulator's collision hull d dr→ee (x) Distance between the drone and the manipulator's end effector dee→cp(x) Distance between the end-effector and the closest point on a plane d vh→pl k (x) Distance between the viewing hull and the k th plane d vh→mo (x) Distance between the viewing hull and the manipulator's occlusion hull.

dc→new(x)
Distance between the current drone position and the proposed position g P σ (.) The higher-order Gaussian with order P and a standard deviation of σ: g P σ (x) = e −(x 2 /(2σ 2 )) P

Fig. 2. Illustration of geometric quantities used in the objectives. The objective function that uses the geometric quantity is denoted in parantheses.
a small rectangular search space from the last commanded pose. Symbols used in the objectives are defined in Table I. 1) Collision objectives: These objectives steer the drone away from collisions with the environment and the manipulator.
• Environment collision: The drone should stay away from planes.
• Manipulator collision: The drone should stay away from the manipulator.
2) View objectives: These objectives provide a view that supports the operator in doing the current task. The view cost balances viewing the manipulator end effector (the element interacting with the environment) and providing enough context to solve the task. This formulation does not rely on object recognition nor inferring the task goal. We instead use geometric relations to generalize to different tasks and environments.
• Visual target: The camera should be centered on the manipulator end effector.
• Distance to visual target: When the manipulator is close to a plane, it might indicate the operator's intention to interact with an object on this plane. In this case, the drone should move closer to the manipulator.
• Perspective angle: The drone should maintain a specified angle with the plane to provide perspective of any objects on the plane.
• Environment occlusion: The drone's viewing hull should avoid intersection with environment planes.
• Manipulator occlusion: The drone's viewing hull should avoid intersection with the manipulator's occlusion hull (a polyline that excludes the end effector).
3) Motion-limiting objectives: This objective ensures that the current commanded position is within reach of the drone.

D. Alternate Viewpoint Generation and Selection
There are a variety of situations where the operator may desire a different view than what the drone is currently providing. For example, a view from a different angle in the workspace may provide additional perspective or help to gather additional task-specific information (e.g., reading a gauge on one side of a valve). There may also be instances where the online drone viewpoint optimization converges to a local minimum that is insufficient to complete the task.
In these cases, we provide the operator with a small number of quality alternate views for the drone camera. This is accomplished through a second viewpoint optimization that searches globally for alternative views that minimize the drone cost function. Specifically, this optimization uses only the previously defined view and collision objectives (i.e., no motion-limiting objectives). This optimization is seeded using a random starting drone pose and searches the full workspace at each iteration. Additionally, we add one objective to this optimization which penalizes viewpoints that are similar to the current drone viewpoint: The viewpoints from this optimization are clustered and a predefined number of top candidates are stored to maintain a diversity of viewpoints. Stored alternate viewpoints expire after a short amount of time to encourage new viewpoints as the manipulator changes pose. During operation, the user is able to cycle through the alternate viewpoints using a simple toggle. When the user identifies a preferential viewpoint, they can signal the drone to transition to the alternate viewpoint.

IV. IMPLEMENTATION
To test our method for automated drone viewpoint assistance, we developed a manipulator-drone system with a multiple-view remote interface. In this section, we describe our apparatus, optimization details, and interface design. All system-specific implementation quantities (e.g., drone uncertainty, optimization weights) appear in Table II. Our code is available online. 1 1 https://github.com/emmanuel-senft/drone-panda Optimization constants Alternate viewpoint constants 0.1 w 9 1

A. Apparatus
The setup consists of a Franka Emika robot controlled in joint position. The desired joint positions are calculated by a nonlinear inverse kinematics optimization that balances matching the desired end-effector pose, limiting joint velocity, and avoiding robot joint limits. The robot is equipped with a gripper, ATI force-torque sensor, and Kinect Azure RGB-D camera mounted to the distal link with a known transform. The drone camera is provided by a Ryze Tello drone. The drone position is captured used a Optitrack motion capture system and a proportional-derivative (PD) controller is used to command the drone velocity through a python wrapper based on the official Tello SDK. 2 The different components of the system communicate using ROS [36]. The environment is mapped from the Kinect's point cloud using RTAB-Map [37] and is acquired by running an automated routine that controls the robot-mounted camera to create an environment map. Planes are extracted from the resulting point cloud using Point Cloud Library's [38] plane segmentation. The resulting plane locations and inlier points are further processed to determine plane boundaries (i.e., edges) and non-rectangular surfaces are subdivided into smaller planes as necessary using a recursive routine.

B. Optimization
Our implementation consists of three optimization routines that determine the drone pose, manipulator pose, and alternate drone viewpoints. Each optimization was written in RUST and is solved using the PANOC method of OpEn library [39]. The search space, relative to the current drone pose, was bounded to ±1 cm for each dimension of the drone position and ±0.1 rad for the drone orientation, and θ ref and w were set empirically. A C++ wrapper connects the RUST code to ROS. The drone and manipulator pose optimizations run at 100 Hz whereas the alternate viewpoint optimization runs at 5 Hz. All of the geometric collisions and occlusions are computed using the ncollide3d 3 library. When the operator selects an alternative viewpoint, we freeze the manipulator control and use a simple path planning procedure where the drone ascends to the maximum height, moves to above the selected alternative viewpoint, and descends.

C. Interface and Controls
For telemanipulation, we developed a multi-view interface within RViz (as shown in Figure 3) which combines the drone camera view, end-effector camera view, and a simulated view. The simulated view gives a global perspective that consists of the environment point cloud, manipulator, current drone position, and the alternate proposed drone position. The interface also contains a series of widgets at the bottom of the interface, such as toggling the control frame, toggling the alternate view, commanding the drone to move to an alternate view, and the drone battery level. The available control frames are the drone camera frame, the end-effector frame, the manipulator base frame, and the simulated view camera frame. The simulated view also contains visualization of the end effector's applied torque to assist in tasks involving physical interaction, such as turning valves.
The operator uses a gamepad controller to control the 6D pose of the manipulator and to provide high-level commands to the drone such as takeoff, land, and move to alternate view.

V. PRELIMINARY STUDY
To demonstrate our method, we designed a series of common household and industrial manipulation tasks that involved operating an e-stop button, switches, circuit breakers, and valves. The environment was setup as shown in Figure  4. To assess the behavior of our system in these tasks, we carried out a preliminary validation study, involving a single expert operator. In the future, we plan to conduct user studies for a more comprehensive and multifaceted evaluation.

A. Tasks
We designed three tasks with multiple manipulations spread around the workspace. In each task, the manipulator was controlled by an expert operator located in a different room than the manipulator and drone setup. Our primary goal of this preliminary validation study was to show examples of drone viewpoints and alternate views that our system proposes over the course of manipulation tasks in cluttered environments. A secondary goal was to show that our proposed nonlinear optimization was able to avoid occlusions and collisions in live tests. Periods of occlusion (i.e., when there was a partial or no view of the end effector) and collisions for the drone were coded by two of the authors. Transitions between viewpoints (i.e., alternate viewpoints) were not considered in determining occlusions. Figure 5 shows the trajectory of the drone for each task. Example drone viewpoints are also featured in the supplemental video. 4 We also provide additional detail for Task 1 as a case study, including example views (middle of Figure 5), the evolution of the view and collision cost function (bottom of Figure 5), and a snapshot of the cost map (view and collision) in a state similar to Figure 5.D (see Figure 6). No collisions were observed during the execution of the tasks. Notable observations during each task are described below.

B. Results and Observations
Task 1 had a duration of 4:36 (four minutes and 36 seconds). No periods of occlusion were noted during this task. A notable observation was that, as the manipulator approached the stop valve, the drone view was distant and appeared to be in a local minimum. To obtain a more informative viewpoint, the operator repositioned the drone to an alternate side view of the valve (viewpoint E).
Task 2 had a duration of 4:58. There was a one second occlusion as the end effector rotated to approach the circuit breakers, which prompted the operator to reposition the drone to a side view. There was a three second occlusion of the end effector when approaching the light switches that was automatically resolved by the drone controller.
Task 3 had a duration of 3:53. There was an occlusion for five seconds as the manipulator approached the valve. The drone view was higher than desirable and appeared to be in a local minimum. The operator repositioned the drone for a closer, level view of the end effector. There was another occlusion of the gripper for less than one second that the drone resolved automatically. When the manipulator interacted with the toggle switch, the drone maintained a viewpoint that was nearly orthogonal to avoid collisions, which caused the switch to become briefly occluded for less than one second while the end effector remained visible.

VI. DISCUSSION
Our method was able to generally provide an unoccluded view of the manipulator. Observed cases of occlusion were brief and were resolved either by the autonomous viewpoint adaption or, in cases of local minima, by the operator switching to an alternate viewpoint. We believe that these preliminary results demonstrate the promise of our proposed contributions. The local-global optimization is able to generate a range of unoccluded alternate viewpoints, as shown in Figure 6, that can offer additional visual task information. The lack of collisions and minimal occlusion observed in our validation study illustrate the value of the geometric objectives conditioned on the drone uncertainty.
Limitations-Our method has some inherent limitations. First, our method relies on a static map of the environment and does not consider new or dynamic obstacles. Our map also comes from a single scan from the manipulator robot, which does not model all possible obstacles in the environment. In the future, we would like to supplement the robot map with online mapping from the drone that can both update changing parts of the map and model areas missed by the initial robot scan. Our method assumes environment features can be modeled as planes. While many engineered environments are flat, there are certain environments (e.g., curved surfaces, free-standing objects) that may not work well with our objective structure. All drone viewpoint heuristics were modeled as costs, rather than constraints. While we did not note any collisions during our preliminary evaluation, a constraint-based formulation may be appropriate in other circumstances. We geometrically bounded the drone uncertainty, however in some environments, this may be too conservative and a probabilistic model of uncertainty may be more appropriate. In some cases, the user may desire a specific viewpoint based on task semantics (e.g., reading a gauge). In the future, we would like to supplement our method with additional user controls.
Our implementation and preliminary validation had limitations we plan to address in future work. First, our drone had only four degrees of freedom, which limited the viewpoints that the optimization could consider. In the future, we would  Figure 5.E corresponds to a relocation to alternate #3. like to explore drones with a pan-tilt camera, which can provide additional views, such as overhead. Our implementation also relied on external drone state estimation via motion capture. Future work could explore how our method works with other techniques for localization. Finally, our method and system should also be evaluated in a user study with a wider range of tasks.
Conclusion-We presented a method for automated drone viewpoints during robot telemanipulation. We developed an implementation and showed through a preliminary validation that it can provide collision-free unoccluded views during common manipulation tasks.