100 CPU Usage CPU Usage (%) 90 80 70 60 50 (a) 0 100 200 300 Time (s) 400 Figure 5. The percentage of CPU time used by the system (including host OS) while following a trajectory similar to that in Figure 4(c). 0.15 X Y Z 0.1 Error (m) 0.05 0 (b) -0.05 -0.1 -0.15 Number of Samples -0.2 0 30 20 10 0 30 20 10 0 30 20 10 0 10 −0.1 −0.1 −0.1 20 30 40 Time (s) (a) 50 −0.05 0 0.05 X Error (m) −0.05 0 0.05 Y Error (m) −0.05 0 0.05 Z Error (m) 60 0.1 0.1 0.1 70 0.15 (c) 0.15 Figure 7. (a) Maps generated during autonomous navigation across multiple floors and (b) and (c) through confined environments with small loops. The vehicle and its trajectory are depicted as a red mesh and line, respectively. 0.15 (b) Figure 6. The robot is commanded to hover based on feedback from the onboard estimator. The (a) resulting regulation error from the closed-loop system and (b) its distribution are shown. Navigation in Confined Multifloor Indoor Environments We now consider autonomous navigation in confined indoor environments with single or multiple floors. To verify map consistency, environments with small loops are considered. While the quadrotor is autonomous, the planned trajectory is determined by a user specifying goal locations with respect to the map. Figure 7(a) shows the map generated by the robot navigating through an indoor two-floor environment. The robot starts on the first floor and transitions to the second floor via a stairwell [Figure 8(a)]. The vehicle returns to the starting location on the first floor by flying through a window into an open lobby [Figure 8(b)]. The vehicle side clearance when passing through the window is ~5 cm. Although we do not have ground truth for this environment, we observe that there is minimal error or drift in the map. The robot is DECEMBER 2013 * IEEE ROBOTICS & AUTOMATION MAGAZINE * 45