{"id":8,"date":"2015-04-26T17:02:21","date_gmt":"2015-04-26T21:02:21","guid":{"rendered":"http:\/\/flyingmanipulators.lcsr.jhu.edu\/?page_id=8"},"modified":"2018-10-16T17:49:11","modified_gmt":"2018-10-16T21:49:11","slug":"research","status":"publish","type":"page","link":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/research\/","title":{"rendered":"Software Packages"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2b393c083b5\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2b393c083b5\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/research\/#Geometric_Control_Optimization_and_Planning_Library_GCOP\" >Geometric Control Optimization and Planning Library (GCOP)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/research\/#Gazebo_MATLAB_Bridge\" >Gazebo MATLAB Bridge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/research\/#Gcop-ROS-Packages\" >Gcop-ROS-Packages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/research\/#Aerial_autonomy\" >Aerial autonomy<\/a><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Geometric_Control_Optimization_and_Planning_Library_GCOP\"><\/span><a href=\"https:\/\/github.com\/jhu-asco\/gcop\">Geometric Control Optimization and Planning Library (GCOP)<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Our lab( <a href=\"http:\/\/asco.lcsr.jhu.edu\">ASCO<\/a>) has developed a C++ library for optimal control, estimation, and planning of dynamic systems. The package provides a framework for optimal control of dynamic systems using different well-known optimization methods such as &#8220;Cross Entropy Sampling&#8221;, &#8220;Differential Dynamic Programming (DDP)&#8221;, &#8220;Levinberg-Marquardt GN method&#8221;, &#8220;Simultaneous\u00a0Perturbation and Stochastic Approximation (SPSA)&#8221;. \u00a0The library is templated to be able to easily extend to new systems and optimization algorithms.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-has-aspect-ratio wp-embed-aspect-16-9\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Fast navigation in a simulated environment using a nonlinear quad model\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/o5RNHOb_T_A?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gazebo_MATLAB_Bridge\"><\/span><a href=\"https:\/\/github.com\/jhu-asco\/gazebo_rosmatlab_bridge\">Gazebo MATLAB Bridge<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">In this project, we built a Matlab interface to control the gazebo models through a fast interface while still being deterministic. The goal is to use gazebo physics engine for sampling high quality physics based trajectories to apply optimal control techniques. This can be used for sampling based optimization methods and at the same time can also work with non-linear control methods.\u00a0 We have applied the interface to different robotic systems such as quadrotors, industrial arms, autonomous vehicles, and satellites etc.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/picture_collage.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/picture_collage-1024x576.png\" alt=\"picture_collage\" class=\"wp-image-43\" srcset=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/picture_collage-1024x576.png 1024w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/picture_collage-300x169.png 300w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/picture_collage-624x351.png 624w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption> Applications of Gazebo MATLAB Bridge<\/figcaption><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-has-aspect-ratio wp-embed-aspect-16-9\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Physics-based rough terrain navigation using stochastic trajectory optimization\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/oxpE6lvnR80?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gcop-ROS-Packages\"><\/span><a href=\"https:\/\/github.com\/jhu-asco\/gcop_ros_packages\/tree\/master\/gcop_ctrl\">Gcop-ROS-Packages<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">This package is a ROS extension to the GCOP library. It allows a user to a load a custom robot using the Universal Robot Description Format (URDF) and perform optimization using different MPC techniques. Currently, we have implemented optimal control of Autonomous vehicles, aerial manipulation and Industrial arms using this package.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/gcop_collage.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"621\" src=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/gcop_collage-1024x621.png\" alt=\"\" class=\"wp-image-29\" srcset=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/gcop_collage-1024x621.png 1024w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/gcop_collage-300x182.png 300w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/gcop_collage-624x379.png 624w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2015\/04\/gcop_collage.png 2026w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption> Applications of Gcop ROS Interface<\/figcaption><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-has-aspect-ratio wp-embed-aspect-16-9\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Real-time optimal control ROS interface\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/v02ZRE8iuxc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Aerial_autonomy\"><\/span><a href=\"https:\/\/github.com\/jhu-asco\/aerial_autonomy\">Aerial autonomy<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We developed a state machine framework to combine different primitive behaviors such as waypoint tracking and visual servoing into a rich task-based interface. This package also separates the state machine logic from the controllers and the robot hardware into separate modules. This allows for the same waypoint tracking task to be run using an MPC controller or a simple PID controller. Further, the robot hardware is implemented through a common interface allowing for us to substitute the real robot hardware with simulated systems. The package currently provides algorithms for visual servoing, waypoint tracking, MPC tracking and controlling a manipulator on a quadrotor. We further showcase the state machine framework by applying to an industrial package sorting application.<\/p>\n\n\n\n<ul class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"175\" src=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_pick-300x175.jpg\" alt=\"\" data-id=\"82\" class=\"wp-image-82\" srcset=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_pick-300x175.jpg 300w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_pick-768x449.jpg 768w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_pick-1024x598.jpg 1024w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_pick-624x365.jpg 624w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_pick.jpg 1684w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption> DJI Matrice picking a package<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_place-1.jpg\" alt=\"\" data-id=\"111\" data-link=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/research\/matrice_place-2\/\" class=\"wp-image-111\" srcset=\"https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_place-1.jpg 1920w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_place-1-300x169.jpg 300w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_place-1-768x432.jpg 768w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_place-1-1024x576.jpg 1024w, https:\/\/flyingmanipulators.lcsr.jhu.edu\/wp-content\/uploads\/2018\/10\/matrice_place-1-624x351.jpg 624w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><figcaption>DJI Matrice Placing a package<\/figcaption><\/figure><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-has-aspect-ratio wp-embed-aspect-16-9\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Reliable Pick and Place using an Autonomous Aerial Manipulator\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/Y9f3WkTsh48?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption>Pick place operation using DJI Matrice<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Geometric Control Optimization and Planning Library (GCOP) Our lab( ASCO) has developed a C++ library for optimal control, estimation, and planning of dynamic systems. The package provides a framework for optimal control of dynamic systems using different well-known optimization methods such as &#8220;Cross Entropy Sampling&#8221;, &#8220;Differential Dynamic Programming (DDP)&#8221;, &#8220;Levinberg-Marquardt GN method&#8221;, &#8220;Simultaneous\u00a0Perturbation and Stochastic [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":14,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/page-fullwidth.php","meta":{"footnotes":""},"class_list":["post-8","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/pages\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":30,"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":230,"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/pages\/8\/revisions\/230"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/media\/14"}],"wp:attachment":[{"href":"https:\/\/flyingmanipulators.lcsr.jhu.edu\/about\/wp-json\/wp\/v2\/media?parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}