{"id":773,"date":"2013-07-10T03:48:37","date_gmt":"2013-07-10T03:48:37","guid":{"rendered":"https:\/\/blog.drablab.org\/?p=773"},"modified":"2013-07-10T14:30:09","modified_gmt":"2013-07-10T14:30:09","slug":"making-robots-accessible-with-calico","status":"publish","type":"post","link":"https:\/\/blog.drablab.org\/?p=773","title":{"rendered":"Making Robots Accessible with Calico"},"content":{"rendered":"<p>Making robotics accessible has been a career-long goal of mine.  For many of the themes of this blog: all citizens should be empowered to use robotics (and computing) technology in their own work, and the fields of robotics and computing need to be informed by a diverse set of contributors.  My <a href = \"http:\/\/drablab.org\/keithohara\/cmsc-119-2013f\/\">class on Drones<\/a> this Fall will continue this track of teaching and research.<\/p>\n<p>Starting with some of my earliest work on using <a href = \"http:\/\/dl.acm.org\/citation.cfm?id=771712.771717&#038;coll=DL&#038;dl=GUIDE&#038;CFID=346161303&#038;CFTOKEN=51593664\">open-source software with robotics<\/a> and then later with my work with IPRE <a href = \"http:\/\/dl.acm.org\/citation.cfm?id=1509018\">on using robots in CS-1<\/a>, I have been on a mission to make robotics more open, transparent and adaptable.  My latest effort in this vein is embodied by the <a href = \"http:\/\/calicoproject.org\">Calico Project<\/a>. Calico is a learning environment for computing particularly suited for robotics.<\/p>\n<p><img src = \"http:\/\/calicoproject.org\/wiki\/images\/thumb\/d\/d1\/CalicoLogo.gif\/150px-CalicoLogo.gif\" align=\"right\" style=\"margin: 0px 20px\"><\/p>\n<p>Calico is about choice: choice of operating system, choice of programming language, and choice of programming context. The particular operating system (e.g., Windows, Mac OS X, and Linux) or programming language (e.g., Java, C#, Scheme, Python, Ruby) should not limit your pedagogical mission.  Although Calico started as a way to easily program the <a href = \"http:\/\/wiki.roboteducation.org\/Myro_Hardware\">IPRE Scribbler<\/a> robot in <a href = \"http:\/\/wiki.roboteducation.org\/Myro_Reference_Manual\">Python<\/a> on all three platforms it has evolved into a system that allows students to explore a variety of computing contexts (e.g. <a href = \"http:\/\/wiki.roboteducation.org\/Calico_Processing\">Processing-inspired graphics<\/a>)  with a variety of languages (e.g. <a href = \"http:\/\/wiki.roboteducation.org\/Calico_Scheme\">scheme<\/a>). We have extended Calico to work with other robot platforms like the <a href = \"http:\/\/mindstorms.lego.com\/en-us\/default.aspx\">Lego NXT<\/a> and the <a href = \"http:\/\/www.finchrobot.com\/\">Finch<\/a>. Our next step, in the spirit of <a href = \"http:\/\/en.wikipedia.org\/wiki\/Python_Robotics\">Pyro<\/a>, is to use Calico as a front-end to the <a href =\"http:\/\/www.ros.org\/wiki\/\">Robot Operating System (ROS)<\/a>. <\/p>\n<p><img src = \"http:\/\/drablab.org\/images\/slcdrone.jpg\" width=\"250\" align=\"left\" style=\"margin: 0px 20px\"><\/p>\n<p> Last week, we had a Calico summer research meet-up at <a href = \"http:\/\/www.slc.edu\/\">Sarah Lawrence College<\/a>.  Part of this meeting was devoted to understanding how we could use ROS with Calico. A prototype system was presented that is able to control both the simple ROS <a href = \"http:\/\/www.ros.org\/wiki\/turtlesim\">turtle simulation<\/a>, but also the <a href = \"http:\/\/www.ros.org\/wiki\/stage\/Tutorials\/SimulatingOneRobot\">Stage<\/a> robot simulation, the <a href = \"http:\/\/git.calicoproject.org\/calico\/src\/20c869e0e67fe638770bd6a959f5501c3373dcba\/examples\/python\/Robots\/MyROS\/myroardrone.py?at=master\">iRobot Create<\/a>, and the Parrot <a href = \"https:\/\/github.com\/AutonomyLab\/ardrone_autonomy\">AR Drone<\/a>.  We are in the process of flushing out this interface and writing a proposal, stay tuned!<\/p>\n<p><!--more--><\/p>\n<p>In fact, we were able to use the Drone to take a group portrait using the following <a href = \"http:\/\/git.calicoproject.org\/calico\/src\/20c869e0e67fe638770bd6a959f5501c3373dcba\/examples\/python\/Robots\/MyROS\/myroardrone.py?at=master\">Myro snippet<\/a>:<\/p>\n<pre>\r\nfrom Myro import *\r\nmakeRobot(\"ROSARDrone\")\r\ntakeoff()\r\nl = []\r\nfor t in timer(10):\r\n  l.append(takePicture())\r\nland()\r\nsavePicture(l, \"us.gif\")\r\n<\/pre>\n<p><img src = \"http:\/\/drablab.org\/calicoros.gif\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Making robotics accessible has been a career-long goal of mine. For many of the themes of this blog: all citizens should be empowered to use robotics (and computing) technology in their own work, and the fields of robotics and computing need to be informed by a diverse set of contributors. My class on Drones this &hellip; <a href=\"https:\/\/blog.drablab.org\/?p=773\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Making Robots Accessible with Calico<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-773","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.drablab.org\/index.php?rest_route=\/wp\/v2\/posts\/773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.drablab.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.drablab.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.drablab.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.drablab.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=773"}],"version-history":[{"count":10,"href":"https:\/\/blog.drablab.org\/index.php?rest_route=\/wp\/v2\/posts\/773\/revisions"}],"predecessor-version":[{"id":845,"href":"https:\/\/blog.drablab.org\/index.php?rest_route=\/wp\/v2\/posts\/773\/revisions\/845"}],"wp:attachment":[{"href":"https:\/\/blog.drablab.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.drablab.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.drablab.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}