{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,26]],"date-time":"2026-09-26T13:15:33Z","timestamp":1790428533576,"version":"4.1.0"},"reference-count":30,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2016,7,11]],"date-time":"2016-07-11T00:00:00Z","timestamp":1468195200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Graph."],"published-print":{"date-parts":[[2016,7,11]]},"abstract":"<jats:p>\n            When designing trajectories for quadrotor cameras, it is important that the trajectories respect the dynamics and physical limits of quadrotor hardware. We refer to such trajectories as being\n            <jats:italic>feasible<\/jats:italic>\n            . In this paper, we introduce a fast and user-friendly algorithm for generating feasible quadrotor camera trajectories. Our algorithm takes as input an infeasible trajectory designed by a user, and produces as output a feasible trajectory that is as similar as possible to the user's input. By design, our algorithm does not change the spatial layout or visual contents of the input trajectory. Instead, our algorithm guarantees the feasibility of the output trajectory by\n            <jats:italic>re-timing<\/jats:italic>\n            the input trajectory, perturbing its timing as little as possible while remaining within velocity and control force limits. Our choice to perturb the timing of a shot, while leaving the spatial layout and visual contents of the shot intact, leads to a well-behaved non-convex optimization problem that can be solved at interactive rates.\n          <\/jats:p>\n          <jats:p>We implement our algorithm in an open-source tool for designing quadrotor camera shots, where we achieve interactive performance across a wide range of camera trajectories. We demonstrate that our algorithm is between 25x and 45x faster than a spacetime constraints approach implemented using a commercially available solver. As we scale to more finely discretized trajectories, this performance gap widens, with our algorithm outperforming spacetime constraints by between 90x and 180x. Finally, we fly 5 feasible trajectories generated by our algorithm on a real quadrotor camera, producing video footage that is faithful to Google Earth shot previews, even when the trajectories are at the quadrotor's physical limits.<\/jats:p>","DOI":"10.1145\/2897824.2925980","type":"journal-article","created":{"date-parts":[[2016,7,11]],"date-time":"2016-07-11T16:04:33Z","timestamp":1468253073000},"page":"1-11","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":52,"title":["Generating dynamically feasible trajectories for quadrotor cameras"],"prefix":"10.1145","volume":"35","author":[{"given":"Mike","family":"Roberts","sequence":"first","affiliation":[{"name":"Stanford University"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Pat","family":"Hanrahan","sequence":"additional","affiliation":[{"name":"Stanford University"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2016,7,11]]},"reference":[{"key":"e_1_2_2_1_1","unstructured":"3D Robotics 2015. Solo. http:\/\/3drobotics.com\/solo.  3D Robotics 2015. Solo. http:\/\/3drobotics.com\/solo."},{"key":"e_1_2_2_2_1","unstructured":"APM 2015. APM Autopilot Suite. http:\/\/ardupilot.com.  APM 2015. APM Autopilot Suite. http:\/\/ardupilot.com."},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.2514\/2.4231"},{"key":"e_1_2_2_4_1","volume-title":"Mediterranean Conference on Control and Automation","author":"Bouktir Y.","year":"2008"},{"key":"e_1_2_2_5_1","unstructured":"Boyd S. 2008. Convex optimization II (course notes for Stanford EE364b). http:\/\/stanford.edu\/class\/ee364b.  Boyd S. 2008. Convex optimization II (course notes for Stanford EE364b). http:\/\/stanford.edu\/class\/ee364b."},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1177\/0278364914558129"},{"key":"e_1_2_2_7_1","volume-title":"European Conference on Control (ECC)","author":"Cowling I. D.","year":"2007"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/70.62044"},{"key":"e_1_2_2_9_1","volume-title":"International Conference on Robotics and Automation (ICRA)","author":"Deits R.","year":"2015"},{"key":"e_1_2_2_10_1","unstructured":"DJI 2015. DJI Go. http:\/\/www.dji.com\/product\/goapp.  DJI 2015. DJI Go. http:\/\/www.dji.com\/product\/goapp."},{"key":"e_1_2_2_11_1","unstructured":"DJI 2015. DJI Ground Station. http:\/\/www.dji.com\/product\/pc-ground-station.  DJI 2015. DJI Ground Station. http:\/\/www.dji.com\/product\/pc-ground-station."},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/882262.882286"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.automatica.2014.02.011"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2858036.2858353"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1111\/j.1467-8659.2012.03189.x"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1137\/S1052623499350013"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2816795.2818106"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.5772\/53754"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1080\/00207179.2013.875224"},{"key":"e_1_2_2_20_1","volume-title":"SCA","author":"McCann J.","year":"2006"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10514-012-9281-4"},{"key":"e_1_2_2_22_1","volume-title":"International Conference on Robotics and Automation (ICRA)","author":"Mellinger D.","year":"2011"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1015706.1015754"},{"key":"e_1_2_2_24_1","first-page":"6","article-title":"Minimum-time control of robotic manipulators with geometric path constraints","volume":"30","author":"Shin K. G.","year":"1985","journal-title":"Transactions on Automatic Control"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/70.88024"},{"key":"e_1_2_2_26_1","unstructured":"SymPy 2014. SymPy: Python library for symbolic mathematics. http:\/\/www.sympy.org.  SymPy 2014. SymPy: Python library for symbolic mathematics. http:\/\/www.sympy.org."},{"key":"e_1_2_2_27_1","unstructured":"Tedrake R. 2016. Underactuated robotics: Algorithms for walking running swimming flying and manipulation (course notes for MIT 6.832). http:\/\/underactuated.mit.edu.  Tedrake R. 2016. Underactuated robotics: Algorithms for walking running swimming flying and manipulation (course notes for MIT 6.832). http:\/\/underactuated.mit.edu."},{"key":"e_1_2_2_28_1","volume-title":"European Control Conference (ECC)","author":"Van Loock W.","year":"2013"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/TAC.2009.2028959"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/378456.378507"}],"container-title":["ACM Transactions on Graphics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2897824.2925980","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2897824.2925980","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:55:05Z","timestamp":1750222505000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2897824.2925980"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,7,11]]},"references-count":30,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2016,7,11]]}},"alternative-id":["10.1145\/2897824.2925980"],"URL":"https:\/\/doi.org\/10.1145\/2897824.2925980","relation":{},"ISSN":["0730-0301","1557-7368"],"issn-type":[{"value":"0730-0301","type":"print"},{"value":"1557-7368","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,7,11]]},"assertion":[{"value":"2016-07-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}