<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>software &#8211; Robohub</title>
	<atom:link href="https://robohub.org/tag/robotics-tech-software/feed/" rel="self" type="application/rss+xml" />
	<link>https://robohub.org</link>
	<description>Connecting the robotics community to the world</description>
	<lastBuildDate>Mon, 05 Oct 2026 01:12:21 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>ep.365: ReRun An Open Source Package For Beautiful Visualizations, with  Nikolaus West  </title>
		<link>https://robohub.org/rerun-an-open-source-package-for-beautiful-visualizations/</link>
		
		<dc:creator><![CDATA[Abate De Mey]]></dc:creator>
		<pubDate>Wed, 05 Apr 2023 17:36:35 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">https://robohub.org/?p=207010</guid>

					<description><![CDATA[Nico and Emil dive deep into why they built ReRun, a tool for powerful, simple, and beautiful visualizations for Computer Vision.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2023/04/rerun-team-1024x683.jpg"/><p>Nico, Emil, and Moritz founded ReRun with the mission of making powerful visualization tools free and easily accessible for roboticists. Nico and Emil talk about how these powerful tools help debug the complex problem scopes faced by roboticists. Tune in for more.</p>
<p><iframe title="YouTube video player" src="https://www.youtube-nocookie.com/embed/GMHGC_OPrcE" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p><strong>Nikolaus West</strong><br />
Co-Founder and CEO<br />
Niko is a second-time founder and software engineer with a computer vision background from Stanford. He’s fanatic about bringing great computer vision and robotics products to the physical world.</p>
<p><strong>Emil Ernerfeldt</strong><br />
Co-Founder and CTO<br />
Emil fell in love with coding over 20 years ago and hasn’t looked back since. He’s the creator of egui, an easy-to-use immediate mode GUI in Rust, that we’re using to build Rerun. He brings a strong perspective from the gaming industry, with a focus on great and blazing fast tools.</p>
<h2>Links</h2>
<ul>
<li><a href="https://www.rerun.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ReRun</a></li>
<li><a href="https://feeds.soundcloud.com/stream/1485816322-robohubpodcast-rerun-an-open-source-package-for-powerful-visualizations.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3</a></li>
<li>Subscribe to Robohub using <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iTunes</a>, <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RSS</a>, or <a href="https://open.spotify.com/show/3jrY3lSJhTqcQ7TlunjZpk" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Spotify</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="https://feeds.soundcloud.com/stream/1485816322-robohubpodcast-rerun-an-open-source-package-for-powerful-visualizations.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Spotlights on Three Exhibitors from CVPR 2022</title>
		<link>https://robohub.org/spotlights-on-three-exhibitors-from-cvpr-2022/</link>
		
		<dc:creator><![CDATA[Abate De Mey]]></dc:creator>
		<pubDate>Thu, 01 Sep 2022 05:34:17 +0000</pubDate>
				<category><![CDATA[interviews]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">https://robohub.org/?p=205301</guid>

					<description><![CDATA[Short Spotlights on three inspiring startups who exhibited at CVPR2022]]></description>
										<content:encoded><![CDATA[<h2>Retrocausal:</h2>
<p>The team at Retrocausal built a computer vision platform that allows any manufacturer to rapidly set up an activity recognition pipeline to assist with manual assemblies. Using any standard camera pointed at an assembly station, the system can learn the assembly procedure and give real-time feedback.</p>
<div class="keep-aspect"><iframe title="Spotlight on Retrocausal: Computer Vision Assisted Assembly Processes" width="500" height="281" src="https://www.youtube-nocookie.com/embed/UZKHo2ze2XE?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></div>
<p></p>
<h2>Deci:</h2>
<p>At Deci, they are tackling the problem of taking a Machine Learning model optimized for a single hardware platform and adapting it to work on a different hardware platform. </p>
<p>When developing an ML model running on the edge, a time-consuming development cycle is made to optimize the model to run at peak capacity. However, over time hardware platforms get updated and companies need to make the decision of whether or not to update their hardware and dedicate engineering resources to manually tweak a multitude of settings.</p>
<p>Deci allows companies to upload their models to the cloud, then automatically optimize them for running on a variety of different hardware platforms that they own in their facilities.</p>
<div class="keep-aspect"><iframe title="Spotlight on Deci: The Deep Learning Development Platform" width="500" height="281" src="https://www.youtube-nocookie.com/embed/aqRCh-GXCuI?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></div>
<p></p>
<h2>StegAI:</h2>
<p>Dr. Eric Wengrowski co-founded StegAI after publishing a paper in CVPR 2019 on embedding &#8220;fingerprints&#8221; that are embedded in images and videos that are invisible to the human eye, but detectable by their software. </p>
<p>Their product modulates the pixels in an image in such a way that even after compressing, resizing, or printing out the images, their deep learning algorithms will still be able to detect the origin of the image. </p>
<p>This powerful tool is used by social media firms to protect against potential copyright infringement when users upload content to their platforms</p>
<div class="keep-aspect"><iframe title="Spotlight on Steg AI: Embedding Invisible Code Into Images" width="500" height="281" src="https://www.youtube-nocookie.com/embed/JKEhBt3Xw3I?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></div>
<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Underwater Human-Robot Interaction #ICRA2022</title>
		<link>https://robohub.org/underwater-human-robot-interaction-icra2022/</link>
		
		<dc:creator><![CDATA[Abate De Mey]]></dc:creator>
		<pubDate>Fri, 22 Jul 2022 16:54:09 +0000</pubDate>
				<category><![CDATA[interviews]]></category>
		<category><![CDATA[bio-inspired]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[icra2022]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[underwater]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">https://robohub.org/?p=205052</guid>

					<description><![CDATA[Michael Fulton describes his unique robot-to-human communication system using exaggerated body language.]]></description>
										<content:encoded><![CDATA[<p>How do people communicate when they are underwater? With body language, of course.</p>
<p>Marine environments present a unique set of challenges that render several technologies that were developed for land applications completely useless. Communicating using sound, or at least as people use sound to communicate, is one of them. </p>
<p>Michael Fulton tackles this challenge with his presentation at ICRA 2022 by using body language to communicate with an AUV underwater. Tune in for more.</p>
<div class="keep-aspect"><iframe title="Talking to Robots Underwater, With Body Language" width="500" height="281" src="https://www.youtube-nocookie.com/embed/jok6O1L01P0?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></div>
<p></p>
<p>His poster can be viewed <a href="https://michaelscottfulton.com/files/talks/rcvm_icra_2019_poster.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">here</a>.</p>
<p><span id="more-205052"></span><!--358--></p>
<h2>Michael Fulton</h2>
<p>Michael Fulton is a Ph.D. Candidate at the University of Minnesota Twin Cities. His research focuses primarily on underwater robotics with a focus on applications where robots work with humans. Specifically, human-robot interaction and robot perception using computer vision and deep learning, with the intent of creating systems that can work collaboratively with humans in challenging environments.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Exhibitors from ICRA 2022</title>
		<link>https://robohub.org/exhibitors-from-icra-2022/</link>
		
		<dc:creator><![CDATA[Abate De Mey]]></dc:creator>
		<pubDate>Mon, 11 Jul 2022 15:21:59 +0000</pubDate>
				<category><![CDATA[interviews]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[icra2022]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<guid isPermaLink="false">https://robohub.org/?p=204991</guid>

					<description><![CDATA[Tangram Vision, FLX Solutions, Exyn Technologies, and Pollen Robotics give us a live demo at ICRA 2022.]]></description>
										<content:encoded><![CDATA[<img fetchpriority="high" decoding="async" src="https://robohub.org/wp-content/uploads/2022/07/pollen-425x304.jpeg" alt="" width="1280" height="914" class="alignnone size-medium wp-image-205012" srcset="https://robohub.org/wp-content/uploads/2022/07/pollen-425x304.jpeg 425w, https://robohub.org/wp-content/uploads/2022/07/pollen-1024x731.jpeg 1024w, https://robohub.org/wp-content/uploads/2022/07/pollen-768x549.jpeg 768w, https://robohub.org/wp-content/uploads/2022/07/pollen-1536x1097.jpeg 1536w, https://robohub.org/wp-content/uploads/2022/07/pollen-2048x1463.jpeg 2048w" sizes="(max-width: 1280px) 100vw, 1280px" />
<p>At ICRA 2022, the researchers weren&#8217;t the only ones working with cutting-edge technology. We spoke to the exhibitors to get real-life demos of their products.</p>
<h2>Tangram Vision</h2>
<p><a href="https://www.tangramvision.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Tangram Vision</a> is a hardware-agnostic sensor fusion platform. It streamlines the development and deployment of critical sensor infrastructure like calibration, fusion, and monitoring for any number of cameras, depth sensors, LiDAR, radar, and IMU. Their co-founder, Adam Rodnitzky, walks us through their sensor fusion platform.</p>
<div class="keep-aspect"><iframe title="Tangram Vision - Exhibitor Spotlight #ICRA2022" width="500" height="281" src="https://www.youtube-nocookie.com/embed/ZKoSZxA_tC0?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></div>
<p></p>
<h2>FLX Solutions</h2>
<p>Matt Bilsky, Founder and CEO of <a href="https://www.flxsolutions.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FLX Solutions</a> gives us a live demo of their robot, the FLX BOT. Matt Bilsky applied his Ph.D. in Mechanical Engineering to create a novel, highly compact robot that is designed to reach and inspect parts of a building that a human cannot reach. The FLX BOT is one inch in diameter and is made of modular links that can be attached one after the other to extend the reach and degrees of freedom of the robot.</p>
<div class="keep-aspect"><iframe title="FLX Solutions - Exhibitor Spotlight #ICRA2022" width="500" height="281" src="https://www.youtube-nocookie.com/embed/oJtXgpc-yEU?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></div>
<p></p>
<h2>Exyn Technologies</h2>
<p><a href="https://www.exyn.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Exyn Technologies</a> specializes in aerial robotics, drone swarms, multi-modal sensor fusion, 3D mapping, obstacle avoidance, and autonomous navigation &amp; planning.</p>
<p>Exyn&#8217;s focus is on developing software for aerial robots so they can operate in GPS-denied environments, without human control, prior information, or pre-existing infrastructure (e.g. no motion capture system).</p>
<div class="keep-aspect"><iframe title="Exyn Technologies - Exhibitor Spotlight #ICRA2022" width="500" height="281" src="https://www.youtube-nocookie.com/embed/FcqrV-rpLlI?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></div>
<p></p>
<h2>Pollen Robotics</h2>
<p><a href="https://www.pollen-robotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pollen Robotics</a> developed the robot, Reachy, an open-source humanoid robot with a quirky appearance. Reachy&#8217;s primary userbase is researchers studying fields such as teleoperation. Using mixed autonomy, Reachy is able to be teleoperated by humans, while still having onboard intelligence to autonomously infer the actions you want it to do.</p>
<div class="keep-aspect"><iframe title="Pollen Robotics - Exhibitor Spotlight #ICRA2022" width="500" height="281" src="https://www.youtube-nocookie.com/embed/69PSY0u2sz0?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></div>
<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.355: SLAM fused with Satellite Imagery #ICRA2022, with  John McConnell  </title>
		<link>https://robohub.org/slam-fused-with-satellite-imagery-icra-2022/</link>
		
		<dc:creator><![CDATA[Abate De Mey]]></dc:creator>
		<pubDate>Wed, 25 May 2022 04:03:13 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[icra2022]]></category>
		<category><![CDATA[mapping & surveillance]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/?p=204579</guid>

					<description><![CDATA[John McConnell discusses the research presented at ICRA 2022 to reduce drift in SLAM algorithms by incorporating overhead satellite imagery.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2022/05/SLAM-Overhead-Images-1024x576.png"/><p>Underwater Autonomous Vehicles face challenging environments where GPS Navigation is rarely possible. John McConnell discusses his research, presented at ICRA 2022, into fusing overhead imagery with traditional SLAM algorithms. This research results in a more robust localization and mapping, with reduced drift commonly seen in SLAM algorithms.</p>
<div class="keep-aspect"><iframe title="Fusing SLAM with Satellite Imagery to reduce drift for AUV&#039;s" width="500" height="281" src="https://www.youtube-nocookie.com/embed/XjUkzRel8Y0?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></div>
<p></p>
<p>Satellite imagery can be obtained for free or low cost through Google or Mapbox, creating an easily deployable framework for companies in industry to implement.</p>
<p><span id="more-204579"></span></p>
<h2>Links</h2>
<ul>
<li><a href="https://feeds.soundcloud.com/stream/1274712463-robohubpodcast-slam-fused-with-satellite-imagery-icra-2022.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (12.2 MB)</a></li>
<li><a href="https://github.com/jake3991/sonar-SLAM" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Sonar SLAM opensource repo</a></li>
<li><a href="https://paperreading.club/page?id=108739" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Research Paper</a></li>
<li>Subscribe to Robohub using <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iTunes</a>, <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RSS</a>, or <a href="https://open.spotify.com/show/3jrY3lSJhTqcQ7TlunjZpk" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Spotify</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="https://feeds.soundcloud.com/stream/1274712463-robohubpodcast-slam-fused-with-satellite-imagery-icra-2022.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Tim Chung: DARPA Subterranean Challenge &#124; Sense Think Act Podcast #14</title>
		<link>https://robohub.org/tim-chung-darpa-subterranean-challenge-sense-think-act-podcast-14/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Thu, 24 Feb 2022 16:01:52 +0000</pubDate>
				<category><![CDATA[talk]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/?p=203650</guid>

					<description><![CDATA[In this episode, Audrow Nash speaks to Tim Chung, Program Manager in the Tactical Technology Office at the Defense Advanced Research Projects Agency (DARPA), on the DARPA Subterranean (SubT) Challenge. The SubT Challenge is a robotics challenge that aims to develop innovative technologies that would augment operations underground. In this conversation, they talk about the [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-203651" src="https://robohub.org/wp-content/uploads/2022/02/14-cover.png" alt="" width="1280" height="720" srcset="https://robohub.org/wp-content/uploads/2022/02/14-cover.png 1280w, https://robohub.org/wp-content/uploads/2022/02/14-cover-425x239.png 425w, https://robohub.org/wp-content/uploads/2022/02/14-cover-1024x576.png 1024w, https://robohub.org/wp-content/uploads/2022/02/14-cover-768x432.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />
<p>In this episode, Audrow Nash speaks to Tim Chung, Program Manager in the Tactical Technology Office at the Defense Advanced Research Projects Agency (DARPA), on the DARPA Subterranean (SubT) Challenge. The SubT Challenge is a robotics challenge that aims to develop innovative technologies that would augment operations underground. In this conversation, they talk about the motivation of the SubT Challenge, its systems (hardware) and virtual (simulation) challenges, how the resulting technology has been shared with the world, on benchmarking the robotics behaviors in simulation, on the challenge of scoping the SubT Challenge, and on building the final environment for the systems challenge.</p>
<p><span id="more-203650"></span></p>
<div class="keep-aspect"><iframe title="Tim Chung: DARPA Subterranean Challenge | Sense Think Act Podcast #14" width="500" height="281" src="https://www.youtube-nocookie.com/embed/-EVIFxmANg4?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></div>
<p></p>
<p><strong>Episode Links</strong></p>
<ul>
<li><a href="https://ftp.osuosl.org/pub/ros/download.ros.org/sensethinkact/episodes/STA Ep 14 - Tim Chung.mp3" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Download the episode </a></li>
<li><a href="https://www.subtchallenge.com/" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">The SubT Challenge&#8217;s Website</a></li>
<li><a href="https://www.linkedin.com/in/timothy-h-chung/" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Tim&#8217;s LinkedIn</a></li>
<li><a href="https://www.youtube.com/user/DARPAtv" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">DARPAtv&#8217;s YouTube Channel</a></li>
<li><a href="https://github.com/osrf/subt" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">SubT&#8217;s Repository on OSRF</a></li>
</ul>
<p><strong>Podcast info</strong></p>
<ul>
<li><a href="https://www.sensethinkact.com/" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Podcast website</a></li>
<li><a href="https://podcasts.apple.com/us/podcast/sense-think-act/id1582090036" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Apple Podcasts</a></li>
<li><a href="https://open.spotify.com/show/52wK4oMDvgijRk6E82tC5d" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Spotify</a></li>
<li><a href="https://www.sensethinkact.com/itunes.xml" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Podcast RSS feed</a></li>
<li><a href="https://www.youtube.com/c/SenseThinkActPodcast" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Full episodes</a></li>
<li><a href="https://www.youtube.com/channel/UChfnCpNwZzYtZ32J-pZvNDg" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Clips</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Steve Macenski: Open Source Robot Navigation &#124; Sense Think Act Podcast #13</title>
		<link>https://robohub.org/steve-macenski-open-source-robot-navigation-sense-think-act-podcast-13/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Wed, 09 Feb 2022 17:45:35 +0000</pubDate>
				<category><![CDATA[talk]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/?p=203510</guid>

					<description><![CDATA[In this episode, Audrow Nash speaks to Steve Macenski, who is the Open Source Robotics Engineering Lead at Samsung Research America. Steve leads the Nav2 project, which is an open source robot navigation framework. In this conversation, they talk about the problem and challenges of robot navigation, how Nav2 works at a high level, hybrid [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-203511" src="https://robohub.org/wp-content/uploads/2022/02/13-cover.png" alt="" width="1280" height="720" srcset="https://robohub.org/wp-content/uploads/2022/02/13-cover.png 1280w, https://robohub.org/wp-content/uploads/2022/02/13-cover-425x239.png 425w, https://robohub.org/wp-content/uploads/2022/02/13-cover-1024x576.png 1024w, https://robohub.org/wp-content/uploads/2022/02/13-cover-768x432.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />
<p>In this episode, Audrow Nash speaks to Steve Macenski, who is the Open Source Robotics Engineering Lead at Samsung Research America. Steve leads the Nav2 project, which is an open source robot navigation framework. In this conversation, they talk about the problem and challenges of robot navigation, how Nav2 works at a high level, hybrid planners, and about Steve’s experience working with the Nav2 community.</p>
<p><span id="more-203510"></span></p>
<div class="keep-aspect"><iframe title="Steve Macenski: Open Source Robot Navigation | Sense Think Act Podcast #13" width="500" height="281" src="https://www.youtube-nocookie.com/embed/opLHFBa4Gxo?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></div>
<p></p>
<p><strong>Episode Links</strong></p>
<ul>
<li><a href="https://ftp.osuosl.org/pub/ros/download.ros.org/sensethinkact/episodes/STA Ep 13 - Steve Macenski.mp3" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Download the episode </a></li>
<li><a href="https://navigation.ros.org/" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Nav2&#8217;s Website</a></li>
<li><a href="https://www.steve.macenski.com/" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Steve&#8217;s Website</a></li>
<li><a href="https://www.linkedin.com/in/steve-macenski-41a985101/" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Steve&#8217;s LinkedIn</a></li>
<li><a href="https://research.samsung.com/" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Samsung Research&#8217;s Website</a></li>
</ul>
<p><strong>Podcast info</strong></p>
<ul>
<li><a href="https://www.sensethinkact.com/" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Podcast website</a></li>
<li><a href="https://podcasts.apple.com/us/podcast/sense-think-act/id1582090036" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Apple Podcasts</a></li>
<li><a href="https://open.spotify.com/show/52wK4oMDvgijRk6E82tC5d" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Spotify</a></li>
<li><a href="https://www.sensethinkact.com/itunes.xml" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Podcast RSS feed</a></li>
<li><a href="https://www.youtube.com/c/SenseThinkActPodcast" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Full episodes</a></li>
<li><a href="https://www.youtube.com/channel/UChfnCpNwZzYtZ32J-pZvNDg" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">Clips</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.340: NVIDIA and ROS Teaming Up To Accelerate Robotics Development, with  Amit Goel  </title>
		<link>https://robohub.org/nvidia-and-ros-teaming-up-to-accelerate-robotics-development/</link>
		
		<dc:creator><![CDATA[Abate De Mey]]></dc:creator>
		<pubDate>Sat, 23 Oct 2021 20:49:23 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/?p=202230</guid>

					<description><![CDATA[Amit Goel discusses the partnership between NVIDIA and Open Robotics to improve the performance of ROS2 on the NVIDIA line of products.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2021/10/outro-1024x576.jpg"/><div class="keep-aspect"><iframe title="NVIDIA and ROS Team Up To Accelerate Robotics Development | Ep. 340" width="500" height="281" src="https://www.youtube-nocookie.com/embed/MlgO9uJs23o?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></div>
<p>
Amit Goel, Director of Product Management for Autonomous Machines at NVIDIA, discusses the new collaboration between Open Robotics and NVIDIA. The collaboration will improve the way ROS and NVIDIA&#8217;s line of products such as Isaac SIM and the Jetson line of embedded boards operate together.</p>
<p>NVIDIA&#8217;s Isaac SIM lets developers build robust and scalable simulations. Dramatically reducing the costs of capturing real-world data and speeding up development time. </p>
<p>Their Jetson line of embedded boards is core to many robotics architectures, leveraging hardware-optimized chips for machine learning, computer vision, video processing, and more.</p>
<p>The improvements to ROS will allow robotics companies to better utilize the available computational power, while still developing on the robotics-centric platform familiar to many. </p>
<p>For the developers out there, check out the ISAAC ROS Github <a href="https://github.com/NVIDIA-ISAAC-ROS" rel="noopener follow external noreferrer" target="_blank" data-wpel-link="external">repository </a>to implement this yourself.</p>
<p><span id="more-202230"></span></p>
<p><strong>Amit Goel</strong><br />
<img decoding="async" src="https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small-290x290.jpg" alt="" width="290" height="290" class="alignleft size-thumbnail wp-image-202235" srcset="https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small-290x290.jpg 290w, https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small-425x425.jpg 425w, https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small-24x24.jpg 24w, https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small-48x48.jpg 48w, https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small-96x96.jpg 96w, https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small-150x150.jpg 150w, https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small-300x300.jpg 300w, https://robohub.org/wp-content/uploads/2021/10/Amit_Goel-Small.jpg 480w" sizes="(max-width: 290px) 100vw, 290px" /><br />
Amit Goel is Director of Product Management for Autonomous Machines at NVIDIA, where he leads the product development of NVIDIA Jetson, the most advanced platform for AI computing at the edge.</p>
<p>Amit has more than 15 years of experience in the technology industry working in both software and hardware design roles. Prior to joining NVIDIA in 2011, he worked as a senior software engineer at Synopsys, where he developed algorithms for statistical performance modeling of digital designs. </p>
<p>Amit holds a Bachelor of Engineering in electronics and communication from Delhi College of Engineering, a Master of Science in electrical engineering from Arizona State University, and an MBA from the University of California at Berkeley.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="https://feeds.soundcloud.com/stream/1146840853-robohubpodcast-nvidia-and-ros-teaming-up-to-accelerate-robotics-development.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (29.8 MB)</a></li>
<li>Subscribe to Robohub using <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iTunes</a>, <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RSS</a>, or <a href="https://open.spotify.com/show/3jrY3lSJhTqcQ7TlunjZpk" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Spotify</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="https://feeds.soundcloud.com/stream/1146840853-robohubpodcast-nvidia-and-ros-teaming-up-to-accelerate-robotics-development.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Sense Think Act Podcast: Dave Coleman</title>
		<link>https://robohub.org/sense-think-act-podcast-dave-coleman/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sat, 02 Oct 2021 09:00:22 +0000</pubDate>
				<category><![CDATA[talk]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/sense-think-act-podcast-dave-coleman/</guid>

					<description><![CDATA[In this episode, Audrow Nash interviews Dave Coleman, Chief Executive Officer at PickNik Robotics. Dave speaks at a high level about what MoveIt is and what problems it helps roboticists solve, they talk about supervised autonomy, including a collaboration with NASA and MoveIt Studio, and Dave talks about MoveIt 3.0. &#160; Episode links Download the [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-201564" src="https://robohub.org/wp-content/uploads/2021/09/STA-2-Dave-Coleman-Robohub-Cover.png" alt="" width="1050" height="700" srcset="https://robohub.org/wp-content/uploads/2021/09/STA-2-Dave-Coleman-Robohub-Cover.png 1050w, https://robohub.org/wp-content/uploads/2021/09/STA-2-Dave-Coleman-Robohub-Cover-425x283.png 425w, https://robohub.org/wp-content/uploads/2021/09/STA-2-Dave-Coleman-Robohub-Cover-1024x683.png 1024w, https://robohub.org/wp-content/uploads/2021/09/STA-2-Dave-Coleman-Robohub-Cover-768x512.png 768w" sizes="(max-width: 1050px) 100vw, 1050px" />
<p>In this episode, Audrow Nash interviews Dave Coleman, Chief Executive Officer at PickNik Robotics. Dave speaks at a high level about what MoveIt is and what problems it helps roboticists solve, they talk about supervised autonomy, including a collaboration with NASA and MoveIt Studio, and Dave talks about MoveIt 3.0.</p>
<p><span id="more-201511"></span></p>
<div class="keep-aspect"><iframe title="Dave Coleman: Robot Motion Planning, MoveIt 3, and Supervised Autonomy | Sense Think Act Podcast #2" width="500" height="281" src="https://www.youtube-nocookie.com/embed/5d7F9gvMncY?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></div>
<p></p>
<p>&nbsp;</p>
<p><strong>Episode links</strong></p>
<ul>
<li><a href="https://ftp.osuosl.org/pub/ros/download.ros.org/sensethinkact/episodes/STA%20Ep%202%20-%20Dave%20Coleman.mp3" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Download the episode</a></li>
<li><a href="https://www.linkedin.cn/in/davetcoleman" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Dave Coleman&#8217;s LinkedIn profile</a></li>
<li><a href="https://picknik.ai/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">PickNik&#8217;s website</a></li>
<li><a href="https://moveit.ros.org/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">MoveIt&#8217;s website</a></li>
<li><a href="https://picknik.ai/studio/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">MoveIt Studio&#8217;s website</a></li>
</ul>
<p><strong>Subscribe</strong></p>
<ul>
<li><a href="https://www.youtube.com/channel/UC2_89LMusoMaEol3MHCeQ_A" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">YouTube</a></li>
<li><a href="https://podcasts.apple.com/us/podcast/sense-think-act/id1582090036" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apple Podcasts</a></li>
<li><a href="https://open.spotify.com/show/52wK4oMDvgijRk6E82tC5d" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Spotify</a></li>
<li><a href="https://podcasts.google.com/feed/aHR0cHM6Ly9zZW5zZXRoaW5rYWN0LmNvbS9pdHVuZXMueG1s" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Podcasts</a></li>
<li><a href="https://overcast.fm/itunes1582090036/sense-think-act" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Overcast</a></li>
<li><a href="https://pca.st/g667w2c4" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pocket Casts</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="https://ftp.osuosl.org/pub/ros/download.ros.org/sensethinkact/episodes/STA%20Ep%202%20-%20Dave%20Coleman.mp3" length="122133497" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.337: Autonomously Mapping the Seafloor, with  Anthony DiMare and  Charles Chiau  </title>
		<link>https://robohub.org/autonomously-mapping-the-seafloor/</link>
		
		<dc:creator><![CDATA[Abate De Mey]]></dc:creator>
		<pubDate>Thu, 26 Aug 2021 04:52:43 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[exploration & mining]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[underwater]]></category>
		<guid isPermaLink="false">https://robohub.org/autonomously-mapping-the-seafloor/</guid>

					<description><![CDATA[Bedrock Ocean discusses how they are building an Autonomous Underwater Vehicle to map the seafloor, as well as a data platform to standardize the processing and access of seafloor data to be used by the surveying industry at large.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2021/07/Bedrock_AUV_2_1800pixels-1024x576.png"/><div class="keep-aspect"><iframe title="Capturing Data in Uncharted Territory | Ep. 337" width="500" height="281" src="https://www.youtube-nocookie.com/embed/bJP6B5jfaOE?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></div>
<p></p>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1112903551&#038;color=%23ff5500&#038;auto_play=false&#038;hide_related=false&#038;show_comments=true&#038;show_user=true&#038;show_reposts=false&#038;show_teaser=true"></iframe></p>
<div style="font-size: 10px; color: #cccccc;line-break: anywhere;word-break: normal;overflow: hidden;white-space: nowrap;text-overflow: ellipsis; font-family: Interstate,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Garuda,Verdana,Tahoma,sans-serif;font-weight: 100;"><a href="https://soundcloud.com/robohubpodcast" title="Robohub Podcast" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Robohub Podcast</a> · <a href="https://soundcloud.com/robohubpodcast/autonomously-mapping-the-seafloor" title="Autonomously Mapping the Seafloor" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Autonomously Mapping the Seafloor</a></div>
<p>Anthony DiMare and Charles Chiau deep dive into how Bedrock Ocean is innovating in the world of Marine Surveys. At Bedrock Ocean, they are developing an Autonomous Underwater Vehicle (AUV) that is able to map the seafloor autonomously and at a high resolution. They are also developing a data platform to access, process, and visualize data captured from other companies at the seafloor. </p>
<p>Bedrock Ocean is solving two problems in the industry of Marine Surveying.<br />
1. The vast majority of the seafloor is completely unmapped<br />
2. The data that is captured from the seafloor is not standardized or centralized. </p>
<p>Seafloor data conducted by two different companies with the same or different hardware to capture the data can vary significantly in the calculated seafloor profile</p>
<p><strong>Anthony DiMare</strong><br />
Anthony previously founded Nautilus Labs, a leading maritime technology company advancing the efficiency of ocean commerce through artificial intelligence. While at Nautilus, Anthony helped global companies solve challenges with distributed, siloed maritime data systems and built the early team that launched Nautilus Platform into large publicly listed shipping companies.</p>
<p><strong>Charles Chiau</strong><br />
Charles, Bedrock’s CTO, was previously at SpaceX where he helped design the avionics systems for Crew Dragon. He also was a system integration engineer at Reliable Robotics working on their autonomous aviation system and was the CTO of DeepFlight where he worked on manned submersibles including ones for Tom Perkins, Richard Branson, and Steve Fossett.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="https://feeds.soundcloud.com/stream/1112903551-robohubpodcast-autonomously-mapping-the-seafloor.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (48.0 MB)</a></li>
<li>Subscribe to Robohub using <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iTunes</a>, <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RSS</a>, or <a href="https://open.spotify.com/show/3jrY3lSJhTqcQ7TlunjZpk" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Spotify</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="https://feeds.soundcloud.com/stream/1112903551-robohubpodcast-autonomously-mapping-the-seafloor.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.336: Mobile Outdoor Manipulation with RE2 Robotics, with  Travis Schneider  </title>
		<link>https://robohub.org/mobile-outdoor-manipulation-with-re2-robotics/</link>
		
		<dc:creator><![CDATA[Shihan Lu]]></dc:creator>
		<pubDate>Wed, 04 Aug 2021 21:35:31 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/mobile-outdoor-manipulation-with-re2-robotics/</guid>

					<description><![CDATA[Travis Schneider discusses the human-in-the-loop operation of robotics being developed at RE2 Robotics to operate in rugged outdoor environments.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-1024x1024.jpg"/><div id="attachment_200936" style="width: 1090px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-200936" class="wp-image-200936 size-full" src="https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift.jpg" alt="" width="1080" height="1080" srcset="https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift.jpg 1080w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-425x425.jpg 425w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-1024x1024.jpg 1024w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-290x290.jpg 290w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-768x768.jpg 768w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-220x220.jpg 220w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-24x24.jpg 24w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-48x48.jpg 48w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-96x96.jpg 96w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-150x150.jpg 150w, https://robohub.org/wp-content/uploads/2021/08/RE2Sapien6M-80lbLift-300x300.jpg 300w" sizes="(max-width: 1080px) 100vw, 1080px" /><p id="caption-attachment-200936" class="wp-caption-text">RE2 Sapien 6M Robot Arm</p></div>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1100190505&#038;color=%23ff5500&#038;auto_play=false&#038;hide_related=false&#038;show_comments=true&#038;show_user=true&#038;show_reposts=false&#038;show_teaser=true"></iframe></p>
<div style="font-size: 10px; color: #cccccc;line-break: anywhere;word-break: normal;overflow: hidden;white-space: nowrap;text-overflow: ellipsis; font-family: Interstate,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Garuda,Verdana,Tahoma,sans-serif;font-weight: 100;"><a href="https://soundcloud.com/robohubpodcast" title="Robohub Podcast" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Robohub Podcast</a> · <a href="https://soundcloud.com/robohubpodcast/mobile-outdoor-manipulation-with-re2-robotics" title="Mobile Outdoor Manipulation with RE2 Robotics" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Mobile Outdoor Manipulation with RE2 Robotics</a></div>
<p>In this episode, Shihan Lu interviews Travis Schneider, Business Development Manager at RE2 Robotics, focusing on their work on mobile outdoor manipulation. Travis introduces several robotic products and services of RE2, including RE2 Sapien robotic arms and human-centered system integration, and how they can be used to help rather than replace workers. He also shares his thoughts about challenges in human-robot collaboration.</p>
<p><span id="more-200918"></span></p>
<p><strong>Travis Schneider </strong><br />
<img decoding="async" class="wp-image-200922 alignleft" src="https://robohub.org/wp-content/uploads/2021/08/TravisS.jpg" alt="" width="249" height="172" />Travis Schneider, Business Development Manager at RE2 Robotics (RE2), works to foster commercial B2B partnerships with groups interested in leveraging RE2&#8217;s robotic technology for applications in a wide variety of markets, including aviation, construction, energy, and medical. With a background in Mechanical Engineering, Travis has an intimate knowledge of many of the fundamentals associated with robotic systems including electromechanical design, motion control, and associated software.</p>
<p>&nbsp;</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="https://www.resquared.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RE2 Robotics</a></li>
<li><a href="https://feeds.soundcloud.com/stream/1100190505-robohubpodcast-mobile-outdoor-manipulation-with-re2-robotics.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (12.7 MB)</a></li>
<li>Subscribe to Robohub using <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iTunes</a>, <a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RSS</a>, or <a href="https://open.spotify.com/show/3jrY3lSJhTqcQ7TlunjZpk" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Spotify</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="https://feeds.soundcloud.com/stream/1100190505-robohubpodcast-mobile-outdoor-manipulation-with-re2-robotics.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>What is the best simulation tool for robotics?</title>
		<link>https://robohub.org/what-is-the-best-simulation-tool-for-robotics/</link>
		
		<dc:creator><![CDATA[Silicon Valley Robotics]]></dc:creator>
		<pubDate>Tue, 20 Jul 2021 18:09:56 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/what-is-the-best-simulation-tool-for-robotics/</guid>

					<description><![CDATA[What is the best simulation tool for robotics? This is a hard question to answer because many people (or their companies) specialize in one tool or another. Some simulators are better at one aspect of robotics than at others. When I&#8217;m asked to recommend the best simulation tool for robotics I have to find an [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" src="https://robohub.org/wp-content/uploads/2021/07/howar1abcdef-3068769-large-820x460-1.jpeg" alt="" width="820" height="460" class="alignnone size-full wp-image-200824" srcset="https://robohub.org/wp-content/uploads/2021/07/howar1abcdef-3068769-large-820x460-1.jpeg 820w, https://robohub.org/wp-content/uploads/2021/07/howar1abcdef-3068769-large-820x460-1-425x238.jpeg 425w, https://robohub.org/wp-content/uploads/2021/07/howar1abcdef-3068769-large-820x460-1-768x431.jpeg 768w" sizes="(max-width: 820px) 100vw, 820px" />
<p>What is the best simulation tool for robotics? This is a hard question to answer because many people (or their companies) specialize in one tool or another. Some simulators are better at one aspect of robotics than at others. When I&#8217;m asked to recommend the best simulation tool for robotics I have to find an expert and hope that they are current and across a wide range of simulation tools in order to give me the best advice, which was why I took particular note of the recent review paper from Australia&#8217;s CSIRO, <a href="https://ieeexplore.ieee.org/document/9386154" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">&#8220;A Review of Physics Simulators for Robotics Applications&#8221;</a> by Jack Collins, Shelvin Chand, Anthony Vanderkop, and David Howard, published in IEEE Access (Volume: 9).</p>
<p><em>&#8220;We have compiled a broad review of physics simulators for use within the major fields of robotics research. More specifically, we navigate through key sub-domains and discuss the features, benefits, applications and use-cases of the different simulators categorised by the respective research communities. Our review provides an extensive index of the leading physics simulators applicable to robotics researchers and aims to assist them in choosing the best simulator for their use case.&#8221;</em></p>
<p>Simulation underpins robotics because it&#8217;s cheaper, faster and more robust than real robots. While there are some guides that benchmark simulators against real world tasks there isn&#8217;t a comprehensive review. A more thorough review can address gaps and needs in research and research challenges for simulation. The authors focus on seven sub-domains: Mobile Ground Robotics; Manipulation; Medical Robotics; Marine Robotics; Aerial Robotics; Soft Robotics and Learning for Robotics.</p>
<p>I&#8217;m going to cut to the chase and provide a copy of the final comparison tables of each sub-domain but for anyone interested in utilizing these recommendations, then I recommend reading the rationale behind the rankings in the full review article. The authors also consider whether or not a simulator is actively supported. Handy to know! And the paper is also an excellent source of information about various historic and current robotics competitions.</p>
<h3>Mobile Ground Robotics:</h3>
<p></p>
<div id="attachment_21297" style="width: 830px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-21297" loading="lazy" class="wp-image-21297 size-full" src="https://svrobo.org/wp-content/uploads/2021/07/howar.t1-3068769-large.gif" alt="TABLE 1 Feature Comparison Between Popular Robotics Simulators" width="820" height="352" /></p>
<p id="caption-attachment-21297" class="wp-caption-text"><em>TABLE 1 Feature Comparison Between Popular Robotics Simulators</em></p>
</div>
<p></p>
<div id="attachment_21298" style="width: 830px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-21298" loading="lazy" class="wp-image-21298 size-full" src="https://svrobo.org/wp-content/uploads/2021/07/howar.t2-3068769-large.gif" alt="TABLE 2 Feature Comparison Between Popular Robotics Simulators Used for Mobile Ground Robotics" width="820" height="118" /></p>
<p id="caption-attachment-21298" class="wp-caption-text"><em>TABLE 2 Feature Comparison Between Popular Robotics Simulators Used for Mobile Ground Robotics</em></p>
</div>
<p></p>
<h3>Manipulation:</h3>
<p></p>
<div id="attachment_21299" style="width: 830px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-21299" loading="lazy" class="size-full wp-image-21299" src="https://svrobo.org/wp-content/uploads/2021/07/howar.t3-3068769-large.gif" alt="TABLE 3 Feature Comparison for Popular Robotics Simulators Used for Manipulation" width="820" height="102" /></p>
<p id="caption-attachment-21299" class="wp-caption-text"><em>TABLE 3 Feature Comparison for Popular Robotics Simulators Used for Manipulation</em></p>
</div>
<p></p>
<h3>Medical Robotics:</h3>
<p></p>
<div id="attachment_21300" style="width: 830px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-21300" loading="lazy" class="size-full wp-image-21300" src="https://svrobo.org/wp-content/uploads/2021/07/howar.t4-3068769-large.gif" alt="TABLE 4 Feature Comparison of Popular Robotics Simulators Used for Medical Robotics" width="820" height="128" /></p>
<p id="caption-attachment-21300" class="wp-caption-text"><em>TABLE 4 Feature Comparison of Popular Robotics Simulators Used for Medical Robotics</em></p>
</div>
<p></p>
<h3 data-tealium_data="{&quot;docType&quot;: &quot;Journal&quot;}">Marine Robotics:</h3>
<div data-tealium_data="{&quot;docType&quot;: &quot;Journal&quot;}">
<p></p>
<div id="attachment_21301" style="width: 830px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-21301" loading="lazy" class="size-full wp-image-21301" src="https://svrobo.org/wp-content/uploads/2021/07/howar.t5-3068769-large.gif" alt="TABLE 5 Feature Comparison of Popular Simulators Used for Marine Robotics" width="820" height="102" /></p>
<p id="caption-attachment-21301" class="wp-caption-text"><em>TABLE 5 Feature Comparison of Popular Simulators Used for Marine Robotics</em></p>
</div>
</div>
<p></p>
<h3>Aerial Robotics:</h3>
<p></p>
<div id="attachment_21302" style="width: 830px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-21302" loading="lazy" class="size-full wp-image-21302" src="https://svrobo.org/wp-content/uploads/2021/07/howar.t6-3068769-large.gif" alt="TABLE 6 Feature Comparison of Popular Simulators Used for Aerial Robotics" width="820" height="95" /></p>
<p id="caption-attachment-21302" class="wp-caption-text"><em>TABLE 6 Feature Comparison of Popular Simulators Used for Aerial Robotics</em></p>
</div>
<p></p>
<h3>Soft Robotics:</h3>
<p></p>
<div id="attachment_21303" style="width: 830px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-21303" loading="lazy" class="size-full wp-image-21303" src="https://svrobo.org/wp-content/uploads/2021/07/howar.t7-3068769-large.gif" alt="TABLE 7 Feature Comparison of Popular Simulators Used for Soft Robotics" width="820" height="112" /></p>
<p id="caption-attachment-21303" class="wp-caption-text"><em>TABLE 7 Feature Comparison of Popular Simulators Used for Soft Robotics</em></p>
</div>
<p></p>
<h3>Learning for Robotics:</h3>
<p></p>
<div id="attachment_21304" style="width: 830px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-21304" loading="lazy" class="size-full wp-image-21304" src="https://svrobo.org/wp-content/uploads/2021/07/howar.t8-3068769-large.gif" alt="" width="820" height="156" /></p>
<p id="caption-attachment-21304" class="wp-caption-text"><em>TABLE 8 Feature Comparison of Popular Simulators Used in Learning for Robotics</em></p>
</div>
<p></p>
<h3>Conclusions:</h3>
<p></p>
<p>As robotics makes more use of deep learning, simulators that can deal with data on the fly become necessary, and also a potential solution for simulation problems regarding points of contact or collisions. Rather than utilize multiple simulation methods to make a clearer abstraction of the real world in these boundary situations, the answer may be to insert neural networks trained to replicate the properties of difficult phenomena into the simulator. There is further discussion on differentiable simulation, levels of abstraction and the expansion of libraries, plug-ins, toolsets, benchmarking and algorithmic integration, all increasing both the utility and complexity of simulation for robotics.</p>
<p>As the field of simulation for robotics grows, so does the need for metrics that capture the accuracy of the real world representation.  <em>&#8220;Finally, we predict that we will see further research into estimating and modeling uncertainty of simulators.&#8221;</em></p>
<p>This may have been the first review article on simulation for robotics but hopefully not the last. There&#8217;s a clear need to study and measure the field. I found the sections on soft robotics and learning for robotics particularly interesting, as the paper discussed the difficulties of simulation in these fields. And please attribute any errors in this summary to my mistakes. Read the full review here: <a href="https://ieeexplore.ieee.org/document/9386154" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">https://ieeexplore.ieee.org/document/9386154</a></p>
<div data-tealium_data="{&quot;docType&quot;: &quot;Journal&quot;}"></div>
<div class="u-pb-1 stats-document-abstract-publishedIn" data-tealium_data="{&quot;docType&quot;: &quot;Journal&quot;}"><strong>Published in: </strong><a class="stats-document-abstract-publishedIn" href="https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6287639" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">IEEE Access</a> ( Volume: 9)</div>
<div class="row u-pt-1">
<div class="col-6">
<div class="u-pb-1"><strong>Page(s): </strong>51416 &#8211; 51431</div>
<div class="u-pb-1 doc-abstract-pubdate"><strong>Date of Publication:</strong> 25 March 2021 <i class="font-size-1 color-xplore-blue fas fa-question-circle"></i></div>
<div class="u-pb-1">
<div>
<div><strong>Electronic ISSN:</strong> 2169-3536</div>
</div>
</div>
</div>
<div class="col-6">
<div class="u-pb-1 stats-document-abstract-doi"><strong>DOI: </strong><a href="https://doi.org/10.1109/ACCESS.2021.3068769" rel="noopener follow external noreferrer" data-wpel-link="external" target="_blank">10.1109/ACCESS.2021.3068769</a></div>
<div class="u-pb-1 doc-abstract-publisher"><span class="publisher-info-container black-tooltip"><span class="title">Publisher: </span>IEEE </span></div>
<div class="u-pb-1 doc-abstract-publisher">Under a <a href="https://creativecommons.org/licenses/by/4.0/" rel="noopener follow external noreferrer" data-wpel-link="external" target="_blank">Creative Commons License</a></div>
<div class="u-pb-1 stats-document-abstract-fundedBy">
<div role="button"><strong>Funding Agency:</strong></div>
<div class="abstract-metadata-indent">Data61 Ph.D. Scholarships; 10.13039/501100001793-Queensland University of Technology (QUT) through the Centre for Robotics; CSIRO’s CERC Postdoctoral Program;</div>
<div><strong>CCBY</strong> &#8211; IEEE is not the copyright holder of this material. Please follow the instructions via <a class="vglnk" href="https://creativecommons.org/licenses/by/4.0/" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">https://creativecommons.org/licenses/by/4.0/</a> to obtain full-text articles and stipulations in the API documentation.</div>
</div>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.315: Exploring from a Distance, with  Muralidharan Arikara  </title>
		<link>https://robohub.org/exploring-from-a-distance/</link>
		
		<dc:creator><![CDATA[Lauren Klein]]></dc:creator>
		<pubDate>Tue, 28 Jul 2020 05:44:57 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[arts & entertainment]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/exploring-from-a-distance/</guid>

					<description><![CDATA[Muralidharan Arikara on augmented and virtual reality experiences with Xarpie Labs.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2020/07/xarpie_image-1-1024x657.jpg"/><img decoding="async" class="alignnone size-medium wp-image-180050" src="https://robohub.org/wp-content/uploads/2020/07/xarpie_image-1-425x273.jpg" alt="" width="425" height="273" srcset="https://robohub.org/wp-content/uploads/2020/07/xarpie_image-1-425x273.jpg 425w, https://robohub.org/wp-content/uploads/2020/07/xarpie_image-1-1024x657.jpg 1024w, https://robohub.org/wp-content/uploads/2020/07/xarpie_image-1-768x493.jpg 768w, https://robohub.org/wp-content/uploads/2020/07/xarpie_image-1-1536x986.jpg 1536w, https://robohub.org/wp-content/uploads/2020/07/xarpie_image-1.jpg 1944w" sizes="(max-width: 425px) 100vw, 425px" />
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/865787758&#038;color=%23ff5500&#038;auto_play=false&#038;hide_related=false&#038;show_comments=true&#038;show_user=true&#038;show_reposts=false&#038;show_teaser=true"></iframe></p>
<div style="font-size: 10px; color: #cccccc;line-break: anywhere;word-break: normal;overflow: hidden;white-space: nowrap;text-overflow: ellipsis; font-family: Interstate,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Garuda,Verdana,Tahoma,sans-serif;font-weight: 100;"><a href="https://soundcloud.com/robohubpodcast" title="Robohub Podcast" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Robohub Podcast</a> · <a href="https://soundcloud.com/robohubpodcast/exploring-from-a-distance" title="Exploring From a Distance" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Exploring From a Distance</a></div>
<p>In this episode, Lauren Klein interviews Muralidharan Arikara, CEO of Xarpie Labs. Xarpie Labs creates visualization and simulation experiences within the retail, healthcare, and defense industries. Arikara describes how Xarpie Labs grew as part of the Machani Group, which has decades of experience in automotive manufacturing, into an innovator in virtual and augmented reality. He elaborates on the role of Xarpie Lab’s virtual reality and augmented reality experiences in allowing real estate customers a vision of properties from a distance. Arikara also paints a picture of Xarpie Labs’ augmented reality tools, including a project for a museum to visualize old gramophones for visitors and an air conditioning troubleshooting tool for technicians.</p>
<p><span id="more-178758"></span></p>
<p><b>Muralidharan Arikara</b></p>
<p style="text-align: left;"><img decoding="async" class="wp-image-179412 alignleft" src="https://robohub.org/wp-content/uploads/2020/07/murali-425x425.png" alt="" width="122" height="122" srcset="https://robohub.org/wp-content/uploads/2020/07/murali-425x425.png 425w, https://robohub.org/wp-content/uploads/2020/07/murali-290x290.png 290w, https://robohub.org/wp-content/uploads/2020/07/murali-220x220.png 220w, https://robohub.org/wp-content/uploads/2020/07/murali-24x24.png 24w, https://robohub.org/wp-content/uploads/2020/07/murali-48x48.png 48w, https://robohub.org/wp-content/uploads/2020/07/murali-96x96.png 96w, https://robohub.org/wp-content/uploads/2020/07/murali-150x150.png 150w, https://robohub.org/wp-content/uploads/2020/07/murali-300x300.png 300w, https://robohub.org/wp-content/uploads/2020/07/murali.png 450w" sizes="(max-width: 122px) 100vw, 122px" /></p>
<p>Muralidharan Arikara is an entrepreneur and the CEO of Xarpie Labs. Arikara is an engineer by training, and worked in the clean energy industry prior to his current role. In addition to his role as CEO at Xarpie Labs, he is also a member of the advisory board of several startups in the energy and consumer segments.</p>
<p>&nbsp;</p>
<div style="clear:both"></div>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/865787758-robohubpodcast-exploring-from-a-distance.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (16.8 MB)</li>
<li><a href="https://xarpie.com/simulation/virtual-employee-onboarding-process-virtual-induction-program/">Xarpie Labs Virtual Employee Onboarding Program</a></li>
<li><a href="https://www.linkedin.com/company/xarpie-labs" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">LinkedIn</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/865787758-robohubpodcast-exploring-from-a-distance.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.312: Safe Motion Planning in Real-time, with  Luca Colasanto  </title>
		<link>https://robohub.org/safe-motion-planning-in-real-time/</link>
		
		<dc:creator><![CDATA[Kate Zhou]]></dc:creator>
		<pubDate>Fri, 19 Jun 2020 05:56:26 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/safe-motion-planning-in-real-time/</guid>

					<description><![CDATA[Luca Colasanto discusses Realtime Robotic’s fast motion planning technology]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2020/06/RTR-1.png"/><img decoding="async" src="https://robohub.org/wp-content/uploads/2020/06/RTR-1.png" alt="" width="873" height="536" class="aligncenter size-full wp-image-173259" srcset="https://robohub.org/wp-content/uploads/2020/06/RTR-1.png 873w, https://robohub.org/wp-content/uploads/2020/06/RTR-1-425x261.png 425w, https://robohub.org/wp-content/uploads/2020/06/RTR-1-768x472.png 768w" sizes="(max-width: 873px) 100vw, 873px" />
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/842930386&#038;color=%23ff5500&#038;auto_play=false&#038;hide_related=false&#038;show_comments=true&#038;show_user=true&#038;show_reposts=false&#038;show_teaser=true"></iframe></p>
<div style="font-size: 10px; color: #cccccc;line-break: anywhere;word-break: normal;overflow: hidden;white-space: nowrap;text-overflow: ellipsis; font-family: Interstate,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Garuda,Verdana,Tahoma,sans-serif;font-weight: 100;"><a href="https://soundcloud.com/robohubpodcast" title="Robohub Podcast" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Robohub Podcast</a> · <a href="https://soundcloud.com/robohubpodcast/safe-motion-planning-in-real-time" title="Safe Motion Planning in Real-time" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Safe Motion Planning in Real-time</a></div>
<p>In this episode, we hear from Luca Colasanto, Senior Robotic Scientist at Realtime Robotics, about real-time robot motion planning in dynamic and complex environments with human-robot collaboration. Realtime Robotics focuses on accelerating conventional motion planning through optimization of algorithms and hardware to allow safe use of robotic tools in work areas with humans. Luca spoke to our interviewer Kate about Realtime Robotic’s fast motion planning technology, including key aspects, such as perception, algorithms and custom hardware.</p>
<p><span id="more-172999"></span></p>
<p><strong>Luca Colasanto</strong></p>
<p><strong><img decoding="async" class="wp-image-173251 alignleft" src="https://robohub.org/wp-content/uploads/2020/06/Luca-Photo-425x407.jpg" alt="" width="251" height="240" srcset="https://robohub.org/wp-content/uploads/2020/06/Luca-Photo-425x407.jpg 425w, https://robohub.org/wp-content/uploads/2020/06/Luca-Photo-1024x981.jpg 1024w, https://robohub.org/wp-content/uploads/2020/06/Luca-Photo-768x736.jpg 768w, https://robohub.org/wp-content/uploads/2020/06/Luca-Photo-24x24.jpg 24w, https://robohub.org/wp-content/uploads/2020/06/Luca-Photo.jpg 1058w" sizes="(max-width: 251px) 100vw, 251px" /></strong>Luca Colasanto is a Sr. Scientist at Realtime Robotics focusing on AI-based grasping and multi-robot optimization. Luca completed his PhD in Humanoid Robotics at Italian Institute of Technology, focusing on control systems for bipedal walking machines and compliant actuators. During the past ten years, Luca has worked with successful startups to design and prototype new robotics products, and with science and technology leaders, such as Robert Bosch LLC (CA), Institute for Human and Machine Cognition (FL), and École Polytechnique Fédérale de Lausanne (Switzerland), He is the listed inventor in two patent applications and the author of several scientific publications. Luca speaks four languages and is a keen traveler, having visited or lived in more than 20 countries.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/842930386-robohubpodcast-safe-motion-planning-in-real-time.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (15.1 MB)</li>
<li><a href="https://rtr.ai/">Realtime Robotics</a> (<a href="https://vimeo.com/realtimerobotics" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Videos</a>, <a href="https://twitter.com/realtime_i" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Twitter</a>, <a href="https://www.linkedin.com/company/realtimerobotics/?viewAsMember=true" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">LinkedIn</a>)</li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/842930386-robohubpodcast-safe-motion-planning-in-real-time.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.311: Robotics Manipulation with MoveIt, with  Dave Coleman  </title>
		<link>https://robohub.org/robotics-manipulation-with-moveit/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sun, 31 May 2020 22:51:03 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/robotics-manipulation-with-moveit/</guid>

					<description><![CDATA[Dave Coleman on the open source robotics manipulation platform called MoveIt. ]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2020/05/Rviz-Motion-Planning-Plugin-1024x584.png"/><img decoding="async" class="size-full wp-image-170506 alignnone" src="https://robohub.org/wp-content/uploads/2020/05/Rviz-Motion-Planning-Plugin.png" alt="" width="1828" height="1042" srcset="https://robohub.org/wp-content/uploads/2020/05/Rviz-Motion-Planning-Plugin.png 1828w, https://robohub.org/wp-content/uploads/2020/05/Rviz-Motion-Planning-Plugin-425x242.png 425w, https://robohub.org/wp-content/uploads/2020/05/Rviz-Motion-Planning-Plugin-1024x584.png 1024w, https://robohub.org/wp-content/uploads/2020/05/Rviz-Motion-Planning-Plugin-768x438.png 768w, https://robohub.org/wp-content/uploads/2020/05/Rviz-Motion-Planning-Plugin-1536x876.png 1536w, https://robohub.org/wp-content/uploads/2020/05/Rviz-Motion-Planning-Plugin-175x100.png 175w" sizes="(max-width: 1828px) 100vw, 1828px" />
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/831870919&#038;color=%23ff5500&#038;auto_play=false&#038;hide_related=false&#038;show_comments=true&#038;show_user=true&#038;show_reposts=false&#038;show_teaser=true"></iframe></p>
<div style="font-size: 10px; color: #cccccc;line-break: anywhere;word-break: normal;overflow: hidden;white-space: nowrap;text-overflow: ellipsis; font-family: Interstate,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Garuda,Verdana,Tahoma,sans-serif;font-weight: 100;"><a href="https://soundcloud.com/robohubpodcast" title="Robohub Podcast" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Robohub Podcast</a> · <a href="https://soundcloud.com/robohubpodcast/robotics-manipulation-with-moveit" title="Robotics Manipulation with MoveIt" target="_blank" style="color: #cccccc; text-decoration: none;" rel="noopener noreferrer follow external" data-wpel-link="external">Robotics Manipulation with MoveIt</a></div>
<p>In this episode, Audrow Nash speaks with Dave Coleman, CEO of PickNik Robotics, about the open source robotics manipulation platform called MoveIt. Coleman talks about MoveIt&#8217;s story, from inception and the early days to development and maintenance, as well as how MoveIt relates to the Robot Operating System (ROS) and their move to support ROS-2. He also speaks about MoveIt&#8217;s implementation, including global versus local planners and what that means. Coleman concludes by talking about World MoveIt Day and how those interested can begin learning MoveIt and contributing.</p>
<p><span id="more-170503"></span></p>
<p>Here is a 2017 montage of how MoveIt has been used:</p>
<div class="keep-aspect"><iframe title="MoveIt! Montage 2017" width="500" height="281" src="https://www.youtube-nocookie.com/embed/0og1SaZYtRc?start=1&#038;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></div>
<p></p>
<p><strong>Dave Coleman</strong></p>
<p><img decoding="async" class="alignleft wp-image-170505" src="https://robohub.org/wp-content/uploads/2020/05/david_coleman.jpeg" alt="" width="200" height="200" srcset="https://robohub.org/wp-content/uploads/2020/05/david_coleman.jpeg 460w, https://robohub.org/wp-content/uploads/2020/05/david_coleman-425x425.jpeg 425w, https://robohub.org/wp-content/uploads/2020/05/david_coleman-290x290.jpeg 290w, https://robohub.org/wp-content/uploads/2020/05/david_coleman-220x220.jpeg 220w, https://robohub.org/wp-content/uploads/2020/05/david_coleman-24x24.jpeg 24w, https://robohub.org/wp-content/uploads/2020/05/david_coleman-48x48.jpeg 48w, https://robohub.org/wp-content/uploads/2020/05/david_coleman-96x96.jpeg 96w, https://robohub.org/wp-content/uploads/2020/05/david_coleman-150x150.jpeg 150w, https://robohub.org/wp-content/uploads/2020/05/david_coleman-300x300.jpeg 300w" sizes="(max-width: 200px) 100vw, 200px" />Dave Coleman completed his PhD in Computer Science at CU Boulder focusing on motion planning and his B.S. at Geogia Tech in Mechanical Engineering. Coleman has 12 years experience working in the field of robotics automation and is a leader in the open source MoveIt and ROS communities. His insights into robot-agnostic platforms for different morphologies, theoretical approaches, and different end-user requirements give him a well-rounded understanding for powerful robotic software. He has worked and consulted for all types of robotics companies including Google Robotics, Open Robotics, and Willow Garage.</p>
<div style="clear:both"></div>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/831870919-robohubpodcast-robotics-manipulation-with-moveit.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (17.8 MB)</li>
<li><a href="http://feeds.feedburner.com/robotspodcast">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/831870919-robohubpodcast-robotics-manipulation-with-moveit.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.304: Haptics and Virtual Interactions, with  Heather Culbertson   </title>
		<link>https://robohub.org/haptics-and-virtual-interactions/</link>
		
		<dc:creator><![CDATA[Shihan Lu]]></dc:creator>
		<pubDate>Mon, 17 Feb 2020 06:57:20 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[humanoids]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/haptics-and-virtual-interactions/</guid>

					<description><![CDATA[Dr. Heather Culbertson discusses her research in haptics at the University of Southern California]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2019/10/Heather_armband_web4-1024x683.jpg"/><img decoding="async" class="alignnone size-full wp-image-148215" src="https://robohub.org/wp-content/uploads/2019/10/Heather_armband_web4.jpg" alt="" width="4000" height="2667" srcset="https://robohub.org/wp-content/uploads/2019/10/Heather_armband_web4.jpg 4000w, https://robohub.org/wp-content/uploads/2019/10/Heather_armband_web4-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2019/10/Heather_armband_web4-768x512.jpg 768w, https://robohub.org/wp-content/uploads/2019/10/Heather_armband_web4-1024x683.jpg 1024w" sizes="(max-width: 4000px) 100vw, 4000px" />
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/761914468&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p><span style="font-weight: 400;">In this episode, Shihan Lu interviews Dr. Heather Culbertson, Assistant Professor in the Computer Science Department at the University of Southern California, about her work in haptics. Dr. Culbertson discusses the data-driven realistic texture modeling and rendering, haptic technologies in the social touch, the combination of haptics and robots, expectations and obstacles of haptics in the next 5 years. </span><br />
<span id="more-148208"></span></p>
<p><strong>Heather Culbertson</strong></p>
<img decoding="async" class=" wp-image-148214 alignleft" src="https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-290x290.jpg" alt="" width="246" height="246" srcset="https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-290x290.jpg 290w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-425x425.jpg 425w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-768x768.jpg 768w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-1024x1024.jpg 1024w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-220x220.jpg 220w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-24x24.jpg 24w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-48x48.jpg 48w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-96x96.jpg 96w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-150x150.jpg 150w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile-300x300.jpg 300w, https://robohub.org/wp-content/uploads/2019/10/heather_culbertson_profile.jpg 1519w" sizes="(max-width: 246px) 100vw, 246px" />
<p><span style="font-weight: 400;">Heather Culbertson is a Gabilan Assistant Professor of Computer Science at the University of Southern California. Her research focuses on the design and control of haptic devices and rendering systems, human-robot interaction, and virtual reality. Particularly she is interested in creating haptic interactions that are natural and realistically mimic the touch sensations experienced during interactions with the physical world. Previously, she was a research scientist in the Department of Mechanical Engineering at Stanford University where she worked in the Collaborative Haptics and Robotics in Medicine (CHARM) Lab. She received her PhD in the Department of Mechanical Engineering and Applied Mechanics (MEAM) at the University of Pennsylvania in 2015 working in the Haptics Group, part of the General Robotics, Automation, Sensing and Perception (GRASP) Laboratory.</span></p>
<div style="clear:both"></div>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/761914468-robohubpodcast-haptics-and-virtual-interactions.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (14.8 MB)</a></li>
<li><a href="https://sites.usc.edu/culbertson/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Culbertson&#8217;s research website</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/761914468-robohubpodcast-haptics-and-virtual-interactions.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.303: Fostering Creativity: RSS Pioneers and the YOLO Robot, with  Patrícia Alves-Oliveira  </title>
		<link>https://robohub.org/fostering-creativity-rss-pioneers-and-the-yolo-robot/</link>
		
		<dc:creator><![CDATA[Lauren Klein]]></dc:creator>
		<pubDate>Sun, 02 Feb 2020 00:18:26 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/fostering-creativity-rss-pioneers-and-the-yolo-robot/</guid>

					<description><![CDATA[Patrícia Alves-Oliveira on RSS Pioneers and how robots can support creativity in children]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2020/01/patricia_project-1024x542.jpg"/><img decoding="async" class="alignnone wp-image-158601" src="https://robohub.org/wp-content/uploads/2020/01/patricia_project-425x225.jpg" alt="" width="733" height="388" srcset="https://robohub.org/wp-content/uploads/2020/01/patricia_project-425x225.jpg 425w, https://robohub.org/wp-content/uploads/2020/01/patricia_project-1024x542.jpg 1024w, https://robohub.org/wp-content/uploads/2020/01/patricia_project-768x406.jpg 768w, https://robohub.org/wp-content/uploads/2020/01/patricia_project.jpg 1200w" sizes="(max-width: 733px) 100vw, 733px" />
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/753523132&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true&amp;visual=true" width="100%" height="300" frameborder="no" scrolling="no"></iframe></p>
<p><span style="font-weight: 400;">In this episode, Lauren Klein interviews Human-Robot Interaction researcher Patrícia Alves-Oliveira. Alves-Oliveira tells us about the upcoming RSS Pioneers workshop at the 2020 Robotics: Science and Systems Conference; the workshop brings senior PhD students and postdoctoral researchers together to collaborate and discuss their work with distinguished members of the robotics field. She also describes her own research designing robots to encourage creativity in children.</span></p>
<p><span id="more-158599"></span></p>
<h3>Patrícia Alves-Oliveira</h3>
<p><span style="font-weight: 400;"><img decoding="async" class="wp-image-158602 alignleft" src="https://robohub.org/wp-content/uploads/2020/01/patricia_bio-425x425.jpg" alt="" width="133" height="133" srcset="https://robohub.org/wp-content/uploads/2020/01/patricia_bio-425x425.jpg 425w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-1024x1024.jpg 1024w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-290x290.jpg 290w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-768x768.jpg 768w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-1536x1536.jpg 1536w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-2048x2048.jpg 2048w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-220x220.jpg 220w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-24x24.jpg 24w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-48x48.jpg 48w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-96x96.jpg 96w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-150x150.jpg 150w, https://robohub.org/wp-content/uploads/2020/01/patricia_bio-300x300.jpg 300w" sizes="(max-width: 133px) 100vw, 133px" />Patrícia Alves-Oliveira is an upcoming postdoctoral researcher working with Professor Maya Cakmak in the Human-Centered Robotics Lab at the University of Washington. She recently completed her PhD in Human-Robot Interaction at the Lisbon University Institute supervised by Profs. Ana Paiva and Patrícia Arriaga, also working as a visiting scholar in the Human-Robot Collaboration and Companionship Laboratory at Cornell University, supervised by Professor Guy Hoffman. Patrícia’s research focuses on the use of social robots as intervention tools to enrich creative behaviors in children. Patrícia’s overarching goal as a Human-Robot Interaction researcher is to investigate how and where robots can be used to empower innate human qualities and experiences.<br />
</span></p>
<div style="clear:both"></div>
<p><strong>Links</strong></p>
<ul>
<li><a href="https://sites.google.com/view/rsspioneers2020/apply?authuser=0" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apply to RSS Pioneers</a></li>
<li><a href="http://feeds.soundcloud.com/stream/753523132-robohubpodcast-fostering-creativity-rss-pioneers-and-the-yolo-robot.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (15.0 MB)</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/753523132-robohubpodcast-fostering-creativity-rss-pioneers-and-the-yolo-robot.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.294: Autonomous Bricklaying by FBR, with  Mark Pivac  </title>
		<link>https://robohub.org/autonomous-bricklaying-with-fbr/</link>
		
		<dc:creator><![CDATA[Ron Vanderkley]]></dc:creator>
		<pubDate>Wed, 18 Sep 2019 17:15:07 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[modular]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">https://robohub.org/autonomous-bricklaying-with-fbr/</guid>

					<description><![CDATA[In this episode, Ron Vanderkley interviews Mark Pivac, Chief Technical Officer and co-founder of FBR (formerly Fastbrick Robotics) about the world’s first end-to-end autonomous bricklaying robot, ‘Hadrian X’. Three years after his first interview, we catch up with Pivac to see how FBR has expanded its operation and chat about their latest commercial prototype, ‘Hadrian [&#8230;]]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2019/09/020919FINISHED002b-1024x682.jpg"/><p><img decoding="async" class="aligncenter size-large wp-image-144767" src="https://robohub.org/wp-content/uploads/2019/09/020919FINISHED002b-1024x682.jpg" alt="" width="1024" height="682" srcset="https://robohub.org/wp-content/uploads/2019/09/020919FINISHED002b-1024x682.jpg 1024w, https://robohub.org/wp-content/uploads/2019/09/020919FINISHED002b-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2019/09/020919FINISHED002b-768x512.jpg 768w, https://robohub.org/wp-content/uploads/2019/09/020919FINISHED002b.jpg 1732w" sizes="(max-width: 1024px) 100vw, 1024px" /><br />
<iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/682709651&#038;color=%23ff5500&#038;auto_play=false&#038;hide_related=false&#038;show_comments=true&#038;show_user=true&#038;show_reposts=false&#038;show_teaser=true"></iframe><br />
In this episode, Ron Vanderkley interviews Mark Pivac, Chief Technical Officer and co-founder of FBR (formerly Fastbrick Robotics) about the world’s first end-to-end autonomous bricklaying robot, ‘Hadrian X’. Three years after his first interview, we catch up with Pivac to see how FBR has expanded its operation and chat about their latest commercial prototype, ‘Hadrian X’, as well as the future of the robotic construction industry.<span id="more-144764"></span></p>
<img decoding="async" class="wp-image-94760 alignleft" src="https://robohub.org/wp-content/uploads/2019/09/blogmark1n-1-425x307.jpg" alt="" width="425" height="307" />
<p>Mark Pivac is the primary inventor of FBR&#8217;s automated bricklaying technology. He is an aeronautical and mechanical engineer with over 25 years&#8217; experience working on the development of high technology equipment ranging from lightweight aircraft to heavy off-road equipment. He has 20 years&#8217; experience working with pro/engineer 3D CAD software as well as high-level mathematics, including matrix mathematics, robot transformations and vector mathematics for machine motion. Mark has also worked extensively with design, commissioning and fault finding on servo controlled motion systems achieving very high dynamic performance.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="https://www.fbr.com.au" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FBR Website</a></li>
<li><a href="https://www.fbr.com.au/view/leadership-profiles/mark-pivac" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Marc Pivac Profile Page</a></li>
<li><a href="https://www.youtube.com/watch?v=ino8oz189fw&amp;feature=youtu.be" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Hadrian X in action (Video)</a></li>
<li><a href="http://feeds.soundcloud.com/stream/682709651-robohubpodcast-autonomous-bricklaying.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (13.3 MB)</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/682709651-robohubpodcast-autonomous-bricklaying.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.292: Robot Operating System (ROS) &#038; Gazebo, with  Brian Gerkey  </title>
		<link>https://robohub.org/robot-operating-system-ros-gazebo/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Tue, 06 Aug 2019 04:02:14 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/robot-operating-system-ros-gazebo/</guid>

					<description><![CDATA[Brian Gerkey on a set of software libraries and tools for building robot application and on a 3D robotics simulator]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2019/08/openrobotics-logo-stacked.png"/><p><img decoding="async" class="aligncenter size-full wp-image-139000" src="https://robohub.org/wp-content/uploads/2019/08/openrobotics-logo-stacked.png" alt="" width="629" height="181" srcset="https://robohub.org/wp-content/uploads/2019/08/openrobotics-logo-stacked.png 629w, https://robohub.org/wp-content/uploads/2019/08/openrobotics-logo-stacked-425x122.png 425w" sizes="(max-width: 629px) 100vw, 629px" /><br />
<iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/661770425&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p><span style="font-weight: 400;">In this episode, Audrow Nash interviews Brian Gerkey, CEO of Open Robotics about the Robot Operating System (ROS) and Gazebo. Both ROS and Gazebo are open source and are widely used in the robotics community. ROS is a set of software libraries and tools, and Gazebo is a 3D robotics simulator. Gerkey explains ROS and Gazebo and talks about how they are used in robotics, as well as some of the design decisions of the second version of ROS, ROS2.</span></p>
<p><span id="more-138999"></span></p>
<p><strong>Brian Gerkey</strong></p>
<img decoding="async" class="size-full wp-image-139001 alignleft" src="https://robohub.org/wp-content/uploads/2019/08/briangerkey.CF028011.jpeg" alt="" width="241" height="301" />
<p>Brian Gerkey is the CEO of Open Robotics, which seeks to develop and drive the adoption of open source software in robotics. Before Open Robotics, Brian was the Director of Open Source Development at Willow Garage, a computer scientist in the SRI Artificial Intelligence Center, a post-doctoral scholar in Sebastian Thrun‘s group in the Stanford Artificial Intelligence Lab.  Brian did his PhD with Maja Matarić in the USC Interaction Lab.</p>
<div style="clear:both"></div>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/661770425-robohubpodcast-robot-operating-system-ros-gazebo.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (17.4 MB)</a></li>
<li><a href="https://www.openrobotics.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Open Robotics website</a></li>
<li><a href="https://brian.gerkey.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Brian&#8217;s personal website</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/661770425-robohubpodcast-robot-operating-system-ros-gazebo.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.286: Halodi Robotics&#8217; EVEr3: A Full-size Humanoid Robot, with  Bernt Børnich  </title>
		<link>https://robohub.org/halodi-robotics-ever3-a-full-size-humanoid-robot/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Mon, 13 May 2019 01:34:49 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[healthcare]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[humanoids]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">https://robohub.org/halodi-robotics-ever3-a-full-size-humanoid-robot/</guid>

					<description><![CDATA[Bernt Børnich on Eve, including it's motors, direct force control, and how they plan to work with researchers.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2019/05/cover_imag-1024x576.png"/><p><img decoding="async" class="aligncenter wp-image-130861 size-full" src="https://robohub.org/wp-content/uploads/2019/05/cover_imag.png" alt="" width="1280" height="720" srcset="https://robohub.org/wp-content/uploads/2019/05/cover_imag.png 1280w, https://robohub.org/wp-content/uploads/2019/05/cover_imag-425x239.png 425w, https://robohub.org/wp-content/uploads/2019/05/cover_imag-768x432.png 768w, https://robohub.org/wp-content/uploads/2019/05/cover_imag-1024x576.png 1024w" sizes="(max-width: 1280px) 100vw, 1280px" /><br />
<iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/619721826&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p><span style="font-weight: 400;">In this episode, Audrow Nash interviews Bernt Børnich, CEO, CTO, and Co-founder of Halodi Robotics, about Eve (EVEr3), a general purpose full-size humanoid robot, capable of a wide variety of tasks.  Børnich discusses how Eve can be used in research, how Eve’s motors have been designed to be safe around humans (including why they use a low gear ratio), how they do direct force control and the benefits of this approach, and how they use machine learning to reduce cogging in their motors.  Børnich also discusses the longterm goal of Halodi Robotics and how they plan to support researchers using Eve.</span></p>
<p><span id="more-130857"></span></p>
<p>Below are two videos of Eve. The first is a video of how Eve can be used as a platform to address several research questions.  The second shows Eve moving a box and dancing.</p>
<div class="keep-aspect"><iframe title="Meet EVEr3" width="500" height="281" src="https://www.youtube-nocookie.com/embed/ZvCqF9f52RM?start=34&#038;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></div>
<p></p>
<div class="keep-aspect"><iframe title="Halodi Robotics EVEr3 humanoid robot" width="500" height="281" src="https://www.youtube-nocookie.com/embed/bd-Ab90eljU?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></div>
<p></p>
<p><strong>Bernt Børnich</strong></p>
<div id="attachment_130858" style="width: 210px" class="wp-caption alignleft"><img decoding="async" aria-describedby="caption-attachment-130858" class="wp-image-130858" src="https://robohub.org/wp-content/uploads/2019/05/Bernt_Oivind_Bornichlowres.jpg" alt="" width="200" height="250" /><p id="caption-attachment-130858" class="wp-caption-text">Photographer: Tonje Kornelie</p></div>
<p>Bernt Børnich is the CEO and CTO of Halodi Robotics, and the inventor of their Revo1 motors. He holds a bachelor of robotics and nano-electronics from the University of Oslo.</p>
<div style="clear:both"></div>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/619721826-robohubpodcast-halodi-robotics-ever3-a-full-size-humanoid-robot.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (16.4 MB)</a></li>
<li><a href="https://www.halodi.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Halodi&#8217;s homepage</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/619721826-robohubpodcast-halodi-robotics-ever3-a-full-size-humanoid-robot.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Launch of ROBOTT-NET&#8217;s pilot projects</title>
		<link>https://robohub.org/launch-of-robott-nets-pilot-projects/</link>
		
		<dc:creator><![CDATA[Thilo Zimmermann]]></dc:creator>
		<pubDate>Tue, 24 Jul 2018 21:56:19 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/launch-of-robott-nets-pilot-projects/</guid>

					<description><![CDATA[Irabia, Linak and Nissan have along with Trumpf, Maser, Piccolo, Weibel and Air Liquide been selected to team up on a real-world case study. Over the next 18 months ROBOTT-NET will take these eight voucher projects to full prototype installation &#8211; this includes third-party funding directly to the companies and additional professional support via robotics [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="https://robohub.org/wp-content/uploads/2018/04/Robott-net-1.jpg" alt="" width="900" height="380" class="aligncenter size-full wp-image-100316" srcset="https://robohub.org/wp-content/uploads/2018/04/Robott-net-1.jpg 900w, https://robohub.org/wp-content/uploads/2018/04/Robott-net-1-425x179.jpg 425w, https://robohub.org/wp-content/uploads/2018/04/Robott-net-1-768x324.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" />Irabia, Linak and Nissan have <a href="https://robohub.org/five-projects-make-the-first-cut-and-receive-a-robott-net-pilot/" data-wpel-link="internal">along with Trumpf, Maser, Piccolo, Weibel and Air Liquide</a> been selected to team up on a real-world case study. Over the next 18 months ROBOTT-NET will take these eight voucher projects to full prototype installation &#8211; this includes third-party funding directly to the companies and additional professional support via robotics experts of the ROBOTT-NET consortium partners: <a href="https://robohub.org/index.php?s=DTI" data-wpel-link="internal">DTI</a>, <a href="https://robohub.org/index.php?s=Fraunhofer+IPA" data-wpel-link="internal">Fraunhofer IPA</a>, <a href="https://robohub.org/index.php?s=Tecnalia" data-wpel-link="internal">Tecnalia</a> and <a href="https://robohub.org/index.php?s=the+MTC" data-wpel-link="internal">the MTC</a>.<span id="more-104615"></span></p>
<p><strong>The pilot projects</strong></p>
<p>The three companies&#8217; accomplished voucher work varies a lot and sets the basis to enlarge the array of industrial challenges tackled in the pilot work of <a href="https://robohub.org/european-digital-innovation-hub-strengthens-robotics-development/" data-wpel-link="internal">ROBOTT-NET</a>.</p>
<p>Linak&#8217;s pilot project will address some of the barriers that are still hindering the introduction of robots in High-Mix-Low-Volume (HMLV) production. This pilot will focus on the development of a modular assembly robot solution called MARS, that can be introduced in a wide-range of industries. You can check out Linak&#8217;s voucher project here:</p>
<div class="keep-aspect"><iframe title="ROBOTT-NET: True Human-Robot Collaboration at Linak" width="500" height="281" src="https://www.youtube-nocookie.com/embed/wIOmaTJ4sa8?list=PLsp4TaZ-BA4nKaUwOx_qEhklM7KveXXA3" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p></p>
<p>Irabia&#8217;s pilot project UrbanPestPatrol aims to use robots for pest management in industrial facilities. The purpose of the project is to minimize the risk of a pest infestation and its resulting cost. You can learn about Irabia&#8217;s voucher project here:</p>
<p><a href="https://www.youtube.com/watch?v=1zmHDOa1ErU" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">https://www.youtube.com/watch?v=1zmHDOa1ErU</a></p>
<p>Lastly, Nissan will be looking into automated kitting for complex and diverse applications. This pilot will build a robotic test cell that enables Nissan Motor Manufacturting UK to develop automated kitting capability for its part families. Find out more about Nissan&#8217;s voucher project here:</p>
<div class="keep-aspect"><iframe title="ROBOTT-NET: Automated Parts Picking Into Kits" width="500" height="281" src="https://www.youtube-nocookie.com/embed/SJ6aLY-bCB4?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></div>
<p></p>
<p>ROBOTT-NET pilots help companies develop their voucher work through proof-of-concept level and accelerate it towards commercialisation. A pilot project will be a medium-scale research prototype installation, lasting for up to 18 months developing the robot technology and business case explored in the voucher stage and applying it to an industrial application demonstration at an end user&#8217;s site.</p>
<p>If you want to learn more about the pilot projects, you can check out <a href="https://robott-net.eu/media/news/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROBOTT-NETs website</a>. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.265: DJI&#8217;s RoboMaster FPS Competition, with  Shuo Yang  </title>
		<link>https://robohub.org/djis-robomaster-fps-competition/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sat, 21 Jul 2018 21:49:43 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[competitions]]></category>
		<category><![CDATA[social robotics]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://robohub.org/djis-robomaster-fps-competition/</guid>

					<description><![CDATA[Shuo Yang on a robotics first-person shooter competition designed to get people excited about robotics.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2018/07/ICRA-copy.jpg"/><img decoding="async" class="wp-image-105194 size-full aligncenter" src="https://robohub.org/wp-content/uploads/2018/07/ICRA-copy.jpg" alt="" width="1000" height="667" srcset="https://robohub.org/wp-content/uploads/2018/07/ICRA-copy.jpg 1000w, https://robohub.org/wp-content/uploads/2018/07/ICRA-copy-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2018/07/ICRA-copy-768x512.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" />
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/474893298&#038;color=%23ff5500&#038;auto_play=false&#038;hide_related=false&#038;show_comments=true&#038;show_user=true&#038;show_reposts=false&#038;show_teaser=true"></iframe></p>
<p>In this episode, Audrow Nash interviews Shuo Yang about DJI&#8217;s RoboMaster first-person shooter (FPS) competition, a competition designed to get people excited about robotics. For the competition, university teams build and program a robot to go against DJI&#8217;s robots in a shooting battle. Each robot has a way of propelling marble-sized plastic balls and pressure sensors on their sides to register if they&#8217;ve been hit by an opponent&#8217;s projectile. Shuo speaks about the goals of the competition, the teams that are involved, what strategies the teams use, the difficulties the team had in making their robot&#8217;s good competitors, the future of the challenge, and how people can get involved.</p>
<p><span id="more-105188"></span></p>
<p>Note that RoboMaster&#8217;s final tournament for the FPS competition starts on July 20, 2018 and goes until July 28, 2018.</p>
<p>&nbsp;</p>
<p><strong>Shuo Yang</strong></p>
<p><img decoding="async" class="alignleft wp-image-105193 size-full" src="https://robohub.org/wp-content/uploads/2018/07/ShouYang-e1532049198234.jpg" alt="" width="157" height="159" /><br />
Shuo Yang is the Director of Intelligent Navigation Technologies at DJI. He obtained B.Eng and M.Phil degrees from Hong Kong University of Science and Technology (HKUST). He is involved in developing flight control and navigation technologies for several DJI flagship products, such as the Inspire 1, Phantom 4 and Matrice 100 drones and the A3 flight controller. He has coauthored 4 academic papers and obtained near 10 US patents. Shuo is also leading an educational robotics competition project called RoboMaster at DJI.</p>
<div style="clear:both"></div>
<p>&nbsp;</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://www.robomaster.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Robomaster&#8217;s Official Website</a></li>
<li><a href="https://www.twitch.tv/robomaster" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Robomaster&#8217;s Livestream Platform</a></li>
<li><a href="http://feeds.soundcloud.com/stream/474893298-robohubpodcast-djis-robomaster-fps-competition.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (15.6 MB)</li>
<li><a href="http://feeds.feedburner.com/robotspodcast">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/474893298-robohubpodcast-djis-robomaster-fps-competition.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.253: eSIM in Wearable Technology, with  Karl Weaver  </title>
		<link>https://robohub.org/esim-in-wearable-technology/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Mon, 05 Feb 2018 17:47:09 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/esim-in-wearable-technology/</guid>

					<description><![CDATA[Karl Weaver on wireless technology in China. ]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2018/01/china-us-it-internet-lifestyle-apple_bej3116_49717657.jpg"/><div id="attachment_96516" style="width: 990px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-96516" class="wp-image-96516 size-full" src="http://robohub.org/wp-content/uploads/2018/01/china-us-it-internet-lifestyle-apple_bej3116_49717657.jpg" alt="" width="980" height="551" srcset="https://robohub.org/wp-content/uploads/2018/01/china-us-it-internet-lifestyle-apple_bej3116_49717657.jpg 980w, https://robohub.org/wp-content/uploads/2018/01/china-us-it-internet-lifestyle-apple_bej3116_49717657-425x239.jpg 425w, https://robohub.org/wp-content/uploads/2018/01/china-us-it-internet-lifestyle-apple_bej3116_49717657-768x432.jpg 768w" sizes="(max-width: 980px) 100vw, 980px" /><p id="caption-attachment-96516" class="wp-caption-text">Image from the South China Morning Post</p></div>
<p><span style="font-weight: 400;">In this episode, Audrow Nash speaks with Karl Weaver (魏卡爾), formerly the Original Equipment Manufacturer Business Development Director for Oasis Smart SIM. Weaver discusses how wearable technology is growing as a form of payment system in China. He speaks about wireless technology, including Near-Field Communications (NFC) and Embedded SIM cards (eSIM), in wearable technology and in other applications, such as bike rental.</span></p>
<p><span id="more-96514"></span></p>
<p><strong>Karl Weaver (魏卡爾) </strong></p>
<p><span style="font-weight: 400;"><img decoding="async" class="alignleft wp-image-96515" src="http://robohub.org/wp-content/uploads/2018/01/2017sKarlWeaver.png" alt="" width="200" height="200" srcset="https://robohub.org/wp-content/uploads/2018/01/2017sKarlWeaver.png 220w, https://robohub.org/wp-content/uploads/2018/01/2017sKarlWeaver-32x32.png 32w, https://robohub.org/wp-content/uploads/2018/01/2017sKarlWeaver-50x50.png 50w, https://robohub.org/wp-content/uploads/2018/01/2017sKarlWeaver-64x64.png 64w, https://robohub.org/wp-content/uploads/2018/01/2017sKarlWeaver-96x96.png 96w, https://robohub.org/wp-content/uploads/2018/01/2017sKarlWeaver-128x128.png 128w" sizes="(max-width: 200px) 100vw, 200px" /></span></p>
<p><em>Since the recording of this interview, Karl has begun working for ARM promoting eSIM and iUICC to Greater China and Asia.</em></p>
<p><span style="font-weight: 400;">Karl Weaver (魏卡爾) previously worked as the <i>Original Equipment Manufacturer Business Development Director</i> (North America and Northeast Asia) for Oasis Smart SIM. Prior to Oasis, Karl worked for Rivetz Corp, a Massachusetts-based start-up to promote developer tools for design-in of TEE-enables applications on Smartphones for payment and security. Karl also spent 5 years working in China for Gemalto (and Trustonic) as liaison and evangelist of embedded Mobile Near-Field Communications Payments &amp; TEE security technologies to the OEM Smartphone/Tablet PC ecosystem. Weaver has a B.S degree in Business Management from Salve Regina University and a Certification in <i>Mandarin Chinese Language, Customs, and Culture </i>from National Taiwan Normal University.</span></p>
<p>&nbsp;</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/393811476-robohubpodcast-esim-in-wearable-technology.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (17.5 MB)</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/393811476-robohubpodcast-esim-in-wearable-technology.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.249: ICRA 2017 Company Showcase, with  Howard Michel,  Li Bingbing,  Xianbao Chen and  Lester Teh Chee Onn  </title>
		<link>https://robohub.org/icra-2017-company-showcase/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sun, 10 Dec 2017 21:54:37 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[environment & agriculture]]></category>
		<category><![CDATA[humanoids]]></category>
		<category><![CDATA[ICRA]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">http://robohub.org/icra-2017-company-showcase/</guid>

					<description><![CDATA[Robots for education, painting tall buildings, machining large parts, and environmental monitoring.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2017/05/Gardens-by-the-Bay-Singapore-Reflection-1024x576.jpg"/><div id="attachment_79248" style="width: 1930px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-79248" class="size-full wp-image-79248" src="http://robohub.org/wp-content/uploads/2017/05/Gardens-by-the-Bay-Singapore-Reflection.jpg" alt="" width="1920" height="1080" srcset="https://robohub.org/wp-content/uploads/2017/05/Gardens-by-the-Bay-Singapore-Reflection.jpg 1920w, https://robohub.org/wp-content/uploads/2017/05/Gardens-by-the-Bay-Singapore-Reflection-425x239.jpg 425w, https://robohub.org/wp-content/uploads/2017/05/Gardens-by-the-Bay-Singapore-Reflection-768x432.jpg 768w, https://robohub.org/wp-content/uploads/2017/05/Gardens-by-the-Bay-Singapore-Reflection-1024x576.jpg 1024w" sizes="(max-width: 1920px) 100vw, 1920px" /><p id="caption-attachment-79248" class="wp-caption-text">Image: ICRA 2017</p></div>
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/367703825&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p>In this episode, Audrow Nash interviews several companies at the International Conference for Robotics and Automation (ICRA). ICRA is the IEEE Robotics and Automation Society’s biggest conference and one of the leading international forums for robotics researchers to present their work.</p>
<p><span id="more-93282"></span></p>
<p><strong>Interviews:</strong></p>
<p><em>Howard Michel</em>, Chief Technology Officer of UBTECH Education, on a humanoid robot for STEM (Science, Technology, Engineering, and Math) education for a range of ages. (Begins at 1m 20s.)</p>
<p><em>Li Bingbing</em>, Software Engineer and Cofounder of Transforma in Singapore, on a robot for painting tall buildings. (Begins at 10m 25s.)</p>
<p><em>Xianbao Chen</em>, Associate Researcher at Shanghai Jiao Tong University, on a hexapod robot for large parts machining. (Begins at 17m 5s.)</p>
<p><em>Lester Teh Chee Onn</em>, Environmental Engineer at Advisian, on a watercraft for environmental monitoring. (Begins at 27m.)</p>
<p>&nbsp;</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/367703825-robohubpodcast-icra-2017-company-showcase.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (18.8 MB)</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a href="https://www.patreon.com/robohub_podcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Support us on Patreon</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/367703825-robohubpodcast-icra-2017-company-showcase.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.242: CUJO &#8211; Smart Firewall for Cybersecurity, with  Leon Kuperman  </title>
		<link>https://robohub.org/cujo-smart-firewall-for-cybersecurity/</link>
		
		<dc:creator><![CDATA[MeiXing Dong]]></dc:creator>
		<pubDate>Mon, 04 Sep 2017 01:35:42 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/cujo-smart-firewall-for-cybersecurity/</guid>

					<description><![CDATA[Leon Kuperman on cybersecurity threats and how to guard against them.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2017/08/cujo-box-e1503427173709.jpg"/><p><img decoding="async" class="alignnone size-full wp-image-84094" src="http://robohub.org/wp-content/uploads/2017/08/CUJO-IN-CONTEXT-PHONE.jpg" alt="" width="900" height="601" srcset="https://robohub.org/wp-content/uploads/2017/08/CUJO-IN-CONTEXT-PHONE.jpg 900w, https://robohub.org/wp-content/uploads/2017/08/CUJO-IN-CONTEXT-PHONE-425x284.jpg 425w, https://robohub.org/wp-content/uploads/2017/08/CUJO-IN-CONTEXT-PHONE-768x513.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" /><br />
<iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/340794794&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe><br />
<span style="font-weight: 400;">In this episode, MeiXing Dong talks with Leon Kuperman, CTO of CUJO, about cybersecurity threats and how to guard against them. They discuss how CUJO, a smart hardware firewall, helps protect the home against online threats.</span></p>
<p><span id="more-83992"></span></p>
<p><strong>Leon Kuperman</strong></p>
<img decoding="async" class="size-full wp-image-83993 alignleft" src="http://robohub.org/wp-content/uploads/2017/08/leon_kuperman-e1503426696219.jpeg" alt="" width="200" height="200" />
<p dir="ltr">Leon Kuperman is the CTO of CUJO IoT Security. Leon has a specialization in Artificial Intelligence, and is applying this expert knowledge of machine learning to his work at CUJO smart firewall. He is also an authority on Web Application Security and Payment Card Industry Data Security Standard (PCI DSS), e-commerce, cloud computing and web application architecture. Before CUJO, he co-founded ZENEDGE, a Web Application Security Platform for Enterprise. He also assisted with the launch of Modnique.com and held the position of CTO at Bidz.com. Prior to Zenedge, Leon founded and led Truition Inc., and early on demand ecommerce platform, winning major clients including Dell Financial Services, MLB, Comet, Philips, NHL, United Airlines and Disney. In his early career, he was the founding co-developer of IBM Net.Commerce currently named IBM Websphere Commerce Suite.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/340794794-robotspodcast-robots-cujo-smart-firewall-for-cybersecurity.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (14.4 MB)</a></li>
<li><a href="https://www.getcujo.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CUJO Website</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/340794794-robotspodcast-robots-cujo-smart-firewall-for-cybersecurity.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>New AI algorithm monitors sleep with radio waves</title>
		<link>https://robohub.org/new-ai-algorithm-monitors-sleep-with-radio-waves/</link>
		
		<dc:creator><![CDATA[MIT News]]></dc:creator>
		<pubDate>Wed, 09 Aug 2017 04:28:59 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[healthcare]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/new-ai-algorithm-monitors-sleep-with-radio-waves/</guid>

					<description><![CDATA[Patients with sleep disorders could be studied nonintrusively at home using wireless signals.]]></description>
										<content:encoded><![CDATA[<div id="attachment_82922" style="width: 649px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-82922" class="size-full wp-image-82922" src="http://robohub.org/wp-content/uploads/2017/08/MIT-Sleep-Signals_2.jpg" alt="" width="639" height="426" srcset="https://robohub.org/wp-content/uploads/2017/08/MIT-Sleep-Signals_2.jpg 639w, https://robohub.org/wp-content/uploads/2017/08/MIT-Sleep-Signals_2-425x283.jpg 425w" sizes="(max-width: 639px) 100vw, 639px" /><p id="caption-attachment-82922" class="wp-caption-text">Researchers have devised a new way to monitor sleep stages without sensors attached to the body. Their device uses an advanced artificial intelligence algorithm to analyze the radio signals around the person and translate those measurements into sleep stages: light, deep, or rapid eye movement (REM). Image: Christine Daniloff/MIT</p></div>
<p>More than 50 million Americans suffer from sleep disorders, and diseases including Parkinson’s and Alzheimer’s can also disrupt sleep. Diagnosing and monitoring these conditions usually requires attaching electrodes and a variety of other sensors to patients, which can further disrupt their sleep.</p>
<p>To make it easier to diagnose and study sleep problems, researchers at MIT and Massachusetts General Hospital have devised a new way to monitor sleep stages without sensors attached to the body. Their device uses an advanced artificial intelligence algorithm to analyze the radio signals around the person and translate those measurements into sleep stages: light, deep, or rapid eye movement (REM).</p>
<p>“Imagine if your Wi-Fi router knows when you are dreaming, and can monitor whether you are having enough deep sleep, which is necessary for memory consolidation,” says Dina Katabi, the Andrew and Erna Viterbi Professor of Electrical Engineering and Computer Science, who led the study. “Our vision is developing health sensors that will disappear into the background and capture physiological signals and important health metrics, without asking the user to change her behavior in any way.”</p>
<p>Katabi worked on the study with Matt Bianchi, chief of the division of sleep medicine at MGH, and Tommi Jaakkola, the Thomas Siebel Professor of Electrical Engineering and Computer Science and a member of the Institute for Data, Systems, and Society at MIT. Mingmin Zhao, an MIT graduate student, is the paper’s first author, and Shichao Yue, another MIT graduate student, is also a co-author.</p>
<p>The researchers will present their new sensor at the International Conference on Machine Learning on Aug. 9.</p>
<hr class="xh2  ">
<h3>Remote sensing</h3>
<p>Katabi and members of her group in MIT’s Computer Science and Artificial Intelligence Laboratory have previously developed radio-based sensors that enable them to remotely measure vital signs and behaviors that can be indicators of health. These sensors consist of a wireless device, about the size of a laptop computer, that emits low-power radio frequency (RF) signals. As the radio waves reflect off of the body, any slight movement of the body alters the frequency of the reflected waves. Analyzing those waves can reveal vital signs such as pulse and breathing rate.</p>
<p>“It’s a smart Wi-Fi-like box that sits in the home and analyzes these reflections and discovers all of these changes in the body, through a signature that the body leaves on the RF signal,” Katabi says.</p>
<p>Katabi and her students have also used this approach to create a sensor called WiGait that can measure walking speed using wireless signals, which could help doctors predict cognitive decline, falls, certain cardiac or pulmonary diseases, or other health problems.</p>
<p>After developing those sensors, Katabi thought that a similar approach could also be useful for monitoring sleep, which is currently done while patients spend the night in a sleep lab hooked up to monitors such as electroencephalography (EEG) machines.</p>
<p>“The opportunity is very big because we don’t understand sleep well, and a high fraction of the population has sleep problems,” says Zhao. “We have this technology that, if we can make it work, can move us from a world where we do sleep studies once every few months in the sleep lab to continuous sleep studies in the home.”</p>
<p>To achieve that, the researchers had to come up with a way to translate their measurements of pulse, breathing rate, and movement into sleep stages. Recent advances in artificial intelligence have made it possible to train computer algorithms known as deep neural networks to extract and analyze information from complex datasets, such as the radio signals obtained from the researchers’ sensor. However, these signals have a great deal of information that is irrelevant to sleep and can be confusing to existing algorithms. The MIT researchers had to come up with a new AI algorithm based on deep neural networks, which eliminates the irrelevant information.</p>
<p>“The surrounding conditions introduce a lot of unwanted variation in what you measure. The novelty lies in preserving the sleep signal while removing the rest,” says Jaakkola. Their algorithm can be used in different locations and with different people, without any calibration.</p>
<p>Using this approach in tests of 25 healthy volunteers, the researchers found that their technique was about 80 percent accurate, which is comparable to the accuracy of ratings determined by sleep specialists based on EEG measurements.</p>
<p>“Our device allows you not only to remove all of these sensors that you put on the person, and make it a much better experience that can be done at home, it also makes the job of the doctor and the sleep technologist much easier,” Katabi says. “They don’t have to go through the data and manually label it.”</p>
<hr class="xh2  ">
<h3>Sleep deficiencies</h3>
<p>Other researchers have tried to use radio signals to monitor sleep, but these systems are accurate only 65 percent of the time and mainly determine whether a person is awake or asleep, not what sleep stage they are in. Katabi and her colleagues were able to improve on that by training their algorithm to ignore wireless signals that bounce off of other objects in the room and include only data reflected from the sleeping person.</p>
<p>The researchers now plan to use this technology to study how Parkinson’s disease affects sleep.</p>
<p>“When you think about Parkinson’s, you think about it as a movement disorder, but the disease is also associated with very complex sleep deficiencies, which are not very well understood,” Katabi says.</p>
<p>The sensor could also be used to learn more about sleep changes produced by Alzheimer’s disease, as well as sleep disorders such as insomnia and sleep apnea. It may also be useful for studying epileptic seizures that happen during sleep, which are usually difficult to detect.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Somersault simulation for jumping robots</title>
		<link>https://robohub.org/somersault-simulation-for-jumping-robots/</link>
		
		<dc:creator><![CDATA[Association for Computing Machinery]]></dc:creator>
		<pubDate>Fri, 28 Jul 2017 20:58:03 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/somersault-simulation-for-jumping-robots/</guid>

					<description><![CDATA[In recent years engineers have been developing new technologies to enable robots and humans to move faster and jump higher. Soft, elastic materials store energy in these devices, which, if released carefully, enable elegant dynamic motions. Robots leap over obstacles and prosthetics empower sprinting. A fundamental challenge remains in developing these technologies. Scientists spend long [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-82486" src="http://robohub.org/wp-content/uploads/2017/07/jumping-bots.jpg" alt="" width="720" height="478" srcset="https://robohub.org/wp-content/uploads/2017/07/jumping-bots.jpg 720w, https://robohub.org/wp-content/uploads/2017/07/jumping-bots-425x282.jpg 425w" sizes="(max-width: 720px) 100vw, 720px" />
<p>In recent years engineers have been developing new technologies to enable robots and humans to move faster and jump higher. Soft, elastic materials store energy in these devices, which, if released carefully, enable elegant dynamic motions. Robots leap over obstacles and prosthetics empower sprinting. A fundamental challenge remains in developing these technologies. Scientists spend long hours building and testing prototypes that can reliably move in specific ways so that, for example, a robot lands right-side up upon landing a jump.</p>
<p>A pair of new computational methods developed by a team of researchers from Massachusetts Institute of Technology (MIT), University of Toronto and Adobe Research takes first steps towards automating the design of the dynamic mechanisms behind these movements. Their methods generate simulations that match the real-world behaviors of flexible devices at rates 70-times faster than previously possible and provide critical improvements in the accuracy of simulated collisions and rebounds. These methods are then both fast and accurate enough to be used to automate the design process used to create dynamic mechanisms for controlled jumping.</p>
<p>The team will present their methods and results from their paper, &#8220;Dynamics-Aware Numerical Coarsening for Fabrication Design,&#8221; at the SIGGRAPH 2017 conference in Los Angeles, 30 July to 3 August. SIGGRAPH spotlights the most innovative results in computer graphics research and interactive techniques worldwide.</p>
<div class="keep-aspect"><iframe title="Dynamics-Aware Numerical Coarsening for Fabrication Design" width="500" height="281" src="https://www.youtube-nocookie.com/embed/TyjUYMS62b8?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></div>
<p></p>
<p>&#8220;This research is pioneering work in applying computer graphics techniques to real physical objects with dynamic behavior and contact,&#8221; says lead author Desai Chen, a PhD candidate at MIT&#8217;s Computer Science and Artificial Intelligence Laboratory (CSAIL). &#8220;The techniques we&#8217;ve developed open the door to automating the design of highly dynamic, fast-moving objects.&#8221;</p>
<p>Chen&#8217;s co-authors include David I.W. Levin, assistant professor at the University of Toronto; Wojciech Matusik, associate professor of electrical engineering and computer science at MIT; and Danny M. Kaufman, senior research scientist at Adobe Research.</p>
<p>Major advances in computational design, physical modeling and rapid manufacturing have enabled the fabrication of objects with customized physical properties&#8211;such as tailored sneakers, complex prosthetics, and soft robots&#8211;while computer graphics research has seen rapid improvements and efficiencies in creating compelling animations of physics for games, virtual reality and film. In this new work, the team aims to combine efficiency and accuracy to enable simulation for design fabrication, and to accurately simulate objects in motion.</p>
<p>&#8220;The goal is to bring the physical rules of virtual reality much closer to those of actual reality,&#8221; says Levin.</p>
<p>In the research, the team addresses the challenge with simulating elastic objects as they collide &#8211; making things accurate enough to match reality and fast enough to automate that design process. Attempting to create such simulations in the presence of contact, impact or friction remains time-consuming and inaccurate.</p>
<p>&#8220;It is very important to get this part right, and, until now, our existing computer codes tend to break down here,&#8221; says Kaufman. &#8220;We realize that if we are doing design for the real world, we have to have code that correctly models things such as high-speed bouncing, collision and friction.&#8221;</p>
<p>The researchers demonstrate their new methods, Dynamics-Aware Coarsening (DAC) and Boundary Balanced Impact (BBI), by designing and fabricating mechanisms that flip, throw and jump over obstacles. Their methods perform simulations much faster than existing, state-of-the-art approaches and with greater accuracy when compared to real-world motions.</p>
<p>DAC works by reducing degrees of freedom, the number of values that encode motion, to speed up simulations while still capturing important motions for dynamic scenarios. It finds the roughest meshes that can correctly represent the key shapes that will be taken by dynamics and matches the material properties of these meshes directly to recorded video experiment. BBI is a method for modeling impact behavior of elastic objects. It uses material properties to smoothly project velocities near impact sites to model many real world impact situations such as the impact and rebound between a soft printed material and a table, for instance.</p>
<p>The team was inspired by the need for faster, more accurate design tools that can capture accurate simulations of elastic objects undergoing deformation and collision &#8211; especially at high-speeds. These new methods could, down the road, be applied to robotics design, developing robots as they increasingly take on human-like movements and characteristics.</p>
<p>&#8220;This project is really a first step for us in pushing methods for simulating reality,&#8221; says Kaufman. &#8220;We are focusing on pushing them for automatic design and exploring how to effectively use them in design. We can create beautiful images in computer graphics and in animation, let&#8217;s extend these methods to actual objects in the real world that are useful, beautiful and efficient.&#8221;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Reshaping computer-aided design</title>
		<link>https://robohub.org/reshaping-computer-aided-design/</link>
		
		<dc:creator><![CDATA[MIT News]]></dc:creator>
		<pubDate>Mon, 24 Jul 2017 22:37:00 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/reshaping-computer-aided-design/</guid>

					<description><![CDATA[CSAIL&#8217;s InstantCAD allows manufacturers to simulate, optimize CAD designs in real-time.]]></description>
										<content:encoded><![CDATA[<div id="attachment_82215" style="width: 910px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-82215" class="wp-image-82215 size-full" src="http://robohub.org/wp-content/uploads/2017/07/adriana-schulz.jpeg" alt="" width="900" height="639" srcset="https://robohub.org/wp-content/uploads/2017/07/adriana-schulz.jpeg 900w, https://robohub.org/wp-content/uploads/2017/07/adriana-schulz-425x302.jpeg 425w, https://robohub.org/wp-content/uploads/2017/07/adriana-schulz-768x545.jpeg 768w" sizes="(max-width: 900px) 100vw, 900px" /><p id="caption-attachment-82215" class="wp-caption-text">Adriana Schulz, an MIT PhD student in the Computer Science and Artificial Intelligence Laboratory, demonstrates the InstantCAD computer-aided-design-optimizing interface. Photo: Rachel Gordon/MIT CSAIL</p></div>
<p>Almost every object we use is developed with computer-aided design (CAD). Ironically, while CAD programs are good for creating designs, using them is actually very difficult and time-consuming if you’re trying to improve an existing design to make the most optimal product. Researchers from MIT’s <a href="http://csail.mit.edu/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Computer Science and Artificial Intelligence Laboratory</a> (CSAIL) and Columbia University are trying to make the process faster and easier: In a new paper, they’ve developed InstantCAD, a tool that lets designers interactively edit, improve, and optimize CAD models using a more streamlined and intuitive workflow.<span id="more-82179"></span></p>
<div class="cms-placeholder-content-video"> InstantCAD integrates seamlessly with existing CAD programs as a plug-in, meaning that designers don’t have to learn new tools to use it.</div>
<p>“From more ergonomic desks to higher-performance cars, this is really about creating better products in less time,” says Department of Electrical Engineering and Computer Science PhD student and lead author Adriana Schulz, who will be presenting the paper at this month’s SIGGRAPH computer-graphics conference in Los Angeles. “We think this could be a real game changer for automakers and other companies that want to be able to test and improve complex designs in a matter of seconds to minutes, instead of hours to days.”</p>
<p>The paper was co-written by Associate Professor Wojciech Matusik, PhD student Jie Xu, and postdoc Bo Zhu of CSAIL, as well as Associate Professor Eitan Grinspun and Assistant Professor Changxi Zheng of Columbia University.</p>
<p>Traditional CAD systems are “parametric,” which means that when engineers design models, they can change properties like shape and size (“parameters”) based on different priorities. For example, when designing a wind turbine you might have to make trade-offs between how much airflow you can get versus how much energy it will generate.</p>
<div id="attachment_82216" style="width: 578px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-82216" class="wp-image-82216 size-full" src="http://robohub.org/wp-content/uploads/2017/07/instantCAD.jpg" alt="" width="568" height="426" srcset="https://robohub.org/wp-content/uploads/2017/07/instantCAD.jpg 568w, https://robohub.org/wp-content/uploads/2017/07/instantCAD-425x319.jpg 425w" sizes="(max-width: 568px) 100vw, 568px" /><p id="caption-attachment-82216" class="wp-caption-text">InstantCAD enables designers to interactively edit, improve, and optimize CAD models using a more streamlined and intuitive workflow. Photo: Rachel Gordon/MIT CSAIL</p></div>
<p>However, it can be difficult to determine the absolute best design for what you want your object to do, because there are many different options for modifying the design. On top of that, the process is time-consuming because changing a single property means having to wait to regenerate the new design, run a simulation, see the result, and then figure out what to do next.</p>
<p>With InstantCAD, the process of improving and optimizing the design can be done in real-time, saving engineers days or weeks. After an object is designed in a commercial CAD program, it is sent to a cloud platform where multiple geometric evaluations and simulations are run at the same time.</p>
<p>With this precomputed data, you can instantly improve and optimize the design in two ways. With “interactive exploration,” a user interface provides real-time feedback on how design changes will affect performance, like how the shape of a plane wing impacts air pressure distribution. With “automatic optimization,” you simply tell the system to give you a design with specific characteristics, like a drone that’s as lightweight as possible while still being able to carry the maximum amount of weight.</p>
<p>The reason it’s hard to optimize an object’s design is because of the massive size of the design space (the number of possible design options).</p>
<p>“It’s too data-intensive to compute every single point, so we have to come up with a way to predict any point in this space from just a small number of sampled data points,” says Schulz. “This is called ‘interpolation,’ and our key technical contribution is a new algorithm we developed to take these samples and estimate points in the space.”</p>
<p>Matusik says InstantCAD could be particularly helpful for more intricate designs for objects like cars, planes, and robots, particularly for industries like car manufacturing that care a lot about squeezing every little bit of performance out of a product.</p>
<p>“Our system doesn’t just save you time for changing designs, but has the potential to dramatically improve the quality of the products themselves,” says Matusik. “The more complex your design gets, the more important this kind of a tool can be.”</p>
<p>Because of the system’s productivity boosts and CAD integration, Schulz is confident that it will have immediate applications for industry. Down the line, she hopes that InstantCAD can also help lower the barrier for entry for casual users.</p>
<p>&#8220;In a world where 3-D printing and industrial robotics are making manufacturing more accessible, we need systems that make the actual design process more accessible, too,” Schulz says. “With systems like this that make it easier to customize objects to meet your specific needs, we hope to be paving the way to a new age of personal manufacturing and DIY design.”</p>
<p>The project was supported by the National Science Foundation.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.238: Midwest Speech and Language Days 2017 Posters, with  Michael White,  Dmitriy Dligach and  Denis Newman-Griffiths  </title>
		<link>https://robohub.org/midwest-speech-and-language-days-2017-posters/</link>
		
		<dc:creator><![CDATA[MeiXing Dong]]></dc:creator>
		<pubDate>Sat, 08 Jul 2017 04:32:32 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/midwest-speech-and-language-days-2017-posters/</guid>

					<description><![CDATA[Question interpretation in a dialogue system, extracting patient timelines from doctor’s notes, and connecting words and phrases to relevant medical topics.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2017/07/Asset-1.png"/><p><img decoding="async" class="wp-image-81112 size-full aligncenter" src="http://robohub.org/wp-content/uploads/2017/07/Asset-1.png" alt="" width="901" height="636" srcset="https://robohub.org/wp-content/uploads/2017/07/Asset-1.png 901w, https://robohub.org/wp-content/uploads/2017/07/Asset-1-425x300.png 425w, https://robohub.org/wp-content/uploads/2017/07/Asset-1-768x542.png 768w" sizes="(max-width: 901px) 100vw, 901px" /><br />
<iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/332199890&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe><br />
<span style="font-weight: 400;">In this episode, MeiXing Dong conducts interviews at the 2017 Midwest Speech and Language Days workshop in Chicago. She talks with Michael White of Ohio State University about question interpretation in a dialogue system; Dmitriy Dligach of Loyola University Chicago about extracting patient timelines from doctor’s notes; and Denis Newman-Griffiths of Ohio State University about connecting words and phrases to relevant medical topics.</span></p>
<p><span id="more-81110"></span></p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/332199890-robotspodcast-robots-midwest-speech-and-language-days-2017-posters.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (14.7 MB)</a></li>
<li><a href="http://ttic.uchicago.edu/~kgimpel/MSLD2017.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Midwest Speech and Language Days 2017 Website</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/332199890-robotspodcast-robots-midwest-speech-and-language-days-2017-posters.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Using MATLAB for hardware-in-the-loop prototyping #1 : Message passing systems</title>
		<link>https://robohub.org/using-matlab-for-hardware-in-the-loop-prototyping-1-message-passing-systems/</link>
		
		<dc:creator><![CDATA[Florian Enner]]></dc:creator>
		<pubDate>Wed, 28 Jun 2017 10:00:00 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/using-matlab-for-hardware-in-the-loop-prototyping-1-message-passing-systems/</guid>

					<description><![CDATA[<div>
<div>
<div>
<p>MATLAB&#169; is a programming language and environment designed for scientific computing. It is one of the best languages for developing robot control algorithms and is widely used in the research community. While it is often thought of as an offline programming language, there are several ways to interface with it to control robotic hardware 'in the loop'. As part of our own development we surveyed a number of different projects that accomplish this by using a <a href="https://en.wikipedia.org/wiki/Message_passing" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">message passing</a> system and we compared the approaches they took. This post focuses on bindings for the following message passing frameworks: LCM, ROS, DDS, and ZeroMQ.</p>
</div>
<div>
<p>The main motivation for using MATLAB to prototype directly on real hardware is to dramatically accelerate the development cycle by reducing the time it takes to find out out whether an algorithm can withstand ubiquitous real-world problems like noisy and poorly-calibrated sensors, imperfect actuator controls, and unmodeled robot dynamics. Additionally, a workflow that requires researchers to port prototype code to another language before being able to test on real hardware can often lead to weeks or months being lost in chasing down new technical bugs introduceed by the port. Finally, programming in a language like C++ can pose a significant barrier to controls engineers who often have a strong electro-mechanical background but are not as strong in computer science or software engineering.</p>
</div>
<div>
<p>We have also noticed that over the past few years several other groups in the robotics community also experience these problems and have started to develop ways to control hardware directly from MATLAB.</p>
</div>
</div>
</div>
<div>
<h2>The Need for External Languages</h2>
<div>
<div>
<p>The main limitation when trying to use MATLAB to interface with hardware stems from the fact that its scripting language is fundamentally single threaded. It has been designed to allow non-programmers to do complex math operations without needing to worry about programming concepts like multi-threading or synchronization.  However, this poses a problem for real-time control of hardware because all communication is forced to happen synchronously in the main thread. For example, if a control loop runs at 100Hz and it takes a message ~8ms for a round-trip, the main thread ends up wasting 80% of the available time budget waiting for a response without doing any actual work.</p>
</div>
<div>
<p>A second hurdle is that while MATLAB is very efficient in the execution of math operations, it is not particularly well suited for byte manipulation. This makes it difficult to develop code that can efficiently create and parse binary message formats that the target hardware can understand. Thus, after having the main thread spend its time waiting for and parsing the incoming data, there may not be any time left for performing interesting math operations.</p>
</div>
<div>
<div>
<a href="https://ennerf.github.io/images/matlab/comms-single-threaded.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="https://ennerf.github.io/images/matlab/comms-single-threaded.png" alt="comms single threaded.png" width="100%"></a>
</div>
<div>Figure 1. Communications overhead in the main MATLAB thread</div>
</div>
<div>
<p>Pure MATLAB implementations can work for simple applications, such as interfacing with an Arduino to gather temperature data or blink an LED, but it is not feasible to control complex robotic systems (e.g. a humanoid) at high rates (e.g. 100Hz-1KHz). Fortunately, MATLAB does have the ability to interface with other programming languages that allow users to create background threads that can offload the communications aspect from the main thread.</p>
</div>
<div>
<div>
<a href="https://ennerf.github.io/images/matlab/comms-multi-threaded.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="https://ennerf.github.io/images/matlab/comms-multi-threaded.png" alt="comms multi threaded.png" width="100%"></a>
</div>
<div>Figure 2. Communications overhead offloaded to other threads</div>
</div>
<div>
<p>Out of the box MATLAB provides two interfaces to other languages:  <a href="https://www.mathworks.com/help/matlab/matlab_external/introducing-mex-files.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MEX</a> for calling C/C++ code, and the <a href="https://www.mathworks.com/help/matlab/matlab_external/product-overview.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Java Interface</a> for calling Java code. There are some differences between the two, but at the end of the day the choice effectively comes down to personal preference. Both provide enough capabilities for developing sophisticated interfaces and have orders of magnitude better performance than required.  There are additional interfaces to <a href="https://www.mathworks.com/help/matlab/calling-external-functions.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">other languages</a>, but those require additional setup steps.</p>
</div>
</div>
</div>
<div>
<h2>Message Passing Frameworks</h2>
<div>
<div>
<p><a href="https://en.wikipedia.org/wiki/Message_passing" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Message passing</a> frameworks such as <a href="http://www.ros.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Robot Operating System (ROS)</a> and <a href="https://lcm-proj.github.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Lightweight Communication and Marshalling (LCM)</a> have been widely adopted in the robotics research community. At the core they typically consist of two parts: a way to exchange data between processes (e.g. UDP/TCP), as well as a defined binary format for encoding and decoding the messages. They allow systems to be built with distributed components (e.g. processes) that run on different computers, different operating systems, and different programming languages.</p>
</div>
<div>
<p>The resulting systems are very extensible and provide convenient ways for prototyping. For example, a component communicating with a physical robot can be exchanged with a simulator without affecting the rest of the system. Similarly, a new walking controller could be implemented in MATLAB and communicate with external processes (e.g. robot comms) through the exchange of messages.  With ROS and LCM in particular, their flexibility, wide-spread adoption, and support for different languages make them a nice starting point for a MATLAB-hardware interface.</p>
</div>
<div>
<h3>Lightweight Communication and Marshalling (LCM)</h3>
<div>
<p><a href="https://lcm-proj.github.io/tut_matlab.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">LCM</a> was developed in 2006 at <a href="http://www.mit.edu/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MIT</a> for their entry to DARPA&#8217;s Urban Challenge. In recent years it has become a popular alternative to ROS-messaging, and it was as far as we know the first message passing framework for robotics that supported MATLAB as a core language.</p>
</div>
<div>
<p>The snippet below shows how the MATLAB code for sending a command message could look like. The code creates a struct-like <em>message</em>, sets desired values, and publishes it on an appropriate channel.</p>
</div>
<div>
<div>
<pre><code>%% MATLAB code for sending an LCM message
% Setup
lc = lcm.lcm.LCM.getSingleton();

% Fill message
cmd = types.command();
cmd.position = [1 2 3];
cmd.velocity = [1 2 3];

% Publish
lc.publish('COMMAND_CHANNEL', cmd);</code></pre>
</div>
</div>
<div>
<p>Interestingly, the backing implementation of these bindings was done in pure Java and did not contain any actual MATLAB code. The exposed interface consisted of two Java classes as well as auto-generated message types.</p>
</div>
<div>
<ul><li>
<p>The <a href="https://github.com/lcm-proj/lcm/blob/master/lcm-java/lcm/lcm/LCM.java" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">LCM</a> class provides a way to publish messages and subscribe to channels</p>
</li>
<li>
<p>The generated Java messages handle the binary encoding and exposed fields that MATLAB can access</p>
</li>
<li>
<p>The <a href="https://github.com/lcm-proj/lcm/blob/master/lcm-java/lcm/lcm/MessageAggregator.java" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MessageAggregator</a> class provides a way to receive messages on a background thread and queue them for MATLAB.</p>
</li>
</ul></div>
<div>
<p>Thus, even though the snippet looks similar to MATLAB code, all variables are actually Java objects. For example, the struct-like <em>command</em> type is a Java object that exposes public fields as shown in the snippet below. Users can access them the same way as fields of a standard MATLAB struct (or class properties) resulting in nice syntax. The types are automatically converted according to the <a href="https://mathworks.com/help/matlab/matlab_external/passing-data-to-java-methods.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">type mapping</a>.</p>
</div>
<div>
<div>
<pre><code>/**
 * Java class that behaves like a MATLAB struct
 */
public final class command implements lcm.lcm.LCMEncodable
{
    public double[] position;
    public double[] velocity;
    // etc. ...
}</code></pre>
</div>
</div>
<div>
<p>Receiving messages is done by subscribing an <em>aggregator</em> to one or more channels. The aggregator receives messages from a background thread and stores them in a queue that MATLAB can access in a synchronous manner using <em>aggregator.getNextMessage()</em>. Each message contains the raw bytes as well as some meta data for selecting an appropriate type for decoding.</p>
</div>
<div>
<div>
<pre><code>%% MATLAB code for receiving an LCM message
% Setup
lc = lcm.lcm.LCM.getSingleton();
aggregator = lcm.lcm.MessageAggregator();
lc.subscribe('FEEDBACK_CHANNEL', aggregator);

% Continuously check for new messages
timeoutMs = 1000;
while true

    % Receive raw message
    msg = aggregator.getNextMessage(timeoutMs);

    % Ignore timeouts
    if ~isempty(msg)

        % Select message type based on channel name
        if strcmp('FEEDBACK_CHANNEL', char(msg.channel))

            % Decode raw bytes to a usable type
            fbk = types.feedback(msg.data);

            % Use data
            position = fbk.position;
            velocity = fbk.velocity;

        end

    end
end</code></pre>
</div>
</div>
<div>
<p>The snippet below shows a simplified version of the backing Java code for the aggregator class. Since Java is limited to a single return argument, the <em>getNextMessage</em> call returns a Java type that contains the received bytes as well as meta data to identify the type, i.e., the source channel name.</p>
</div>
<div>
<div>
<pre><code>/**
 * Java class for receiving messages in the background
 */
public class MessageAggregator implements LCMSubscriber {

    /**
     * Value type that combines multiple return arguments
     */
    public static class Message {

        final public byte[] data; // raw bytes
        final public String channel; // source channel name

        public Message(String channel_, byte[] data_) {
            data = data_;
            channel = channel_;
        }
    }

    /**
     * Method that gets called from MATLAB to receive new messages
     */
    public synchronized Message getNextMessage(long timeout_ms) {

		if (!messages.isEmpty()) {
		    return messages.removeFirst();
        }

        if (timeout_ms == 0) { // non-blocking
            return null;
        }

        // Wait for new message until timeout ...
    }

}</code></pre>
</div>
</div>
<div>
<p>Note that the <em>getNextMessage</em> method requires a timeout argument. In general it is important for blocking Java methods to have a timeout in order to prevent the main thread from getting stuck permanently. Being in a Java call prohibits users from aborting the execution (ctrl-c), so timeouts should be reasonably short, i.e., in the low seconds. Otherwise this could cause the UI to become unresponsive and users may be forced to close MATLAB without being able to save their workspace. Passing in a timeout of zero serves as a non-blocking interface that immediately returns empty if no messages are available. This is often useful for working with multiple aggregators or for integrating asynchronous messages with unknown timing, such as user input.</p>
</div>
<div>
<p>Overall, we thought that this was a well thought out API and a great example for a minimum viable interface that works well in practice. By receiving messages on a background thread and by moving the encoding and decoding steps to the Java language, the main thread is able to spend most of its time on actually working with the data. Its minimalistic implementation is comparatively simple and we would recommend it as a starting point for developing similar interfaces.</p>
</div>
<div>
<p>Some minor points for improvement that we found were:</p>
</div>
<div>
<ul><li>
<p>The decoding step <em>fbk = types.feedback(msg.data)</em> forces two unnecessary translations due to <em>msg.data</em> being a <em>byte[]</em>, which automatically gets converted to and from <em>int8</em>. This could result in a noticeable performance hit when receiving larger messages (e.g. images) and could be avoided by adding an overload that accepts a non-primitive type that does not get translated, e.g., <em>fbk = types.feedback(msg)</em>.</p>
</li>
<li>
<p>The Java classes did not implement <a href="https://mathworks.com/help/matlab/matlab_external/save-and-load-java-objects-to-mat-files.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Serializable</a>, which could become bothersome when trying to save the workspace.</p>
</li>
<li>
<p>We would prefer to select the decoding type during the subscription step, e.g., <em>lc.subscribe('FEEDBACK_CHANNEL', aggregator, 'types.feedback')</em>, rather than requiring users to instantiate the type manually. This would clean up the parsing code a bit and allow for a less confusing error message if types are missing.</p>
</li>
</ul></div>
</div>
<div>
<h3>Robot Operating System (ROS)</h3>
<div>
<p><a href="http://www.ros.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS</a> is by far the most widespread messaging framework in the robotics research community and has been officially supported by Mathworks' <a href="https://www.mathworks.com/products/robotics.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Robotics System Toolbox</a> since 2014. While the Simulink code generation uses ROS C++, the MATLAB implementation is built on the less common RosJava.</p>
</div>
<div>
<p>The API was designed such that each topic requires dedicated publishers and subscribers, which is different from LCM where each subscriber may listen to multiple channels/topics. While this may result in potentially more subscribers, the specification of the expected type at initialization removes much of the boiler plate code necessary for dealing with message types.</p>
</div>
<div>
<div>
<pre><code>%% MATLAB code for publishing a ROS message
% Setup Publisher
chatpub = rospublisher('/chatter', 'std_msgs/String');

% Fill message
msg = rosmessage(chatpub);
msg.Data = 'Some test string';

% Publish
chatpub.send(msg);</code></pre>
</div>
</div>
<div>
<p>Subscribers support three different styles to access messages: blocking calls, non-blocking calls, and callbacks.</p>
</div>
<div>
<div>
<pre><code>%% MATLAB code for receiving a ROS message
% Setup Subscriber
laser = rossubscriber('/scan');

% (1) Blocking receive
scan = laser.receive(1); % timeout [s]

% (2) Non-blocking latest message (may not be new)
scan = laser.LatestMessage;

% (3) Callback
callback = @(msg) disp(msg);
subscriber = rossubscriber('/scan', @callback);</code></pre>
</div>
</div>
<div>
<p>Contrary to LCM, all objects that are visible to users are actually MATLAB classes. Even though the implementation is using Java underneath, all exposed functionality is wrapped in MATLAB classes that hide all Java calls. For example, each message type is associated with a generated wrapper class. The code below shows a simplified example of a wrapper for a message that has a <em>Name</em> property.</p>
</div>
<div>
<div>
<pre><code>%% MATLAB code for wrapping a Java message type
classdef WrappedMessage

    properties (Access = protected)
        % The underlying Java message object (hidden from user)
        JavaMessage
    end

    methods

        function name = get.Name(obj)
            % value = msg.Name;
            name = char(obj.JavaMessage.getName);
        end

        function set.Name(obj, name)
            % msg.Name = value;
            validateattributes(name, {'char'}, {}, 'WrappedMessage', 'Name');
            obj.JavaMessage.setName(name); % Forward to Java method
        end

        function out = doSomething(obj)
            % msg.doSomething() and doSomething(msg)
            try
                out = obj.JavaMessage.doSomething(); % Forward to Java method
            catch javaException
                throw(WrappedException(javaException)); % Hide Java exception
            end
        end

    end
end</code></pre>
</div>
</div>
<div>
<p>Due to the implementation being closed-source, we were only able to look at the public toolbox files as well as the compiled Java bytecode. As far as we could tell they built a small Java library that wrapped RosJava functionality in order to provide an interface that is easier to call from MATLAB. Most of the actual logic seemed to be implemented in MATLAB code, but we also found several calls to various Java libraries for problems that would have been difficult to implement in pure MATLAB, e.g., listing networking interfaces or doing in-memory decompression of images.</p>
</div>
<div>
<p>Overall, we found that the ROS support toolbox looked very nice and was a great example of how seamless external languages could be integrated with MATLAB. We also really liked that they offered a way to load log files (rosbags).</p>
</div>
<div>
<p>One concern we had was that there did not seem to be a simple non-blocking way to check for new messages, e.g., a <em>hasNewMessage()</em> method or functionality equivalent to LCM&#8217;s <em>getNextMessage(0)</em>. We often found this useful for applications that combined data from multiple topics that arrived at different rates (e.g. sensor feedback and joystick input events). We checked whether this behavior could be emulated by specifying a very small timeout in the <em>receive</em> method (shown in the snippet below), but any value below 0.1s seemed to never successfully return.</p>
</div>
<div>
<div>
<pre><code>%% Trying to check whether a new message has arrived without blocking
try
    msg = sub.receive(0.1); % below 0.1s always threw an error
    % ... use message ...
catch ex
    % ignore
end</code></pre>
</div>
</div>
</div>
<div>
<h3>Data Distribution Service (DDS)</h3>
<div>
<p>In 2014 Mathworks also added a <a href="https://www.mathworks.com/hardware-support/rti-dds.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">support package for DDS</a>, which is the messaging middleware that ROS 2.0 is based on. It supports MATLAB and Simulink, as
well as code generation. Unfortunately, we did not have all the requirements to get it setup, and we could not find much information about the underlying implementation. After looking at some of the intro videos, we believe that the resulting code should look as follows.</p>
</div>
<div>
<div>
<pre><code>%% MATLAB code for sending and receiving DDS messages
% Setup
DDS.import('ShapeType.idl','matlab');
dp = DDS.DomainParticipant

% Create message
myTopic = ShapeType;
myTopic.x = int32(23);
myTopic.y = int32(35);

% Send Message
dp.addWriter('ShapeType', 'Square');
dp.write(myTopic);

% Receive message
dp.addReader('ShapeType', 'Square');
readTopic = dp.read();</code></pre>
</div>
</div>
</div>
<div>
<h3>ZeroMQ</h3>
<div>
<p>ZeroMQ is another asynchonous messaging library that is popular for building distributed systems. It only handles the messaging aspect, so users need to supply their own wire format. <a href="https://github.com/smcgill3/zeromq-matlab" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ZeroMQ-matlab</a> is a MATLAB interface to ZeroMQ that was developed at UPenn between 2013-2015. We were not able to find much documentation, but as far as we could tell the resulting code should look similar to following snippet.</p>
</div>
<div>
<div>
<pre><code>%% MATLAB code for sending and receiving ZeroMQ data
% Setup
subscriber = zmq( 'subscribe', 'tcp', '127.0.0.1', 43210 );
publisher = zmq( 'publish', 'tcp', 43210 );

% Publish data
bytes = uint8(rand(100,1));
nbytes = zmq( 'send', publisher, bytes );

% Receive data
receiver = zmq('poll', 1000); // polls for next message
[recv_data, has_more] = zmq( 'receive', receiver );

disp(char(recv_data));</code></pre>
</div>
</div>
<div>
<p>It was implemented as a single MEX function that selects appropriate sub-functions based on a string argument. State was maintained by using socket IDs that were passed in by the user at every call. The code below shows a simplified snippet of the send action.</p>
</div>
<div>
<div>
<pre><code>// Parsing the selected ZeroMQ action behind the MEX barrier
// Grab command String
if ( !(command = mxArrayToString(prhs[0])) )
	mexErrMsgTxt("Could not read command string. (1st argument)");

// Match command String with desired action (e.g. 'send')
if (strcasecmp(command, "send") == 0){
	// ... (argument validation)

	// retrieve arguments
	socket_id = *( (uint8_t*)mxGetData(prhs[1]) );
	size_t n_el = mxGetNumberOfElements(prhs[2]);
	size_t el_sz = mxGetElementSize(prhs[2]);
	size_t msglen = n_el*el_sz;

	// send data
	void* msg = (void*)mxGetData(prhs[2]);
	int nbytes = zmq_send( sockets[ socket_id ], msg, msglen, 0 );

	// ... check outcome and return
}
// ... other actions</code></pre>
</div>
</div>
</div>
<div>
<h3>Other Frameworks</h3>
<div>
<p>Below is a list of APIs to other frameworks that we looked at but could not cover in more detail.</p>
</div>
<table><colgroup><col><col></colgroup><thead><tr><th>Project</th>
<th>Notes</th>
</tr></thead><tbody><tr><td><div><div>
<p><a href="https://github.com/ragavsathish/RabbitMQ-Matlab-Client" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RabbitMQ-Matlab-Client</a></p>
</div></div></td>
<td><div><div>
<p>Simple Java wrapper for RabbitMQ with callbacks into MATLAB</p>
</div></div></td>
</tr><tr><td><div><div>
<p><a href="https://sourceforge.net/projects/urbi/?source=typ_redirect" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">URBI</a> (<a href="http://agents.csse.uwa.edu.au/aibosig/resources/downloads/tutorial_liburbiMatlab_0.1.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">tutorial</a>)</p>
</div></div></td>
<td><div><div>
<p>Seems to be deprecated</p>
</div></div></td>
</tr></tbody></table></div>
</div>
</div>
<div>
<h2>Final Notes</h2>
<div>
<div>
<p>Contrary to the situation a few years ago, nowadays there exist interfaces for most of the common message passing frameworks that allow researchers to do at least basic hardware-in-the-loop prototyping directly from MATLAB. However, if none of the available options work for you and you are planning on developing your own, we recommend the following:</p>
</div>
<div>
<ul><li>
<p>If there is no clear pre-existing preference between C++ and Java, we recommend to start with a Java implementation. MEX interfaces require a lot of conversion code that Java interfaces would handle automatically.</p>
</li>
<li>
<p>We would recommend starting with a minimalstic LCM-like implementation and then add complexity when necessary.</p>
</li>
<li>
<p>While interfaces that only expose MATLAB code can provide a better and more consistent user experience (e.g. help documentation), there is a significant cost associated with maintaing all of the involved layers. We would recommend holding off on creating MATLAB wrappers until the API is relatively stable.</p>
</li>
</ul></div>
<div>
<p>Finally, even though message passing systems are very widespread in the robotics community, they do have drawbacks and are not appropriate for every application. Future posts in this series will focus on some of the alternatives.</p>
</div>
&#60;!----&#62;&#60;!----&#62;&#60;!--hljs.initHighlightingOnLoad()--&#62;</div>
</div>]]></description>
										<content:encoded><![CDATA[<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<img decoding="async" class="aligncenter size-full wp-image-80888" src="http://robohub.org/wp-content/uploads/2017/06/maxresdefault.jpg" alt="" width="1024" height="600" srcset="https://robohub.org/wp-content/uploads/2017/06/maxresdefault.jpg 1024w, https://robohub.org/wp-content/uploads/2017/06/maxresdefault-425x249.jpg 425w, https://robohub.org/wp-content/uploads/2017/06/maxresdefault-768x450.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>MATLAB© is a programming language and environment designed for scientific computing. It is one of the best languages for developing robot control algorithms and is widely used in the research community. While it is often thought of as an offline programming language, there are several ways to interface with it to control robotic hardware &#8216;in the loop&#8217;. As part of our own development we surveyed a number of different projects that accomplish this by using a <a href="https://en.wikipedia.org/wiki/Message_passing" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">message passing</a> system and we compared the approaches they took. This post focuses on bindings for the following message passing frameworks: LCM, ROS, DDS, and ZeroMQ.</p>
</div>
<div class="paragraph">
<p>The main motivation for using MATLAB to prototype directly on real hardware is to dramatically accelerate the development cycle by reducing the time it takes to find out out whether an algorithm can withstand ubiquitous real-world problems like noisy and poorly-calibrated sensors, imperfect actuator controls, and unmodeled robot dynamics. Additionally, a workflow that requires researchers to port prototype code to another language before being able to test on real hardware can often lead to weeks or months being lost in chasing down new technical bugs introduceed by the port. Finally, programming in a language like C++ can pose a significant barrier to controls engineers who often have a strong electro-mechanical background but are not as strong in computer science or software engineering.</p>
</div>
<div class="paragraph">
<p>We have also noticed that over the past few years several other groups in the robotics community also experience these problems and have started to develop ways to control hardware directly from MATLAB.</p>
<hr class="xh2  ">
</div>
</div>
</div>
<h3>The Need for External Languages</h3>
<div class="sect1">
<div class="sectionbody">
<div class="paragraph">
<p>The main limitation when trying to use MATLAB to interface with hardware stems from the fact that its scripting language is fundamentally single threaded. It has been designed to allow non-programmers to do complex math operations without needing to worry about programming concepts like multi-threading or synchronization. However, this poses a problem for real-time control of hardware because all communication is forced to happen synchronously in the main thread. For example, if a control loop runs at 100Hz and it takes a message ~8ms for a round-trip, the main thread ends up wasting 80% of the available time budget waiting for a response without doing any actual work.</p>
</div>
<div class="paragraph">
<p>A second hurdle is that while MATLAB is very efficient in the execution of math operations, it is not particularly well suited for byte manipulation. This makes it difficult to develop code that can efficiently create and parse binary message formats that the target hardware can understand. Thus, after having the main thread spend its time waiting for and parsing the incoming data, there may not be any time left for performing interesting math operations.</p>
</div>
<div class="imageblock text-center">
<div class="content"><a class="image" href="https://ennerf.github.io/images/matlab/comms-single-threaded.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="aligncenter" src="https://ennerf.github.io/images/matlab/comms-single-threaded.png" alt="comms single threaded.png" width="100%" /></a></div>
<div class="title">Figure 1. Communications overhead in the main MATLAB thread</div>
</div>
<div class="paragraph">
<p>Pure MATLAB implementations can work for simple applications, such as interfacing with an Arduino to gather temperature data or blink an LED, but it is not feasible to control complex robotic systems (e.g. a humanoid) at high rates (e.g. 100Hz-1KHz). Fortunately, MATLAB does have the ability to interface with other programming languages that allow users to create background threads that can offload the communications aspect from the main thread.</p>
</div>
<div class="imageblock text-center">
<div class="content"><a class="image" href="https://ennerf.github.io/images/matlab/comms-multi-threaded.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="aligncenter" src="https://ennerf.github.io/images/matlab/comms-multi-threaded.png" alt="comms multi threaded.png" width="100%" /></a></div>
<div class="title">Figure 2. Communications overhead offloaded to other threads</div>
</div>
<div class="paragraph">
<p>Out of the box MATLAB provides two interfaces to other languages: <a href="https://www.mathworks.com/help/matlab/matlab_external/introducing-mex-files.html" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">MEX</a> for calling C/C++ code, and the <a href="https://www.mathworks.com/help/matlab/matlab_external/product-overview.html" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Java Interface</a> for calling Java code. There are some differences between the two, but at the end of the day the choice effectively comes down to personal preference. Both provide enough capabilities for developing sophisticated interfaces and have orders of magnitude better performance than required. There are additional interfaces to <a href="https://www.mathworks.com/help/matlab/calling-external-functions.html" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">other languages</a>, but those require additional setup steps.</p>
<hr class="xh2  ">
<h3>Message Passing Frameworks</h3>
</div>
</div>
</div>
<div class="sect1">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://en.wikipedia.org/wiki/Message_passing" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Message passing</a> frameworks such as <a href="http://www.ros.org/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Robot Operating System (ROS)</a> and <a href="https://lcm-proj.github.io/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Lightweight Communication and Marshalling (LCM)</a> have been widely adopted in the robotics research community. At the core they typically consist of two parts: a way to exchange data between processes (e.g. UDP/TCP), as well as a defined binary format for encoding and decoding the messages. They allow systems to be built with distributed components (e.g. processes) that run on different computers, different operating systems, and different programming languages.</p>
</div>
<div class="paragraph">
<p>The resulting systems are very extensible and provide convenient ways for prototyping. For example, a component communicating with a physical robot can be exchanged with a simulator without affecting the rest of the system. Similarly, a new walking controller could be implemented in MATLAB and communicate with external processes (e.g. robot comms) through the exchange of messages. With ROS and LCM in particular, their flexibility, wide-spread adoption, and support for different languages make them a nice starting point for a MATLAB-hardware interface.</p>
<hr class="xh2  ">
</div>
<div class="sect2">
<h3 id="_lightweight_communication_and_marshalling_lcm">Lightweight Communication and Marshalling (LCM)</h3>
<div class="paragraph">
<p><a href="https://lcm-proj.github.io/tut_matlab.html" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">LCM</a> was developed in 2006 at <a href="http://www.mit.edu/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">MIT</a> for their entry to DARPA’s Urban Challenge. In recent years it has become a popular alternative to ROS-messaging, and it was as far as we know the first message passing framework for robotics that supported MATLAB as a core language.</p>
</div>
<div class="paragraph">
<p>The snippet below shows how the MATLAB code for sending a command message could look like. The code creates a struct-like <em>message</em>, sets desired values, and publishes it on an appropriate channel.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-matlab" data-lang="matlab">%% MATLAB code for sending an LCM message
% Setup
lc = lcm.lcm.LCM.getSingleton();

% Fill message
cmd = types.command();
cmd.position = [1 2 3];
cmd.velocity = [1 2 3];

% Publish
lc.publish('COMMAND_CHANNEL', cmd);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Interestingly, the backing implementation of these bindings was done in pure Java and did not contain any actual MATLAB code. The exposed interface consisted of two Java classes as well as auto-generated message types.</p>
</div>
<div class="ulist">
<ul>
<li>The <a href="https://github.com/lcm-proj/lcm/blob/master/lcm-java/lcm/lcm/LCM.java" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">LCM</a> class provides a way to publish messages and subscribe to channels</li>
<li>The generated Java messages handle the binary encoding and exposed fields that MATLAB can access</li>
<li>The <a href="https://github.com/lcm-proj/lcm/blob/master/lcm-java/lcm/lcm/MessageAggregator.java" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">MessageAggregator</a> class provides a way to receive messages on a background thread and queue them for MATLAB.</li>
</ul>
</div>
<div class="paragraph">
<p>Thus, even though the snippet looks similar to MATLAB code, all variables are actually Java objects. For example, the struct-like <em>command</em> type is a Java object that exposes public fields as shown in the snippet below. Users can access them the same way as fields of a standard MATLAB struct (or class properties) resulting in nice syntax. The types are automatically converted according to the <a href="https://mathworks.com/help/matlab/matlab_external/passing-data-to-java-methods.html" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">type mapping</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">/**
 * Java class that behaves like a MATLAB struct
 */
public final class command implements lcm.lcm.LCMEncodable
{
    public double[] position;
    public double[] velocity;
    // etc. ...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Receiving messages is done by subscribing an <em>aggregator</em> to one or more channels. The aggregator receives messages from a background thread and stores them in a queue that MATLAB can access in a synchronous manner using <em>aggregator.getNextMessage()</em>. Each message contains the raw bytes as well as some meta data for selecting an appropriate type for decoding.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-matlab" data-lang="matlab">%% MATLAB code for receiving an LCM message
% Setup
lc = lcm.lcm.LCM.getSingleton();
aggregator = lcm.lcm.MessageAggregator();
lc.subscribe('FEEDBACK_CHANNEL', aggregator);

% Continuously check for new messages
timeoutMs = 1000;
while true

    % Receive raw message
    msg = aggregator.getNextMessage(timeoutMs);

    % Ignore timeouts
    if ~isempty(msg)

        % Select message type based on channel name
        if strcmp('FEEDBACK_CHANNEL', char(msg.channel))

            % Decode raw bytes to a usable type
            fbk = types.feedback(msg.data);

            % Use data
            position = fbk.position;
            velocity = fbk.velocity;

        end

    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The snippet below shows a simplified version of the backing Java code for the aggregator class. Since Java is limited to a single return argument, the <em>getNextMessage</em> call returns a Java type that contains the received bytes as well as meta data to identify the type, i.e., the source channel name.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">/**
 * Java class for receiving messages in the background
 */
public class MessageAggregator implements LCMSubscriber {

    /**
     * Value type that combines multiple return arguments
     */
    public static class Message {

        final public byte[] data; // raw bytes
        final public String channel; // source channel name

        public Message(String channel_, byte[] data_) {
            data = data_;
            channel = channel_;
        }
    }

    /**
     * Method that gets called from MATLAB to receive new messages
     */
    public synchronized Message getNextMessage(long timeout_ms) {

		if (!messages.isEmpty()) {
		    return messages.removeFirst();
        }

        if (timeout_ms == 0) { // non-blocking
            return null;
        }

        // Wait for new message until timeout ...
    }

}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note that the <em>getNextMessage</em> method requires a timeout argument. In general it is important for blocking Java methods to have a timeout in order to prevent the main thread from getting stuck permanently. Being in a Java call prohibits users from aborting the execution (ctrl-c), so timeouts should be reasonably short, i.e., in the low seconds. Otherwise this could cause the UI to become unresponsive and users may be forced to close MATLAB without being able to save their workspace. Passing in a timeout of zero serves as a non-blocking interface that immediately returns empty if no messages are available. This is often useful for working with multiple aggregators or for integrating asynchronous messages with unknown timing, such as user input.</p>
</div>
<div class="paragraph">
<p>Overall, we thought that this was a well thought out API and a great example for a minimum viable interface that works well in practice. By receiving messages on a background thread and by moving the encoding and decoding steps to the Java language, the main thread is able to spend most of its time on actually working with the data. Its minimalistic implementation is comparatively simple and we would recommend it as a starting point for developing similar interfaces.</p>
</div>
<div class="paragraph">
<p>Some minor points for improvement that we found were:</p>
</div>
<div class="ulist">
<ul>
<li>The decoding step <em>fbk = types.feedback(msg.data)</em> forces two unnecessary translations due to <em>msg.data</em> being a <em>byte[]</em>, which automatically gets converted to and from <em>int8</em>. This could result in a noticeable performance hit when receiving larger messages (e.g. images) and could be avoided by adding an overload that accepts a non-primitive type that does not get translated, e.g., <em>fbk = types.feedback(msg)</em>.</li>
<li>The Java classes did not implement <a href="https://mathworks.com/help/matlab/matlab_external/save-and-load-java-objects-to-mat-files.html" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Serializable</a>, which could become bothersome when trying to save the workspace.</li>
<li>We would prefer to select the decoding type during the subscription step, e.g., <em>lc.subscribe(&#8216;FEEDBACK_CHANNEL&#8217;, aggregator, &#8216;types.feedback&#8217;)</em>, rather than requiring users to instantiate the type manually. This would clean up the parsing code a bit and allow for a less confusing error message if types are missing.</li>
</ul>
<hr class="xh2  ">
</div>
</div>
<div class="sect2">
<h3 id="_robot_operating_system_ros">Robot Operating System (ROS)</h3>
<div class="paragraph">
<p><a href="http://www.ros.org/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">ROS</a> is by far the most widespread messaging framework in the robotics research community and has been officially supported by Mathworks&#8217; <a href="https://www.mathworks.com/products/robotics.html" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Robotics System Toolbox</a> since 2014. While the Simulink code generation uses ROS C++, the MATLAB implementation is built on the less common RosJava.</p>
</div>
<div class="paragraph">
<p>The API was designed such that each topic requires dedicated publishers and subscribers, which is different from LCM where each subscriber may listen to multiple channels/topics. While this may result in potentially more subscribers, the specification of the expected type at initialization removes much of the boiler plate code necessary for dealing with message types.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-matlab" data-lang="matlab">%% MATLAB code for publishing a ROS message
% Setup Publisher
chatpub = rospublisher('/chatter', 'std_msgs/String');

% Fill message
msg = rosmessage(chatpub);
msg.Data = 'Some test string';

% Publish
chatpub.send(msg);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Subscribers support three different styles to access messages: blocking calls, non-blocking calls, and callbacks.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-matlab" data-lang="matlab">%% MATLAB code for receiving a ROS message
% Setup Subscriber
laser = rossubscriber('/scan');

% (1) Blocking receive
scan = laser.receive(1); % timeout [s]

% (2) Non-blocking latest message (may not be new)
scan = laser.LatestMessage;

% (3) Callback
callback = @(msg) disp(msg);
subscriber = rossubscriber('/scan', @callback);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Contrary to LCM, all objects that are visible to users are actually MATLAB classes. Even though the implementation is using Java underneath, all exposed functionality is wrapped in MATLAB classes that hide all Java calls. For example, each message type is associated with a generated wrapper class. The code below shows a simplified example of a wrapper for a message that has a <em>Name</em> property.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-matlab" data-lang="matlab">%% MATLAB code for wrapping a Java message type
classdef WrappedMessage

    properties (Access = protected)
        % The underlying Java message object (hidden from user)
        JavaMessage
    end

    methods

        function name = get.Name(obj)
            % value = msg.Name;
            name = char(obj.JavaMessage.getName);
        end

        function set.Name(obj, name)
            % msg.Name = value;
            validateattributes(name, {'char'}, {}, 'WrappedMessage', 'Name');
            obj.JavaMessage.setName(name); % Forward to Java method
        end

        function out = doSomething(obj)
            % msg.doSomething() and doSomething(msg)
            try
                out = obj.JavaMessage.doSomething(); % Forward to Java method
            catch javaException
                throw(WrappedException(javaException)); % Hide Java exception
            end
        end

    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Due to the implementation being closed-source, we were only able to look at the public toolbox files as well as the compiled Java bytecode. As far as we could tell they built a small Java library that wrapped RosJava functionality in order to provide an interface that is easier to call from MATLAB. Most of the actual logic seemed to be implemented in MATLAB code, but we also found several calls to various Java libraries for problems that would have been difficult to implement in pure MATLAB, e.g., listing networking interfaces or doing in-memory decompression of images.</p>
</div>
<div class="paragraph">
<p>Overall, we found that the ROS support toolbox looked very nice and was a great example of how seamless external languages could be integrated with MATLAB. We also really liked that they offered a way to load log files (rosbags).</p>
</div>
<div class="paragraph">
<p>One concern we had was that there did not seem to be a simple non-blocking way to check for new messages, e.g., a <em>hasNewMessage()</em> method or functionality equivalent to LCM’s <em>getNextMessage(0)</em>. We often found this useful for applications that combined data from multiple topics that arrived at different rates (e.g. sensor feedback and joystick input events). We checked whether this behavior could be emulated by specifying a very small timeout in the <em>receive</em> method (shown in the snippet below), but any value below 0.1s seemed to never successfully return.</p>
<a href="http://robohub.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-28-at-15.56.14.png" data-wpel-link="internal"><img decoding="async" class="aligncenter size-full wp-image-80937" src="http://robohub.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-28-at-15.56.14.png" alt="" width="716" height="170" srcset="https://robohub.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-28-at-15.56.14.png 716w, https://robohub.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-28-at-15.56.14-425x101.png 425w" sizes="(max-width: 716px) 100vw, 716px" /></a>
</div>
<div class="listingblock">
<div class="content">
<hr class="xh2  ">
</div>
</div>
</div>
<div class="sect2">
<h3 id="_data_distribution_service_dds">Data Distribution Service (DDS)</h3>
<div class="paragraph">
<p>In 2014 Mathworks also added a <a href="https://www.mathworks.com/hardware-support/rti-dds.html" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">support package for DDS</a>, which is the messaging middleware that ROS 2.0 is based on. It supports MATLAB and Simulink, as<br />
well as code generation. Unfortunately, we did not have all the requirements to get it setup, and we could not find much information about the underlying implementation. After looking at some of the intro videos, we believe that the resulting code should look as follows.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-matlab" data-lang="matlab">%% MATLAB code for sending and receiving DDS messages
% Setup
DDS.import('ShapeType.idl','matlab');
dp = DDS.DomainParticipant

% Create message
myTopic = ShapeType;
myTopic.x = int32(23);
myTopic.y = int32(35);

% Send Message
dp.addWriter('ShapeType', 'Square');
dp.write(myTopic);

% Receive message
dp.addReader('ShapeType', 'Square');
readTopic = dp.read();</code></pre>
</div>
</div>
</div>
<div class="sect2">
<hr class="xh2  ">
<h3 id="_zeromq">ZeroMQ</h3>
<div class="paragraph">
<p>ZeroMQ is another asynchonous messaging library that is popular for building distributed systems. It only handles the messaging aspect, so users need to supply their own wire format. <a href="https://github.com/smcgill3/zeromq-matlab" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">ZeroMQ-matlab</a> is a MATLAB interface to ZeroMQ that was developed at UPenn between 2013-2015. We were not able to find much documentation, but as far as we could tell the resulting code should look similar to following snippet.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-matlab" data-lang="matlab">%% MATLAB code for sending and receiving ZeroMQ data
% Setup
subscriber = zmq( 'subscribe', 'tcp', '127.0.0.1', 43210 );
publisher = zmq( 'publish', 'tcp', 43210 );

% Publish data
bytes = uint8(rand(100,1));
nbytes = zmq( 'send', publisher, bytes );

% Receive data
receiver = zmq('poll', 1000); // polls for next message
[recv_data, has_more] = zmq( 'receive', receiver );

disp(char(recv_data));</code></pre>
</div>
</div>
<div class="paragraph">
<p>It was implemented as a single MEX function that selects appropriate sub-functions based on a string argument. State was maintained by using socket IDs that were passed in by the user at every call. The code below shows a simplified snippet of the send action.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-c++" data-lang="c++">// Parsing the selected ZeroMQ action behind the MEX barrier
// Grab command String
if ( !(command = mxArrayToString(prhs[0])) )
	mexErrMsgTxt("Could not read command string. (1st argument)");

// Match command String with desired action (e.g. 'send')
if (strcasecmp(command, "send") == 0){
	// ... (argument validation)

	// retrieve arguments
	socket_id = *( (uint8_t*)mxGetData(prhs[1]) );
	size_t n_el = mxGetNumberOfElements(prhs[2]);
	size_t el_sz = mxGetElementSize(prhs[2]);
	size_t msglen = n_el*el_sz;

	// send data
	void* msg = (void*)mxGetData(prhs[2]);
	int nbytes = zmq_send( sockets[ socket_id ], msg, msglen, 0 );

	// ... check outcome and return
}
// ... other actions</code></pre>
</div>
</div>
</div>
<div class="sect2">
<hr class="xh2  ">
<h3 id="_other_frameworks">Other Frameworks</h3>
<div class="paragraph">
<p>Below is a list of APIs to other frameworks that we looked at but could not cover in more detail.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 25%;" />
<col style="width: 75%;" /> </colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Project</th>
<th class="tableblock halign-left valign-top">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top">
<div>
<div class="paragraph">
<p><a href="https://github.com/ragavsathish/RabbitMQ-Matlab-Client" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RabbitMQ-Matlab-Client</a></p>
</div>
</div>
</td>
<td class="tableblock halign-left valign-top">
<div>
<div class="paragraph">
<p>Simple Java wrapper for RabbitMQ with callbacks into MATLAB</p>
</div>
</div>
</td>
</tr>
<tr>
<td class="tableblock halign-left valign-top">
<div>
<div class="paragraph">
<p><a href="https://sourceforge.net/projects/urbi/?source=typ_redirect" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">URBI</a> (<a href="http://agents.csse.uwa.edu.au/aibosig/resources/downloads/tutorial_liburbiMatlab_0.1.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">tutorial</a>)</p>
</div>
</div>
</td>
<td class="tableblock halign-left valign-top">
<div>
<div class="paragraph">
<p>Seems to be deprecated</p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect1">
<hr class="xh2  ">
<h3 id="_final_notes">Final Notes</h3>
<div class="sectionbody">
<div class="paragraph">
<p>Contrary to the situation a few years ago, nowadays there exist interfaces for most of the common message passing frameworks that allow researchers to do at least basic hardware-in-the-loop prototyping directly from MATLAB. However, if none of the available options work for you and you are planning on developing your own, we recommend the following:</p>
</div>
<div class="ulist">
<ul>
<li>If there is no clear pre-existing preference between C++ and Java, we recommend to start with a Java implementation. MEX interfaces require a lot of conversion code that Java interfaces would handle automatically.</li>
<li>We would recommend starting with a minimalstic LCM-like implementation and then add complexity when necessary.</li>
<li>While interfaces that only expose MATLAB code can provide a better and more consistent user experience (e.g. help documentation), there is a significant cost associated with maintaing all of the involved layers. We would recommend holding off on creating MATLAB wrappers until the API is relatively stable.</li>
</ul>
</div>
<div class="paragraph">
<p>Finally, even though message passing systems are very widespread in the robotics community, they do have drawbacks and are not appropriate for every application. Future posts in this series will focus on some of the alternatives.</p>
</div>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UAV-based crop and weed classification for future farming</title>
		<link>https://robohub.org/uav-based-crop-and-weed-classification-for-future-farming/</link>
		
		<dc:creator><![CDATA[Philipp Lottes]]></dc:creator>
		<pubDate>Wed, 28 Jun 2017 09:00:34 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[environment & agriculture]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<guid isPermaLink="false">http://robohub.org/uav-based-crop-and-weed-classification-for-future-farming/</guid>

					<description><![CDATA[Crops are key for a sustainable food production and we face several challenges in crop production. First, we need to feed a growing world population. Second, our society demands high-quality foods. Third, we have to reduce the amount agrochemicals that we apply to our fields as it directly affects our ecosystem. Precision farming techniques offer [&#8230;]]]></description>
										<content:encoded><![CDATA[<a href="http://robohub.org/wp-content/uploads/2017/06/UAV_cropped.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter size-full wp-image-80879" src="http://robohub.org/wp-content/uploads/2017/06/UAV_cropped.jpg" alt="" width="1224" height="916" srcset="https://robohub.org/wp-content/uploads/2017/06/UAV_cropped.jpg 1224w, https://robohub.org/wp-content/uploads/2017/06/UAV_cropped-425x318.jpg 425w, https://robohub.org/wp-content/uploads/2017/06/UAV_cropped-768x575.jpg 768w, https://robohub.org/wp-content/uploads/2017/06/UAV_cropped-1024x766.jpg 1024w" sizes="(max-width: 1224px) 100vw, 1224px" /></a>
<p>Crops are key for a sustainable food production and we face several challenges in crop production. First, we need to feed a growing world population. Second, our society demands high-quality foods. Third, we have to reduce the amount agrochemicals that we apply to our fields as it directly affects our ecosystem. Precision farming techniques offer a great potential to address these challenges, but we have to acquire and provide the relevant information about the field status to the farmers such that specific actions can be taken.</p>
<p><strong>This paper won the <a href="http://www.icra2017.org/conference/awards" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external"><em>IEEE Robotics &amp; Automation</em> Best Automation Paper Award at ICRA 2017.</a></strong></p>
<p><span id="more-80214"></span></p>
<p>Modern approaches as agriculture system management and smart farming typically require detailed knowledge about the current field status. For successful on-field intervention, it is key to know the type and spatial distribution of the crops and weeds on the field at an early state. The earlier mechanical or chemical weeding actions are executed, the higher the chances for obtaining a high yield. A prerequisite to trigger weeding and intervention task is a detailed knowledge about the spread of weeds. Therefore, it is important to have an automatic perception pipeline that monitors and analyzes the crops automatically and provides report about the status on the field.</p>
<p>Fig. 1 illustrates the input and output of our approach. We use a comparably cheap, out-of-the-box UAV system to capture images of a field and compute a class label to each pixel, i.e., determine if that pixel belongs a crop or a weed. Through the use of GNSS and bundle adjustment procedures, we can obtain the spatial distribution of the detected crops and weeds in a global reference frame.</p>
<p><strong>Use Case 1:</strong> Farmer Support: In order to reduce the investments on herbicides, pesticides, and fertilizers by keeping or even increasing the yield, farmers must meet the following key questions: Where are weeds in the field? as well as where do the crops grow abnormally? Given the knowledge about the plant specific spatial distribution as illustrated in Fig. 2, farmers can decide, which and how much agro-chemicals are needed to address their specific needs. Furthermore, they can perform individual actions at specific locations in the field.</p>
<div id="attachment_80878" style="width: 1010px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/06/UAV-figure1.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-80878" class="size-full wp-image-80878" src="http://robohub.org/wp-content/uploads/2017/06/UAV-figure1.jpg" alt="" width="1000" height="500" srcset="https://robohub.org/wp-content/uploads/2017/06/UAV-figure1.jpg 1000w, https://robohub.org/wp-content/uploads/2017/06/UAV-figure1-425x213.jpg 425w, https://robohub.org/wp-content/uploads/2017/06/UAV-figure1-768x384.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></a><p id="caption-attachment-80878" class="wp-caption-text">Figure 1: Low-cost DJI Phantom 4 UAV used for field monitoring (left) as well as an example image analyzed by our approach (right). Here, green refers to detected sugar beets, which we consider as crop, and purple refers to weeds.</p></div>
<p><strong>Use Case 2:</strong> Autonomous Robots: In the future, autonomous robotic systems are likely to be used to manage arable farm land. Robots have the potential to survey the current field status on a continuous time scale and perform specific tasks such as weed control on a per-plant basis only in regions on a field where an action is actually needed. This work is part of the FLOURISH project (flourishproject.eu) were we are developing teams of autonomously and collaboratively operating UAVs and UGVs. Here, the UAVs offer excellent survey capabilities at low cost and can be used to analyze the field status. The analysis of crop and weed growth on the field is an essential building block to infer target locations for a targeted ground intervention. Thus, the UAV can send an UGV to those locations to execute interventions task.</p>
<hr class="xh2  ">
<h3>Approach</h3>
<p>We address the problem of analyzing UAV imagery to inspect the status of a field in terms of weed types and spatial crop and weed distribution. We focus on a detection on a per-plant basis to estimate the amount of crops as well as various weed species to provide this information to the farmers or as a part of an autonomous robotic perception system. In our work, we propose a vision-based classification system for identifying crops and weeds in both, RGB-only as well as RGB combined with near infra-red (NIR) imagery of agricultural fields captured by an UAV. Our perception pipeline is capable of detecting plants in such images only based on their appearance. Our approach is also able to exploit the geometry of the plant arrangement without requiring a known spatial distribution to be specified explicitly. Optionally, we can utilize prior information regarding the crop arrangement like crop rows. In addition to that it can deal with vegetation, which is located within the intra-row space.</p>
<div id="attachment_80880" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/06/field_status.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-80880" class="size-full wp-image-80880" src="http://robohub.org/wp-content/uploads/2017/06/field_status.jpg" alt="" width="900" height="503" srcset="https://robohub.org/wp-content/uploads/2017/06/field_status.jpg 900w, https://robohub.org/wp-content/uploads/2017/06/field_status-425x238.jpg 425w, https://robohub.org/wp-content/uploads/2017/06/field_status-768x429.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-80880" class="wp-caption-text">Figure 2: Analyzed field status by our approach. Based on these informations the farmers can schedule their next individual actions and estimate the needed amount of agro-chemicals for their field.</p></div>
<p><strong>Processing Pipeline</strong></p>
<p>The three key steps of our systems are the following: First, we apply a preprocessing in order to normalize intensity values on a global scale and detect the vegetation in each image. Second, we extract features only for regions, which correspond to vegetation, exploiting a combination of an object-based and a keypoint based approach. We compute around 550 visual features containing intensity statistics, texture and shape information. In addition to that, we exploit geometric features, which encode spatial relationships between the vegetation as well as optional crop row features, which consider the distance from the vegetation to estimated crop rows. Third, we apply a multi-class Random Forest classification and obtain a probability distribution for the predicted class labels.</p>
<div id="attachment_80881" style="width: 1010px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/06/all-of-them.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-80881" class="size-full wp-image-80881" src="http://robohub.org/wp-content/uploads/2017/06/all-of-them.jpg" alt="" width="1000" height="500" srcset="https://robohub.org/wp-content/uploads/2017/06/all-of-them.jpg 1000w, https://robohub.org/wp-content/uploads/2017/06/all-of-them-425x213.jpg 425w, https://robohub.org/wp-content/uploads/2017/06/all-of-them-768x384.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></a><p id="caption-attachment-80881" class="wp-caption-text">Figure 3: Example image captured by a DJI Phantom 4 at low altitude at different levels of progress within the classification pipeline. From left to right: normalized RGB image, computed Excess Green Index (ExG), vegetation mask that reflect the spatial distribution of the vegetation and multi-class classification output of our plant/weed classification system</p></div>
<p>Fig. 3 illustrates the key steps of our pipeline and Fig. 4 depicts an example of the detected crop rows. The papers [1] and [2] provide a detailed description of the pipeline as well as the features we are using for the classification.</p>
<hr class="xh2  ">
<h3>Results and Conclusion</h3>
<div id="attachment_80882" style="width: 970px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/06/croprow.png" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-80882" class="wp-image-80882 size-full" src="http://robohub.org/wp-content/uploads/2017/06/croprow.png" alt="" width="960" height="414" srcset="https://robohub.org/wp-content/uploads/2017/06/croprow.png 960w, https://robohub.org/wp-content/uploads/2017/06/croprow-425x183.png 425w, https://robohub.org/wp-content/uploads/2017/06/croprow-768x331.png 768w" sizes="(max-width: 960px) 100vw, 960px" /></a><p id="caption-attachment-80882" class="wp-caption-text">Figure 4: Detected set of crop rows (red) estimated based on Hough transform followed by a search algorithm in order to find the best set of parallel lines, which is supported by the vegetation. Example result from a sugar beet field with high weed pressure.</p></div>
<p>We implemented and tested our approach using different types of cameras and UAVs, on real sugar beet fields. Our experiments suggest that our proposed system is able to perform a classification of sugar beets and different weed types in RGB images captured by a commercial low cost UAV system. We show that the classification system achieves good performance in terms of overall accuracy of up to 96% even in images where neither a row detection of the crops nor a regular pattern of the plantation can be exploited for geometry-based detection. Furthermore, we evaluate our system using RGB+NIR images captured with a comparable expensive camera system to those obtained using the standard equipped RGB camera mounted on a consumer quad-copter (DJI Phantom 4 and camera for around $1,500). Fig. 5 depicts example results achieved on the different datasets respectively.</p>
<p>With our approach, we enable farmers to analyze the field status in terms of the spatial distribution of the crops and weeds on their field by using a low-cost UAV system, which can be used out-of-the-box. Typically, these systems are easy to use without requiring expertise on flying or aerial dynamics. The farmers only has to provide their expertise in terms of labeling into the perception pipeline. The farmers are predestined to perform this task because nobody knows better, which plants and weed types commonly appear on their specific fields. Compared to the area of the field only a small amount of data has to be labeled for analyzing the whole field. In terms of the usage withing autonomous robotic systems in agriculture this approach can be used as part of the perception pipeline of the system. Based on the classification results of the images taken by the UAV a program for decision making or planning can execute different task to achieve the destined goals, e.g. to send the UGV to a target location.</p>
<div id="attachment_80883" style="width: 621px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-27-at-20.23.02.png" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-80883" class="wp-image-80883 size-full" src="http://robohub.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-27-at-20.23.02.png" alt="" width="611" height="536" srcset="https://robohub.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-27-at-20.23.02.png 611w, https://robohub.org/wp-content/uploads/2017/06/Screen-Shot-2017-06-27-at-20.23.02-425x373.png 425w" sizes="(max-width: 611px) 100vw, 611px" /></a><p id="caption-attachment-80883" class="wp-caption-text">Figure 5: Zoomed view of images analyzed by our plant/weed classification system (left column) and corresponding ground truth images (right column). Top row: Multi-class results for the dataset captured by the DJI Phantom 4 UAV. Here, the crops do not follow a row structure. Thus, the results are based on the visual as well as geometric features. Center row: Result for the dataset captured with an 4-channel RGB+NIR camera system. Bottom row: Result for the dataset captured with a DJI Matrice 100 UAV. Arrows point to weeds detected in intra-row space. Sugar beet (green), chamomile (blue), saltbush (yellow) and other weeds (red).</p></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Spider webs as computers</title>
		<link>https://robohub.org/spider-webs-as-computers/</link>
		
		<dc:creator><![CDATA[Helmut Hauser]]></dc:creator>
		<pubDate>Tue, 27 Jun 2017 13:00:07 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[bio-inspired]]></category>
		<category><![CDATA[reports]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/spider-webs-as-computers/</guid>

					<description><![CDATA[Spiders are truly amazing creatures. They have evolved over more than 200 million years and can be found in almost every corner of our planet. They are one of the most successful animals. Not less impressive are their webs, highly intricate structures that have been optimised through evolution over approximately 100 million years with the [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-80777" src="http://robohub.org/wp-content/uploads/2017/06/spider-web-with-water-beads-network-dewdrop.jpg" alt="" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2017/06/spider-web-with-water-beads-network-dewdrop.jpg 900w, https://robohub.org/wp-content/uploads/2017/06/spider-web-with-water-beads-network-dewdrop-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/06/spider-web-with-water-beads-network-dewdrop-768x512.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" />
<p>Spiders are truly amazing creatures. They have evolved over more than 200 million years and can be found in almost every corner of our planet. They are one of the most successful animals. Not less impressive are their webs, highly intricate structures that have been optimised through evolution over approximately 100 million years with the ultimate purpose of catching prey.<span id="more-80776"></span></p>
<p>However, interestingly, the closer you look at spiders&#8217; webs the more details you can observe and the structures are much more complicated than one would expect from a simple snare. They are made of a variety of different types of silks, use water droplets to keep the tension [see: <a href="#citation">citation</a> 4], and the structure is highly dynamic [see: <a href="#citation">citation</a> 4]. Spider&#8217;s webs have a great deal more morphological complexity than what you would need to simply catch flies.</p>
<p>Since nature typically does not spoil resources the question arises: why are spiders&#8217; webs so complex? Might they have other functionalities besides being a simple trap? One of the most interesting answers to this question is that spiders might use their webs as computational devices.</p>
<hr class="xh2  ">
<h3>How does the spider use the web as a computer?</h3>
<p>Despite the fact that most spiders have a lot of eyes (the majority has 8, but some have even up to 12), a lot of the spiders have bad sight. In order to understand what is going on in their webs, they use mechanoreceptors in their legs (called <a href="http://www.wikiwand.com/en/Slit_sensilla" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">lyriforms</a>) to &#8220;listen&#8221; to vibrations in the web.  Different species of spiders have different preferred places to sit and observe. While some can be found right at the center, others prefer to sit outside the actual web and to listen to one single thread. It is quite remarkable that based only on the information that comes through this single thread the spider seems to be able to deduce what is going on in their web and where these events are taking place.</p>
<p>For example, they need to know if there is a prey, like a fly, entangled in their web. Or if the vibrations are coming from a dangerous insect like a wasp and they should stay away. The web is also used to communicate with potential mates and the spider even excites the web and listens to the echo. This might be a way for the spider to check if threads are broken or if the tension in the web has to be increased.</p>
<p>From a computational point of view, the spider needs to classify different vibration pattern (e.g., prey vs predator vs mate) and to locate its origin (i.e., where the vibration started).</p>
<p>One way to understand how a spider&#8217;s web could help to carry out this computational functionality is the concept of morphological computation. This is a term that describes the understanding that mechanical structures all over in nature are carrying out useful computations. For example, they help to stabilise running, facilitate sensory data processing, and helps animals and plants to interact with complex and unpredictable environments.</p>
<p>One could say computation is outsourced to the physical body (e.g., from the <a href="http://robohub.org/morphological-computation-the-hidden-superpower-of-soft-bodied-robots/" target="_blank" rel="noopener noreferrer" data-wpel-link="internal">brain to another part of the body</a>).</p>
<p>From this point of view, the spider’s web can be seen as a nonlinear, dynamic filter. It can be understood as some kind of pre-processing unit that makes it easier for the animal to interpret the vibration signals. The web’s dynamic properties and its complex morphological structure mix vibration signals in a nonlinear fashion. It even has some memory. This can be easily seen by pinching the web. It responds with vibrations for some moments after the impact echoing the original input.  The web can also damp unwanted frequencies, which is crucial to get rid of noise. On the other hand, it might even be able to highlight other signals at certain frequencies that carry more relevant information about the events taking place on the web.</p>
<p>These are all useful computations and they make it easier for the spider to &#8220;read&#8221; and understand the vibration patterns. As a result, the brain of the animal has to do less work and it can concentrate on other tasks. In effect, the spider seems to devolve computation to the web.  This might be also the reason why spiders tend to their webs so intensively. They constantly observe it and adapt the tension if it has changed, e.g. due to change in humidity, and repair it as soon a thread is broken.</p>
<hr class="xh2  ">
<h3>From spider webs to sensors</h3>
<p>People have speculated for a while that spider webs might have additional functionalities. A great article that discusses that is &#8220;<a href="https://www.quantamagazine.org/the-thoughts-of-a-spiderweb-20170523/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">The Thoughts of a Spiderweb</a>&#8220;.</p>
<p>However, nobody so far has systematically looked into the actual computational capabilities of the web. This is about to change. We recently started a <a href="http://www.morphologicalcomputation.org/the-spiders-web-as-a-computer/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Leverhulme Trust Research</a> project that will investigate naturally spun spider webs of different species to understand how and which computing might take place in these structures.  Moreover, the project does not only try to understand the underlying computational principles but will also develop morphological computation-based sensor technology to measure flow and vibrations.</p>
<p>The project combines our research expertise in Morphological Computation at the University of Bristol and the expertise on spider webs at the Silk Group in Oxford.</p>
<p>In experimental setups we will use solenoids and laser Doppler vibrometers to measure vibrations in the web with very high precision. The goal is to understand how computation is carried out. We will systematically investigate how filtering capabilities, memory, and signal integration can happen in such structures. In parallel, we will develop a general simulation environment for vibrating structures. We will use this to ask specific questions about how different shapes and materials others than spider webs and silk can help to carry out computations. In addition, we will develop real prototypes of vibration and flow sensors, which will be inspired by these findings. It&#8217;s very likely they will look different from spider webs and they will use various types of materials.</p>
<p>Such sensors can be used in various applications. For example, morphological computation based flow sensors could be used to detect anomalies in the flow in tubes. Or vibration sensors put at strategic places on buildings could be able to detect earthquakes or structural failure. Also highly dynamic machines, for example, a wind turbine, could be monitored by such sensors to predict failure.</p>
<p>Ultimately, the project will provide not only a new technology to build sensors, but we hope also to get a fundamental understanding how spiders use their webs for computation.</p>
<hr class="xh2  ">
<h3>References</h3>
<p>[1] Hauser, H.; Ijspeert, A.; Füchslin, R.; Pfeifer, R. &amp; Maass, W.&#8221;<a href="http://www.springerlink.com/content/j236312507300638/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Towards a theoretical foundation for morphological computation with compliant bodies</a>.&#8221;Biological Cybernetics, Springer Berlin / Heidelberg, 2011, 105, 355-370</p>
<p>[2]  Hauser, H.; Ijspeert, A.; Füchslin, R.; Pfeifer, R. &amp; Maass, W. <a href="http://www.springerlink.com/content/d54t39qh28561271/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">&#8220;The role of feedback in morphological computation with compliant bodies&#8221;</a>. Biological Cybernetics, Springer Berlin / Heidelberg, 2012, 106, 595-613</p>
<p>[3] Hauser, H.; Füchslin, R.M.; Nakajima, K.<a href="https://www.dropbox.com/s/zg79mw35nvq4bba/Chapter_20_Hauser.pdf?dl=0" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">&#8220;Morphological Computation &#8211; The Physical Body as a Computational Resource&#8221;</a> Opinions and Outlooks on Morphological Computation, editors Hauser, H.; Füchslin, R.M. and Pfeifer, R., Chapter 20, pp 226-244,  2014, ISBN 978-3-033-04515-6<br />
<a name="citation"></a><br />
[4] Mortimer, B., Gordon, S. D., Holland, C., Siviour, C. R., Vollrath, F. and Windmill, J. F. C. (2014), The Speed of Sound in Silk: Linking Material Performance to Biological Function. Adv. Mater., 26: 5179–5183. doi:<a href="http://onlinelibrary.wiley.com/doi/10.1002/adma.201401027/abstract" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">10.1002/adma.201401027</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Teaching ROS quickly to students</title>
		<link>https://robohub.org/teaching-ros-quickly-to-students/</link>
		
		<dc:creator><![CDATA[Ricardo Téllez]]></dc:creator>
		<pubDate>Fri, 09 Jun 2017 09:00:03 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/teaching-ros-quickly-to-students/</guid>

					<description><![CDATA[<p>&#160; Lecturer Steffen Pfiffner of University of Weingarten in Germany is teaching&#160;ROS to 26 students at the same time at a very fast pace. His students, all of them within&#160;the Master on Computer Science of University of Weingarten, use only a web browser. They connect to a web page containing the lessons, a ROS development</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.theconstructsim.com/teaching-ros-fast-to-many-students/" data-wpel-link="external" target="_blank">Teaching ROS Fast To Many Students</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.theconstructsim.com/" data-wpel-link="external" target="_blank">The Construct</a>.</p>]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-79391" src="http://robohub.org/wp-content/uploads/2017/05/teach_ros_robot_ignite_academy_learn_ros_robots_robtoics_programming.jpg" alt="" width="900" height="571" srcset="https://robohub.org/wp-content/uploads/2017/05/teach_ros_robot_ignite_academy_learn_ros_robots_robtoics_programming.jpg 900w, https://robohub.org/wp-content/uploads/2017/05/teach_ros_robot_ignite_academy_learn_ros_robots_robtoics_programming-425x270.jpg 425w, https://robohub.org/wp-content/uploads/2017/05/teach_ros_robot_ignite_academy_learn_ros_robots_robtoics_programming-768x487.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" />
<p>Lecturer Steffen Pfiffner of University of Weingarten in Germany is teaching ROS to 26 students at the same time at a very fast pace. His students, all of them within the Master on Computer Science of University of Weingarten, use only a web browser. They connect to a web page containing the lessons, a ROS development environment and several ROS based simulated robots. Using the browser, Pfiffner and his colleague Benjamin Stähle, are able to teach how to program with ROS quickly and to many students. This is what Robot Ignite Academy is made for.<span id="more-79167"></span></p>
<p>“With Ignite Academy our students can jump right into ROS without all the hardware and software setup problems. And the best: they can do this from everywhere,&#8221; says Pfiffner.</p>
<p>Robot Ignite Academy provides a web service which contains the teaching material in text and video format, the simulations of several ROS based robots that the students must learn to program, and the development environment required to build ROS programs and test them on the simulated robot.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-79392" src="http://robohub.org/wp-content/uploads/2017/05/robot-ignite.png" alt="" width="1024" height="640" srcset="https://robohub.org/wp-content/uploads/2017/05/robot-ignite.png 1024w, https://robohub.org/wp-content/uploads/2017/05/robot-ignite-425x266.png 425w, https://robohub.org/wp-content/uploads/2017/05/robot-ignite-768x480.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><hr class="xh2  "></p>
<h3>Student&#8217;s point of view</h3>
<p>Students bring their own laptops to the class and connect to the <a href="http://robotignite.academy" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">online platform</a>. From that moment, their laptop becomes a ROS development machine, ready to develop programs for many simulated real robots.</p>
<p>The Academy provides the text, the videos and the examples that the student has to follow. Then, the student creates her own ROS program and makes the robot perform a specific action. The student develops the ROS programs as if she is in a typical ROS development computer.</p>
<p>The main advantage is that students can use a Windows, Linux or Mac machine to learn ROS. They don’t even have to install ROS in their computers. The only prerequisite of the laptop is to have a browser. So students do not mess with all the installation problems that frustrate them (and the teachers!), especially when they are starting.</p>
<p>After class, students can continue with their learning at home, library or even the beach if there is a wifi available! All their code, learning material and simulations are stored online so they can access them from anywhere, anytime using any computer.</p>
<hr class="xh2  ">
<h3>Teacher&#8217;s point of view</h3>
<p>The advantage of using the platform is not only for the students but also for the teachers. Teachers do not have to create the material and maintain it. They do not have to prepare the simulations or work on multiple different computers. They don’t even have to prepare the exams!! (which are already provided by the platform).</p>
<p>So what are the teachers for?</p>
<p>By making use of the provided material, the teacher can concentrate on guiding the students by explaining the most confusing parts, answer questions, suggest modifications according to the level of each student, and adapt the pace to the different types of students.</p>
<p>This new method of teaching ROS is exploding among the Universities and High Schools that want to provide the latest and most practical teachings to their students. The method, developed by Robot Ignite Academy, combines a new way of teaching based on practice and an online learning platform. Those two points combined make the teaching of ROS a smooth experience and can potentially see the students&#8217; knowledge base skyrocket.</p>
<p>As user Walace Rosa indicates in his video comment about Robot Ignite Academy:</p>
<blockquote><p>It is a game changer [in] teaching ROS!</p></blockquote>
<p>The method is becoming very popular in the robotics circuits too, and many teachers are using it for younger students. For example, High School Mundet in Barcelona is using it to teach ROS to 15 years old students.</p>
<p>Additionally, the academy provides a free online certification exam with different levels of knowledge certification. Many Universities are using this exam to certify that their students did learn the material since the exam is quite demanding.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-79393" src="http://robohub.org/wp-content/uploads/2017/05/ROS-classroom-teaching.jpg" alt="" width="1024" height="768" srcset="https://robohub.org/wp-content/uploads/2017/05/ROS-classroom-teaching.jpg 1024w, https://robohub.org/wp-content/uploads/2017/05/ROS-classroom-teaching-425x319.jpg 425w, https://robohub.org/wp-content/uploads/2017/05/ROS-classroom-teaching-768x576.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><hr class="xh2  "></p>
<h3>Some examples of past events</h3>
<ul>
<li><span class="s2"> 1 week ROS course in Barcelona for <em><a href="http://smart-e-mariecurie.eu/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">SMART-E project</a></em> team members. This is a private course given by Robot Ignite Academy at Barcelona for 15 members of the SMART-E project that need to be up to speed with ROS fast. <strong>From 8th to 12nd of May 2017</strong></span></li>
<li> 1 day ROS course for the <em><a href="http://www.enginyersbcn.cat/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Col·legi d’Enginyers de Barcelona</a></em>. <strong>The 17th of May 2017</strong>.</li>
<li> 3 months course for <em><a href="http://www.salleurl.edu/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">University of La Salle</a></em> in Barcelona within the <em><a href="http://www.beslasalle.net/portal/masters/masters-electronica-madr-barcelona" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Master on Automatics, Domotics and Robotics</a></em>. <strong>From 10th of May to 29th of June 2017</strong>.</li>
<li> 1 weekend ROS course for teenagers in Bilbao, Spain. <strong>The 20th and 21st of May 2017</strong>.</li>
<li> We can also organize a special event like these for you and your team.</li>
</ul>
<hr class="xh2  ">
<h3>Helpful ROS videos</h3>
<div class="keep-aspect"><iframe title="ROS BASICS IN 5 DAYS #1 - Course Overview &amp; Introduction" width="500" height="281" src="https://www.youtube-nocookie.com/embed/DBFYZRMLr70?list=PLK0b4e05LnzaOZxQt0OwMRwIa8ysYG9_a" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p></p>
<div class="keep-aspect"><iframe title="3 reasons why students struggle with ROS" width="500" height="281" src="https://www.youtube-nocookie.com/embed/XUwREG8ZOgc?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></div>
<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Faster, more nimble drones on the horizon</title>
		<link>https://robohub.org/faster-more-nimble-drones-on-the-horizon/</link>
		
		<dc:creator><![CDATA[MIT News]]></dc:creator>
		<pubDate>Wed, 31 May 2017 08:35:00 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[Aeronautical and astronautical engineering]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[School of Engineering]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<guid isPermaLink="false">http://robohub.org/faster-more-nimble-drones-on-the-horizon/</guid>

					<description><![CDATA[New algorithm quickly makes sense of incoming visual data.]]></description>
										<content:encoded><![CDATA[<div id="attachment_79306" style="width: 649px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/05/MIT-Vision-Sensor_0.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-79306" class="size-full wp-image-79306" src="http://robohub.org/wp-content/uploads/2017/05/MIT-Vision-Sensor_0.jpg" alt="" width="639" height="426" srcset="https://robohub.org/wp-content/uploads/2017/05/MIT-Vision-Sensor_0.jpg 639w, https://robohub.org/wp-content/uploads/2017/05/MIT-Vision-Sensor_0-425x283.jpg 425w" sizes="(max-width: 639px) 100vw, 639px" /></a><p id="caption-attachment-79306" class="wp-caption-text">Engineers at MIT have come up with an algorithm to tune a Dynamic Vision Sensor (DVS) camera, simplifying a scene to its most essential visual elements and potentially enabling the development of faster drones. Image: Jose-Luis Olivares/MIT</p></div>
<p>There’s a limit to how fast autonomous vehicles can fly while safely avoiding obstacles. That’s because the cameras used on today’s drones can only process images so fast, frame by individual frame. Beyond roughly 30 miles per hour, a drone is likely to crash simply because its cameras can’t keep up.</p>
<p>Recently, researchers in Zurich invented a new type of camera, known as the Dynamic Vision Sensor (DVS), that continuously visualizes a scene in terms of changes in brightness, at extremely short, microsecond intervals<strong>. </strong>But this deluge of data can overwhelm a system, making it difficult for a drone to distinguish an oncoming obstacle through the noise.</p>
<p>Now engineers at MIT have come up with an algorithm to tune a DVS camera to detect only specific changes in brightness that matter for a particular system, vastly simplifying a scene to its most essential visual elements.</p>
<p>The results, which they presented at the IEEE American Control Conference in Seattle, can be applied to any linear system that directs a robot to move from point A to point B as a response to high-speed visual data. Eventually, the results could also help to increase the speeds for more complex systems such as drones and other autonomous robots.</p>
<p>“There is a new family of vision sensors that has the capacity to bring high-speed autonomous flight to reality, but researchers have not developed algorithms that are suitable to process the output data,” says lead author Prince Singh, a graduate student in MIT’s Department of Aeronautics and Astronautics. “We present a first approach for making sense of the DVS’ ambiguous data, by reformulating the inherently noisy system into an amenable form.”</p>
<p>Singh’s co-authors are MIT visiting professor Emilio Frazzoli of the Swiss Federal Institute of Technology in Zurich, and Sze Zheng Yong of Arizona State University.</p>
<p><strong>Taking a visual cue from biology</strong></p>
<p>The DVS camera is the first commercially available “neuromorphic” sensor — a class of sensors that is modeled after the vision systems in animals and humans. In the very early stages of processing a scene, photosensitive cells in the human retina, for example, are activated in response to changes in luminosity, in real time.</p>
<p>Neuromorphic sensors are designed with multiple circuits arranged in parallel, similarly to photosensitive cells, that activate and produce blue or red pixels on a computer screen in response to either a drop or spike in brightness.</p>
<p>Instead of a typical video feed, a drone with a DVS camera would “see” a grainy depiction of pixels that switch between two colors, depending on whether that point in space has brightened or darkened at any given moment. The sensor requires no image processing and is designed to enable, among other applications, high-speed autonomous flight.</p>
<p>Researchers have used DVS cameras to enable simple linear systems to see and react to high-speed events, and they have designed controllers, or algorithms, to quickly translate DVS data and carry out appropriate responses. For example, engineers have designed controllers that interpret pixel changes in order to control the movements of a robotic goalie to block an incoming soccer ball, as well as to direct a motorized platform to keep a pencil standing upright.</p>
<p>But for any given DVS system, researchers have had to start from scratch in designing a controller to translate DVS data in a meaningful way for that particular system.</p>
<p>“The pencil and goalie examples are very geometrically constrained, meaning if you give me those specific scenarios, I can design a controller,” Singh says. “But the question becomes, what if I want to do something more complicated?”</p>
<p><strong>Cutting through the noise</strong></p>
<p>In the team’s new paper, the researchers report developing a sort of universal controller that can translate DVS data in a meaningful way for any simple linear, robotic system. The key to the controller is that it identifies the ideal value for a parameter Singh calls “H,” or the event-threshold value, signifying the minimum change in brightness that the system can detect.</p>
<p>Setting the H value for a particular system can essentially determine that system’s visual sensitivity: A system with a low H value would be programmed to take in and interpret changes in luminosity that range from very small to relatively large, while a high H value would exclude small changes, and only “see” and react to large variations in brightness.</p>
<p>The researchers formulated an algorithm first by taking into account the possibility that a change in brightness would occur for every “event,” or pixel activated in a particular system. They also estimated the probability for “spurious events,” such as a pixel randomly misfiring, creating false noise in the data.</p>
<p>Once they derived a formula with these variables in mind, they were able to work it into a well-known algorithm known as an H-infinity robust controller, to determine the H value for that system.</p>
<p>The team’s algorithm can now be used to set a DVS camera’s sensitivity to detect the most essential changes in brightness for any given linear system, while excluding extraneous signals. The researchers performed a numerical simulation to test the algorithm, identifying an H value for a theoretical linear system, which they found was able to remain stable and carry out its function without being disrupted by extraneous pixel events.</p>
<p>“We found that this H threshold serves as a ‘sweet-spot,’ so that a system doesn’t become overwhelmed with too many events,” Singh says. He adds that the new results “unify control of many systems,” and represent a first step toward faster, more stable autonomous flying robots, such as the Robobee, developed by researchers at Harvard University.</p>
<p>“We want to break that speed limit of 20 to 30 miles per hour, and go faster without colliding,” Singh says. “The next step may be to combine DVS with a regular camera, which can tell you, based on the DVS rendering, that an object is a couch versus a car, in real time.”</p>
<p>This research was supported in part by the Singapore National Research Foundation through the SMART Future Urban Mobility project.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.234: Trik Embedded Platform, with  Roman Luchin  </title>
		<link>https://robohub.org/iasp-2016-part-2-of-3-trik-embedded-platform/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sat, 13 May 2017 21:05:09 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">http://robohub.org/iasp-2016-part-2-of-3-trik-embedded-platform/</guid>

					<description><![CDATA[Roman Luchin on robotics a development platform between Lego Mindstorms and an embedded platform. ]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2017/05/trik-1024x683.jpg"/><p><img decoding="async" class="alignnone size-full wp-image-78261" src="http://robohub.org/wp-content/uploads/2017/05/trik.jpg" alt="" width="1280" height="854" srcset="https://robohub.org/wp-content/uploads/2017/05/trik.jpg 1280w, https://robohub.org/wp-content/uploads/2017/05/trik-425x284.jpg 425w, https://robohub.org/wp-content/uploads/2017/05/trik-768x512.jpg 768w, https://robohub.org/wp-content/uploads/2017/05/trik-1024x683.jpg 1024w" sizes="(max-width: 1280px) 100vw, 1280px" /><br />
<iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/322470369&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p><span style="font-weight: 400;">In this episode, Audrow Nash and Christina Brester conduct interviews at the 2016 International Association of Science Parks and Areas of Innovation conference in Moscow, Russia. They speak with Roman Luchin, CEO of CyberTech Labs., about a robotics development platform called Trik. Trik is intended to be an intermediate step when learning about robotics between Lego Mindstorms and programming on an embedded platform. Trik allows users to program with a graphical interface by ordering blocks. These blocks contain code in several common programming languages (python, F#, Pascal, etc.) and the code can be modified directly.</span></p>
<p>This is the second of three interviews from the conference.</p>
<p><span id="more-78144"></span></p>
<p><strong>Roman Luchin</strong></p>
<p><img decoding="async" class="size-full wp-image-78146 alignleft" src="http://robohub.org/wp-content/uploads/2017/05/rluchin.jpg" alt="" width="150" height="152" srcset="https://robohub.org/wp-content/uploads/2017/05/rluchin.jpg 150w, https://robohub.org/wp-content/uploads/2017/05/rluchin-32x32.jpg 32w, https://robohub.org/wp-content/uploads/2017/05/rluchin-50x50.jpg 50w, https://robohub.org/wp-content/uploads/2017/05/rluchin-64x64.jpg 64w, https://robohub.org/wp-content/uploads/2017/05/rluchin-96x96.jpg 96w" sizes="(max-width: 150px) 100vw, 150px" />Roman Luchin is Founder of TRIK and CEO of CyberTech Labs in Russia. He started as a researcher in a laboratory of theoretical cybernetics in Saint Petersburg State University, where he developed multi-agent control systems. Faced with two challenges in Russian robotics, young professionals and outdated approaches, he decided to devote himself to the improvement of STEM education through robotics and the creation of new educational tools. As a result, he developed a unified cybernetic platform for education, research, and robotics projects called TRIK. There is a continuously growing community around TRIK, including universities, researchers, prototyping labs, and creative teams working to provide everyone with the opportunity to create modern intelligent robots that can “see”, “hear” and collaborate.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/322470369-robotspodcast-robots-iasp-2016-part-2-of-3-trik-embedded-platform.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (16.5 MB)</a></li>
<li><a href="http://www.iasp2016moscow.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">IASP 2016 conference website</a></li>
<li><a href="https://sk.ru/foundation/events/may2016/skrobotics2016/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Skolkovo&#8217;s robotics page</a></li>
<li><a href="http://www.trikset.com/index_en.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Trik&#8217;s homepage</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/322470369-robotspodcast-robots-iasp-2016-part-2-of-3-trik-embedded-platform.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Teaching robots to teach other robots</title>
		<link>https://robohub.org/teaching-robots-to-teach-other-robots/</link>
		
		<dc:creator><![CDATA[CSAIL MIT]]></dc:creator>
		<pubDate>Wed, 10 May 2017 15:02:43 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/teaching-robots-to-teach-other-robots/</guid>

					<description><![CDATA[Most robots are programmed using one of two methods: learning from demonstration, in which they watch a task being done and then replicate it, or via motion-planning techniques like optimization or sampling, which require a programmer to explicitly specify a task’s goals and constraints. Both methods have drawbacks. Robots that learn from demonstration can’t easily [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="attachment_77790" style="width: 1810px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-77790" class="size-full wp-image-77790" src="http://robohub.org/wp-content/uploads/2017/05/2DArpino-Perez-discusses-her-work-teaching-Optimus-to-pick-up-a-bottle-Jason-Dorfman-MIT-CSAIL.jpg" alt="" width="1800" height="1200" srcset="https://robohub.org/wp-content/uploads/2017/05/2DArpino-Perez-discusses-her-work-teaching-Optimus-to-pick-up-a-bottle-Jason-Dorfman-MIT-CSAIL.jpg 1800w, https://robohub.org/wp-content/uploads/2017/05/2DArpino-Perez-discusses-her-work-teaching-Optimus-to-pick-up-a-bottle-Jason-Dorfman-MIT-CSAIL-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/05/2DArpino-Perez-discusses-her-work-teaching-Optimus-to-pick-up-a-bottle-Jason-Dorfman-MIT-CSAIL-768x512.jpg 768w, https://robohub.org/wp-content/uploads/2017/05/2DArpino-Perez-discusses-her-work-teaching-Optimus-to-pick-up-a-bottle-Jason-Dorfman-MIT-CSAIL-1024x683.jpg 1024w" sizes="(max-width: 1800px) 100vw, 1800px" /><p id="caption-attachment-77790" class="wp-caption-text">D&#8217;Arpino Perez discusses her work teaching Optimus to pick up a bottle. Image: Jason Dorfman, MIT CSAIL</p></div>
<p>Most robots are programmed using one of two methods: learning from demonstration, in which they watch a task being done and then replicate it, or via motion-planning techniques like optimization or sampling, which require a programmer to explicitly specify a task’s goals and constraints.</p>
<p>Both methods have drawbacks. Robots that learn from demonstration can’t easily transfer one skill they’ve learned to another situation and remain accurate. On the other hand, motion planning systems that use sampling or optimization can adapt to these changes, but are time-consuming, since they usually have to be hand-coded by expert programmers.</p>
<p>Researchers from MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) have recently developed a system that aims to bridge the two techniques: C-LEARN, which allows non-coders to teach robots a wider range of tasks simply by providing some information about how objects are typically manipulated and then showing the robot a single demo of the task. Importantly, this enables users to teach robots skills that can be automatically transferred to other robots with different “kinematics” (ways of moving) &#8211; a key time- and cost-saving measure for companies that want a range of robots to perform similar actions.</p>
<div class="keep-aspect"><iframe title="Teaching Robots to Teach Robots" width="500" height="281" src="https://www.youtube-nocookie.com/embed/QQplTBx6rV0?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></div>
<p></p>
<p>“By combining the intuitiveness of learning from demonstration with the precision of motion-planning algorithms, this approach can help robots do new types of tasks that they haven’t been able to learn before, like multi-step assembly using both of their arms,” says Claudia Pérez-D’Arpino, a PhD student who wrote a paper on C-LEARN with MIT professor Julie Shah.</p>
<p>The team tested the system on Optimus, a new two-armed robot designed for bomb disposal that they programmed to perform tasks like opening doors, transporting objects and extracting objects from containers.</p>
<p>(The robot is made of components from multiple manufacturers, including a manipulation system by RE2, a Husky unmanned ground vehicle by Clearpath, 3-finger grippers by Robotiq and the multisense sensor from Carnegie Robotics that is used in the Atlas robot.)</p>
<p>In simulations they showed that Optimus’ learned skills could be seamlessly transferred to Atlas, <a href="http://news.mit.edu/2015/robotics-competition-algorithms-0611." target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">CSAIL’s six-foot-tall, 400-pound humanoid robot</a>.</p>
<p>The paper was recently accepted to the IEEE International Conference on Robotics and Automation (ICRA), which takes place May 29-June 3 in Singapore.</p>
<hr class="xh2  ">
<h3>How it works</h3>
<p>With C-LEARN the user first gives the robot a knowledge base of information on how to reach and grasp different objects that have different constraints. (The C in C-LEARN stands for “constraints.”) The operator then uses a 3D interface to show the robot a single demonstration of the specific task, which is represented by a sequence of relevant moments known as “keyframes.” By matching these keyframes with the knowledge base, the robot can automatically suggest motion plans for the operator to approve or edit as needed.</p>
<img decoding="async" class="alignnone size-full" src="https://j.gifs.com/0gk7RN.gif" width="480" height="270" />
<p>“This approach is actually very similar to how humans learn in terms of seeing how something’s done and connecting it to what we already know about the world,” says Pérez-D’Arpino. “We can’t magically learn from a single demonstration, so we take new information and match it to previous knowledge about our environment.”</p>
<p>One challenge was that existing constraints that could be learned from demonstrations weren’t accurate enough to enable robots to precisely manipulate objects. To overcome that, the researchers developed constraints inspired by computer-aided design (CAD) programs that can tell the robot if its hands should be parallel or perpendicular to the objects it is interacting with.</p>
<img decoding="async" class="alignnone size-full" src="https://j.gifs.com/AnGlDj.gif" width="640" height="360" />
<p>The team also showed that the robot performed significantly better in collaboration with humans. While the robot successfully executed tasks 87.5 percent of the time on its own, it did so 100 percent of the time when it had a operator that could correct minor sensory inaccuracies.</p>
<p>“Having a knowledge base is fairly common, but what’s not common is integrating it with learning from demonstration,” says Dmitry Berenson, an assistant professor of computer science at the University of Michigan who was not involved in the research. “That’s very helpful, because if you are dealing with the same objects over and over again, you don&#8217;t want to then have to start from scratch to teach the robot every new task.”</p>
<img decoding="async" class="alignnone size-full" src="https://j.gifs.com/RgqJ6w.gif" width="640" height="360" />
<p>The system is part of a larger wave of research focused on making LfD approaches more adaptive. If you’re a robot that has learned to take an object out of a tube from a demonstration, you might not be able to do it if there’s an obstacle in the way that requires you to move your arm differently. However, C-LEARN can do this, because it does not learn one specific way to perform the action.</p>
<p>“It’s good for the field that we&#8217;re moving away from directly imitating motion, towards actually trying to infer the principles behind the motion,” says Berenson. “By using these learned constraints in a motion planner, we can make systems that are far more flexible than those which just try to mimic what&#8217;s being demonstrated&#8221;</p>
<p>Shah says that advanced LfD methods could prove important in time-sensitive scenarios like bomb disposal and disaster response, where robots are currently tele-operated at the level of individual joint movements.</p>
<p>“Something as simple as picking up a box could take 20-30 minutes, which is significant for an emergency situation,” says Pérez-D’Arpino.</p>
<p>C-LEARN can’t yet handle certain advanced tasks, like avoiding collisions or planning for different step sequences for a given task. But the team is hopeful that incorporating more insights from human learning will give robots an even wider range of physical capabilities.</p>
<p>“Traditional programming of robots in real-world scenarios is difficult, tedious and requires a lot of domain knowledge,” says Shah. “It would be much more effective if we could train them more like how we train people: by giving them some basic knowledge and a single demonstration. This is an exciting step towards teaching robots to perform complex multi-arm and multi-step tasks necessary for assembly manufacturing and ship or aircraft maintenance.”</p>
<hr class="xh2  ">
<p><a href="https://drive.google.com/open?id=0B9HHfYresOgRUlpHeGlQY1U4SVE" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Click here</a> to access the full paper.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Smart Grasping System available on ROS Development Studio</title>
		<link>https://robohub.org/smart-grasping-system-available-on-ros-development-studio/</link>
		
		<dc:creator><![CDATA[Ruben Alves]]></dc:creator>
		<pubDate>Wed, 10 May 2017 08:15:54 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/smart-grasping-system-available-on-ros-development-studio/</guid>

					<description><![CDATA[Would you like to make a robot to grasp something, but you think that is impossible to you just because you can’t buy a robot arm? I’m here to tell that you can definitely achieve this without buying a real robot. Let&#8217;s see how: How is that possible? The Smart Grasping Sandbox built by Shadow [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-78051" src="http://robohub.org/wp-content/uploads/2017/05/sgsmain.png" alt="" width="657" height="485" srcset="https://robohub.org/wp-content/uploads/2017/05/sgsmain.png 657w, https://robohub.org/wp-content/uploads/2017/05/sgsmain-425x314.png 425w" sizes="(max-width: 657px) 100vw, 657px" />
<p>Would you like to make a robot to grasp something, but you think that is impossible to you just because you can’t buy a robot arm? I’m here to tell that you can definitely achieve this without buying a real robot. Let&#8217;s see how:<span id="more-78045"></span></p>
<div class="keep-aspect"><iframe title="[ROS Q&amp;A] Smart Grasping Sandbox online Testbed by Shadow Robot" width="500" height="281" src="https://www.youtube-nocookie.com/embed/uAz3oAseIjQ?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></div>
<p></p>
<hr class="xh2  ">
<h3>How is that possible?</h3>
<p>The <a href="https://medium.freecodecamp.com/an-open-sandbox-for-robot-grasping-cee467a3fabb" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Smart Grasping Sandbox</a> built by <a href="http://www.shadowrobot.com/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Shadow Robotics</a> is now available for everybody on the <a href="http://rds.theconstructsim.com/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">ROS Development Studio</a> – a system that allows you to create and test your robot programs through simulations using only a web browser.</p>
<h3>Wait, what is the Smart Grasping Sandbox?</h3>
<p>The Smart Grasping Sandbox is a public simulation for the <a href="https://www.shadowrobot.com/shadow-smart-grasping-system/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Shadow’s Smart Grasping System</a> with the<a href="https://www.universal-robots.com/products/ur10-robot/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">UR10 robot from Universal Robots</a>. It allows you to make a robot to grasp something without having to learn everything related to Machine Learning, and being available on the ROS Development Studio, it allows you to test it without the hassle of installing all the requirements.</p>
<p>As Ugo Cupcic <a href="https://medium.freecodecamp.com/an-open-sandbox-for-robot-grasping-cee467a3fabb" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">said</a>:</p>
<blockquote><p>I don’t want to have to specify every aspect of a problem — I’d rather the system learn the best way to approach a given problem itself.</p></blockquote>
<h3>Using the Development Environment for Grasping</h3>
<p>In order to user the Smart Grasping Sandbox on <a href="http://rds.theconstructsim.com/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">ROS Development Studio</a>&#8212;also known as RDS&#8212;just go to <a href="http://rds.theconstructsim.com/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">http://rds.theconstructsim.com</a> and Sign In. Once logged in, go to the Public Simulations, select the Smart Grasping Sandbox simulation and press the red <strong>Launch this simulation</strong> button.</p>
<img decoding="async" class="aligncenter size-full wp-image-78047" src="http://robohub.org/wp-content/uploads/2017/05/smart-grasping.png" alt="" width="360" height="660" srcset="https://robohub.org/wp-content/uploads/2017/05/smart-grasping.png 360w, https://robohub.org/wp-content/uploads/2017/05/smart-grasping-232x425.png 232w" sizes="(max-width: 360px) 100vw, 360px" />
<p>After pressing the <strong>Launch this simulation</strong>, a new screen will appears asking you to select the <strong>launch file</strong>. Just keep the default <strong>main.launch</strong> and press the red <strong>run</strong> button.</p>
<img decoding="async" class="aligncenter size-full wp-image-78048" src="http://robohub.org/wp-content/uploads/2017/05/select-launch.png" alt="" width="469" height="644" srcset="https://robohub.org/wp-content/uploads/2017/05/select-launch.png 469w, https://robohub.org/wp-content/uploads/2017/05/select-launch-310x425.png 310w" sizes="(max-width: 469px) 100vw, 469px" />
<p>After a few seconds, the simulation will be loaded and you will be able interact with the simulation.</p>
<p>Once the simulation is loaded, you can see the instructions about how to control it on the left side.</p>
<p>In the center you have the simulation itself, and on the right side you can see the <strong>Integrated Development Environment</strong> and the <strong>Web Shell</strong> that allows you to <strong>modify the code</strong> and send <strong>Linux</strong>commands to the simulation respectively.</p>
<p>You can modify, the simulation, the control programs or even create your own manipulation control programs, make the grasping system learn using deep learning or else. This is up to you as developer!</p>
<img decoding="async" class="aligncenter size-full wp-image-78049" src="http://robohub.org/wp-content/uploads/2017/05/shadow-robot-simulation.png" alt="" width="1364" height="678" srcset="https://robohub.org/wp-content/uploads/2017/05/shadow-robot-simulation.png 1364w, https://robohub.org/wp-content/uploads/2017/05/shadow-robot-simulation-425x211.png 425w, https://robohub.org/wp-content/uploads/2017/05/shadow-robot-simulation-768x382.png 768w, https://robohub.org/wp-content/uploads/2017/05/shadow-robot-simulation-1024x509.png 1024w" sizes="(max-width: 1364px) 100vw, 1364px" />
<p>You can also see what the robot sees using the online ROS 3D Visualizer (RViz) typing the following command on the <strong>Web Shell</strong>:</p>
<p><code>$ rosrun rviz rviz</code></p>
<p>After running <strong>Rviz</strong>, you press the red <strong>Open ROS Graphic Tools</strong> button on the bottom left side of the system and a new tab should appear with Rviz.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-78050" src="http://robohub.org/wp-content/uploads/2017/05/rviz.png" alt="" width="1149" height="712" srcset="https://robohub.org/wp-content/uploads/2017/05/rviz.png 1149w, https://robohub.org/wp-content/uploads/2017/05/rviz-425x263.png 425w, https://robohub.org/wp-content/uploads/2017/05/rviz-768x476.png 768w, https://robohub.org/wp-content/uploads/2017/05/rviz-1024x635.png 1024w" sizes="(max-width: 1149px) 100vw, 1149px" /><hr class="xh2  "></p>
<h3>Conclusion</h3>
<p>Here we have seen how to use a simulation to programme a robot to grasp something.</p>
<p>The simulation uses <em><a href="http://ros.org/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">ROS</a></em> as the middleware to control the robot.</p>
<p>If you want to learn ROS or master your ROS Skills, we recommend you to give a try to <em><a href="http://www.robotigniteacademy.com/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Robot Ignite Academy</a></em>.</p>
<p>If you are a robot builder and want to have your own simulation available for everybody on RDS, or you want to have a course specifically for your robot, contact us through the email <em><a href="mailto:info@theconstructsim.com" target="_blank" rel="noopener noreferrer">info@theconstructsim.com</a></em>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Programming your NAO robot for human interaction</title>
		<link>https://robohub.org/programming-your-nao-robot-for-human-interaction/</link>
		
		<dc:creator><![CDATA[Philip English]]></dc:creator>
		<pubDate>Tue, 09 May 2017 08:15:19 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[humanoids]]></category>
		<category><![CDATA[NAO]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://robohub.org/programming-your-nao-robot-for-human-interaction/</guid>

					<description><![CDATA[Today we are looking at how to program your NAO Robot for Human Interaction. Watch the video and follow the steps below to get interactive with your robot pal!  Create an animation of movements Right click, select “Create a new box” Select “Timeline” We want the robot to do 3 things, a five high, a [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-78026" src="http://robohub.org/wp-content/uploads/2017/05/programming-nao-human-interaction.jpg" alt="" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2017/05/programming-nao-human-interaction.jpg 900w, https://robohub.org/wp-content/uploads/2017/05/programming-nao-human-interaction-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/05/programming-nao-human-interaction-768x512.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" />
<p>Today we are looking at how to program your NAO Robot for Human Interaction. Watch the video and follow the steps below to get interactive with your robot pal!</p>
<div class="keep-aspect"><iframe title="NAO Robot Human Interaction Tutorial" width="500" height="281" src="https://www.youtube-nocookie.com/embed/fT8rNQEs-_w?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></div>
<p></p>
<ol>
<li> Create an animation of movements
<ul>
<li>Right click, select “Create a new box”</li>
<li>Select “Timeline”</li>
</ul>
</li>
</ol>
<p>We want the robot to do 3 things, a five high, a hello, and a goodbye move:</p>
<ul>
<li>On the Timeline Edit Box
<ul>
<li>Name: High Five</li>
<li>Image: Click “Edit”
<ul>
<li>On the Edit box image</li>
<li>Click “Browse” and select a file</li>
</ul>
</li>
<li>Click “OK”</li>
</ul>
</li>
</ul>
<p>Now, as you can remember, if we take it to the box, we can get access to the NAO’s Timeline. Mine now is connected to the PC. So what I’m going to do is I’m going to set some points of the NAO to do some movements. As I have said before on one of my tutorial I’m going to make it set all the joints to the whole body.</p>
<p>We want to make him look like he is doing a high five:</p>
<ul>
<li>Right click the arm
<ul>
<li>Click “Stiffen chain on/off”</li>
<li>Raise his arm up</li>
</ul>
</li>
<li>Set joints and keyframe
<ul>
<li>Select “Arms”</li>
</ul>
</li>
<li>Click “Play” on the Motion Controller</li>
</ul>
<p>That’s a quite quick high five actually. What we want to do is to actually give him a pause when he got his arm in the air. So, the way we do that is to copy and paste the keyframe.</p>
<p>Grab a few already built in animation, just to show you how much it works:</p>
<ul>
<li>Go to Motions&gt;Animations
<ul>
<li>Drag a “Hello” box to the workspace</li>
<li>Drag a “Wipe Forehead” box for a goodbye move to the workspace</li>
</ul>
</li>
</ul>
<p>We want to hear him speak, so:</p>
<ul>
<li>Go to Voice
<ul>
<li>Drag a “Speech Recognition” box to the workspace</li>
</ul>
</li>
<li>Drag a “Switch Case”
<ul>
<li>Connect the “Speech Recognition” box to the “Switch Case” box</li>
<li>On the first case, write “Hello” and connect to the “Hello” box</li>
<li>On the second case, write “High Five” and connect it to the “High Five” box</li>
<li>On the third case, write “Goodbye” and connect it to the “Wipe Forehand” box</li>
</ul>
</li>
<li>Set parameters of Speech Recognition
<ul>
<li>Word list: Hi; High Five; Goodbye;</li>
<li>Play with the threshold to see what works better</li>
<li>Click “OK”</li>
</ul>
</li>
</ul>
<p>So there we have a speech recognition, he will listen to what I am saying and then we will act a motion. Now, what we need to do is to make sure that the robot doesn’t repeat it, so you know, it doesn’t loop back. Before we do that, we are going to:</p>
<ul>
<li>Drag 3 “Say” box to the workspace so he can  speak back to us
<ul>
<li>On the “Switch case”, connect the “Hello” case on the “Say” box
<ul>
<li>Localized Text
<ul>
<li>Change the language to English(United States)</li>
<li>Write “Hi” on the textbox</li>
</ul>
</li>
</ul>
</li>
<li>Connect the “High Five” case on the “Say (1)” box
<ul>
<li>Localized Text
<ul>
<li>Change the language to English(United States)</li>
<li>Write “High Five” on the textbox</li>
</ul>
</li>
</ul>
</li>
<li>Connect the “Goodbye” case on the “Say(2)” box
<ul>
<li>Localized Text
<ul>
<li>Change the language to English(United States)</li>
<li>Write “Goodbye” on the textbox</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>So, here’s what we are saying, he recognizes it, says a word and does an animation, now what we want to do is we don’t want him to loop, as in he keeps hearing the same sound and maybe he starts to hear himself and repeat himself, so to stop that we need to connect the end of the motion boxes back to the “Speech Recognition” box. A simple output to the input speech.</p>
<p>I am going to make a little change actually, instead of “Hello”, we should put “Hi” here and I’m going to put “Hi” in there which is already done because they have to match otherwise if it doesn’t match he won’t recognize it. So if he hit “Load”</p>
<p><strong>Philip</strong>: High Five!</p>
<p><strong>Nao</strong>: High Five!</p>
<p><strong>Philip: </strong>Goodbye!</p>
<p><strong>Nao: </strong>Goodbye!</p>
<p><strong>Philip: </strong>Hi!</p>
<p><strong>Nao: </strong>Hello!</p>
<p>Brilliant! So that looks likes he’s working very well, so again if we says “Hi”, “High Five” or “Good bye” then he will greet you. If you walk in to room and you say “Hi” to a robot, obviously, he will do his animation and say a speech. Here you can use your imagination and try different things, different animations.</p>
<hr class="xh2  ">
<p><em>If you liked this article, you may also enjoy these from Robo-Phil:</em></p>
<ul>
<li><a href="http://robohub.org/python-programming-your-nao-robot/" target="_blank" rel="noopener noreferrer" data-wpel-link="internal">Python programming your NAO robot</a></li>
<li><a href="http://robohub.org/hard-at-work-a-review-of-the-laevo-exoskeleton/" target="_blank" rel="noopener noreferrer" data-wpel-link="internal">Hard at work: A review of the Laevo Exoskeleton</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" rel="noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Are gestures the future of robotic control?</title>
		<link>https://robohub.org/are-gestures-the-future-of-robotic-control/</link>
		
		<dc:creator><![CDATA[Anna Johansson]]></dc:creator>
		<pubDate>Sat, 29 Apr 2017 09:30:58 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/are-gestures-the-future-of-robotic-control/</guid>

					<description><![CDATA[A few decades ago, touchscreens were impressive, yet clunky pieces of technology reserved for applications that did little more than show off that touchscreens were possible. Today’s touchscreens are commonplace and readily accepted as an easy way to interact with an operating system; they’re accurate, support multi-touch, are comfortable to use, and can even operate [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-77379" src="http://robohub.org/wp-content/uploads/2017/04/gesture-control.png" alt="" width="900" height="578" srcset="https://robohub.org/wp-content/uploads/2017/04/gesture-control.png 900w, https://robohub.org/wp-content/uploads/2017/04/gesture-control-425x273.png 425w, https://robohub.org/wp-content/uploads/2017/04/gesture-control-768x493.png 768w" sizes="(max-width: 900px) 100vw, 900px" />
<p>A few decades ago, touchscreens were impressive, yet clunky pieces of technology reserved for applications that did little more than show off that touchscreens were possible. Today’s touchscreens are commonplace and readily accepted as an easy way to interact with an operating system; they’re accurate, support multi-touch, are comfortable to use, and can even <a href="http://www.makeuseof.com/tag/evolution-touchscreen-technology/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">operate in multiple dimensions</a> (pressing hard).</p>
<p>We may not have perfected touchscreens yet, but we’re getting close. Accordingly, engineers and researchers are already speculating about the next phase of UI development, especially for robotics control. So far, the leading candidate is gesture-based control—the use of physical gestures to relay commands.</p>
<hr class="xh2  ">
<h3>The idea</h3>
<p>The major limitation for touchscreens is the fact that they operate only in two dimensions; the third dimension introduced with force touch is extremely limited. Comparatively, hand gestures and physical movements <a href="https://www.sciencedaily.com/releases/2017/04/170404085749.htm" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">can operate in three dimensions</a>, and depending on how they’re designed, could feel more natural than swiping and tapping a smartphone screen.</p>
<p>Demand for three-dimensional gestural control is increasing with the onset of virtual reality (VR) and augmented reality (AR) technology; because the digital world we experience will be moving from two dimensions to three dimensions, the controls we use to manage those experiences will also need to change. With enough sophistication, these systems could provide better feedback to the users in control; rather than merely responding with visual feedback like movement or lights, users could feasibly be immersed with physical feedback like vibration or resistance.</p>
<hr class="xh2  ">
<h3>Where we stand</h3>
<p>Currently, one of the most advanced gestural systems is the Real-Time 3D Gesture Analysis for Natural Interaction with Smart Devices, a project headed by researchers in <a href="https://cacm.acm.org/news/215800-in-the-future-we-will-control-our-mobiles-using-gestures/fulltext" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Linnaeus University in Sweden</a>. However, simpler forms of gesture-based control are already available.</p>
<p>For example, there are projects that use <a href="http://www.instructables.com/id/Gesture-controlled-robot-using-Arduino/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Arduino to create a robot</a> that can respond to four different simple hand gestures (plus a neutral position). Of course, iPhone technology also makes use of some simple “gestures,” such as shaking the phone to undo typing or rotating the phone to experience an immersive 360-degree view of an image or video.</p>
<hr class="xh2  ">
<h3>The main obstacles</h3>
<p>There are a few obstacles preventing gestures from being solidified as the next landmark in robotics control, however:</p>
<ul>
<li><strong>Gesture complexity. </strong>The biggest obstacle described by researchers at Linnaeus University is the sheer complexity of physical gestures; to be effective, their recognition systems need to be able to gather and recognize thousands of tiny data points and interpret complex patterns to “understand” what movement is being attempted. Moreover, this big data-based interpretation needs to happen in real-time—especially for applications like live robotics control, or engagement in a VR-based video game. That demands not only an incredibly intelligent system, but a processor that can operate quickly.</li>
<li><strong>Accessibility. </strong>Gesture recognition systems would likely be developed to accommodate a “standard” human model, such as a “standard” right human hand. How would the system accommodate somebody whose hand was missing, or who is missing a few fingers? What about left-handed people? And people with <a href="http://www.mayoclinic.org/diseases-conditions/parkinsons-disease/basics/definition/con-20028488" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Parkinson’s disease</a>, or who are unable to operate their hands with precision control?</li>
<li><strong>Applications.</strong> For gestures to be accepted as a mainstream way to interact with robotics and virtual environments, robotics and virtual environments need to be available. Virtual reality (VR) technology has been advancing strongly for the past several years and is poised to take a big step forward in user adoption by 2020, but until those user adoption numbers are reliable, the demand for gestural systems is relatively low. Using hand movements and other physical gestures to control a two-dimensional screen, for example, would be largely ineffective.</li>
</ul>
<p>On paper, gestures seem like the best form of control for the digital devices, robotics, and VR systems of the future. However, there are still many obstacles to overcome before we’re ready for large-scale adoption. Fortunately, researchers are ahead of the curve, already preparing the intelligent gesture-based recognition programs we’ll need when touchscreens become obsolete.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Security for multirobot systems</title>
		<link>https://robohub.org/security-for-multirobot-systems/</link>
		
		<dc:creator><![CDATA[MIT News]]></dc:creator>
		<pubDate>Fri, 17 Mar 2017 12:30:57 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[CSAIL]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/security-for-multirobot-systems/</guid>

					<description><![CDATA[New technique could protect robot teams&#8217; communication networks from malicious hackers.]]></description>
										<content:encoded><![CDATA[<div id="attachment_74020" style="width: 649px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-74020" class="size-full wp-image-74020" src="http://robohub.org/wp-content/uploads/2017/03/MIT-Robo-Spoof-1_0.jpg" alt="" width="639" height="426" srcset="https://robohub.org/wp-content/uploads/2017/03/MIT-Robo-Spoof-1_0.jpg 639w, https://robohub.org/wp-content/uploads/2017/03/MIT-Robo-Spoof-1_0-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/MIT-Robo-Spoof-1_0-450x300.jpg 450w" sizes="(max-width: 639px) 100vw, 639px" /><p id="caption-attachment-74020" class="wp-caption-text">Researchers including MIT professor Daniela Rus (left) and research scientist Stephanie Gil (right) have developed a technique for preventing malicious hackers from commandeering robot teams’ communication networks. To verify the theoretical predictions, the researchers implemented their system using a battery of distributed Wi-Fi transmitters and an autonomous helicopter. Image: M. Scott Brauer.</p></div>
<p>Distributed <a href="http://news.mit.edu/2011/distributed-computing-0608" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">planning</a>, <a href="http://news.mit.edu/2016/human-robot-rescue-teams-0217" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">communication</a>, and <a href="http://news.mit.edu/2016/algorithm-robot-teams-moving-obstacles-0421" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">control</a> algorithms for autonomous robots make up a <a href="http://news.mit.edu/2015/algorithm-helps-robots-handle-uncertainty-0602" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">major</a> <a href="http://news.mit.edu/2014/collaborative-learning-for-robots-0625" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">area</a> of <a href="http://news.mit.edu/2011/robot-algorithm-0503" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">research</a> in computer science. But in the literature on multirobot systems, security has gotten relatively short shrift.</p>
<p>In the latest issue of the journal <em>Autonomous Robots</em>, researchers from MIT’s Computer Science and Artificial Intelligence Laboratory and their colleagues present a new technique for preventing malicious hackers from commandeering robot teams’ communication networks. The technique could provide an added layer of security in systems that encrypt communications, or an alternative in circumstances in which encryption is impractical.</p>
<p>“The robotics community has focused on making multirobot systems autonomous and increasingly more capable by developing the science of autonomy. In some sense we have not done enough about systems-level issues like cybersecurity and privacy,” says Daniela Rus, an Andrew and Erna Viterbi Professor of Electrical Engineering and Computer Science at MIT and senior author on the new paper.</p>
<p>“But when we deploy multirobot systems in real applications, we expose them to all the issues that current computer systems are exposed to,” she adds. “If you take over a computer system, you can make it release private data — and you can do a lot of other bad things. A cybersecurity attack on a robot has all the perils of attacks on computer systems, plus the robot could be controlled to take potentially damaging action in the physical world. So in some sense there is even more urgency that we think about this problem.”</p>
<hr class="xh2  ">
<p><strong>Identity theft</strong></p>
<p>Most planning algorithms in multirobot systems rely on some kind of voting procedure to determine a course of action. Each robot makes a recommendation based on its own limited, local observations, and the recommendations are aggregated to yield a final decision.</p>
<p>A natural way for a hacker to infiltrate a multirobot system would be to impersonate a large number of robots on the network and cast enough spurious votes to tip the collective decision, a technique called “spoofing.” The researchers’ new system analyzes the distinctive ways in which robots’ wireless transmissions interact with the environment, to assign each of them its own radio “fingerprint.” If the system identifies multiple votes as coming from the same transmitter, it can discount them as probably fraudulent.</p>
<p>“There are two ways to think of it,” says Stephanie Gil, a research scientist in Rus’ Distributed Robotics Lab and a co-author on the new paper. “In some cases cryptography is too difficult to implement in a decentralized form. Perhaps you just don’t have that central key authority that you can secure, and you have agents continually entering or exiting the network, so that a key-passing scheme becomes much more challenging to implement. In that case, we can still provide protection.</p>
<p>“And in case you can implement a cryptographic scheme, then if one of the agents with the key gets compromised, we can still provide  protection by mitigating and even quantifying the maximum amount of damage that can be done by the adversary.”</p>
<hr class="xh2  ">
<p><strong>Hold your ground</strong></p>
<p>In their paper, the researchers consider a problem known as “coverage,” in which robots position themselves to distribute some service across a geographic area — communication links, monitoring, or the like. In this case, each robot’s “vote” is simply its report of its position, which the other robots use to determine their own.</p>
<p>The paper includes a theoretical analysis that compares the results of a common coverage algorithm under normal circumstances and the results produced when the new system is actively thwarting a spoofing attack. Even when 75 percent of the robots in the system have been infiltrated by such an attack, the robots’ positions are within 3 centimeters of what they should be. To verify the theoretical predictions, the researchers also implemented their system using a battery of distributed Wi-Fi transmitters and an autonomous helicopter.</p>
<p>“This generalizes naturally to other types of algorithms beyond coverage,” Rus says.</p>
<p>The new system grew out of an earlier project involving Rus, Gil, Dina Katabi — who is the other Andrew and Erna Viterbi Professor of Electrical Engineering and Computer Science at MIT — and Swarun Kumar, who earned master’s and doctoral degrees at MIT before moving to Carnegie Mellon University. That project sought to use Wi-Fi signals to determine transmitters’ locations and to <a href="https://groups.csail.mit.edu/drl/wiki/images/8/88/Ijrr_2014_final.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">repair</a> <a href="http://news.mit.edu/2011/exp-ad-hoc-0310" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ad hoc</a> communication networks. On the new paper, the same quartet of researchers is joined by MIT Lincoln Laboratory’s Mark Mazumder.</p>
<p>Typically, radio-based location determination requires an array of receiving antennas. A radio signal traveling through the air reaches each of the antennas at a slightly different time, a difference that shows up in the phase of the received signals, or the alignment of the crests and troughs of their electromagnetic waves. From this phase information, it’s possible to determine the direction from which the signal arrived.</p>
<hr class="xh2  ">
<p><strong>Space vs. time</strong></p>
<p>A bank of antennas, however, is too bulky for an autonomous helicopter to ferry around. The MIT researchers found a way to make accurate location measurements using only <a href="http://groups.csail.mit.edu/drl/wiki/images/6/6a/sgil_mobicom2014.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">two antennas</a>, spaced about 8 inches apart. Those antennas must move through space in order to simulate measurements from multiple antennas. That’s a requirement that autonomous robots meet easily. In the experiments reported in the new paper, for instance, the autonomous helicopter hovered in place and rotated around its axis in order to make its measurements.</p>
<p>When a Wi-Fi transmitter broadcasts a signal, some of it travels in a direct path toward the receiver, but much of it bounces off of obstacles in the environment, arriving at the receiver from different directions. For location determination, that’s a problem, but for radio fingerprinting, it’s an advantage: The different energies of signals arriving from different directions give each transmitter a distinctive profile.</p>
<p>There’s still some room for error in the receiver’s measurements, however, so the researchers’ new system doesn’t completely ignore probably fraudulent transmissions. Instead, it discounts them in proportion to its certainty that they have the same source. The new paper’s theoretical analysis shows that, for a range of reasonable assumptions about measurement ambiguities, the system will thwart spoofing attacks without unduly punishing valid transmissions that happen to have similar fingerprints.</p>
<p>“The work has important implications, as many systems of this type are on the horizon — networked autonomous driving cars, Amazon delivery drones, et cetera,” says David Hsu, a professor of computer science at the National University of Singapore. “Security would be a major issue for such systems, even more so than today’s networked computers. This solution is creative and departs completely from traditional defense mechanisms.”</p>
<hr class="xh2  ">
<p><em>If you enjoyed this article from CSAIL, you might also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/mind-control-correcting-robot-mistakes-using-eeg-brain-signals/" target="_blank" data-wpel-link="internal">Mind control: Correcting robot mistakes using EEG brain signals</a></li>
<li><a href="http://robohub.org/mit-csails-6-foot-tall-nasa-humanoid-robot-has-landed/" target="_blank" data-wpel-link="internal">MIT CSAIL’s 6-foot-tall NASA humanoid robot has landed</a></li>
<li><a href="http://robohub.org/researchers-add-a-splash-of-human-intuition-to-planning-algorithms/" target="_blank" data-wpel-link="internal">Researchers add a splash of human intuition to planning algorithms</a></li>
<li><a href="http://robohub.org/wearable-ai-that-can-detect-the-tone-of-a-conversation/" target="_blank" data-wpel-link="internal">Wearable AI that can detect the tone of a conversation</a></li>
<li><a href="http://robohub.org/ingestible-robots-glasses-free-3-d-and-computers-that-explain-themselves/" target="_blank" data-wpel-link="internal">Ingestible robots, glasses-free 3-D, and computers that explain themselves</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a class="ext-link" title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Developing ROS programs for the Sphero robot</title>
		<link>https://robohub.org/developing-ros-programs-for-the-sphero-robot/</link>
		
		<dc:creator><![CDATA[Ricardo Téllez]]></dc:creator>
		<pubDate>Mon, 13 Mar 2017 15:30:40 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Sphero]]></category>
		<guid isPermaLink="false">http://robohub.org/developing-ros-programs-for-the-sphero-robot/</guid>

					<description><![CDATA[You probably know the Sphero robot. It is a small robot with the shape of a ball. In case that you have one, you must know that it is possible to control it using ROS, by installing in your computer the Sphero ROS packages developed by Melonee Wise and connecting to the robot&#160;using the bluetooth]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-73660" src="http://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736.jpg" alt="" width="1024" height="736" srcset="https://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736.jpg 1024w, https://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736-425x305.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736-768x552.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736-417x300.jpg 417w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>You probably know the Sphero robot. It is a small robot with the shape of a ball. In case that you have one, you must know that it is possible to control it using ROS, by installing in your computer the Sphero ROS packages developed by Melonee Wise and connecting to the robot using the bluetooth of the computer.<span id="more-73602"></span></p>
<p>Now, you can use the ROS Development Studio to create ROS control programs for that robot, testing as you go by using the integrated simulation.</p>
<p>The ROS Development Studio (RDS) provides off-the-shelf a simulation of Sphero with a maze environment. The simulation provides the same interface as the ROS module created by Melonee, so you can test your develop and test the programs on the environment, and once working properly, transfer it to the real robot.</p>
<p>We created the simulation to teach ROS to the students of the Robot Ignite Academy. They have to learn ROS enough to make the Sphero get out of the maze by using odometry and IMU.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73661" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529.png" alt="" width="1024" height="529" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529-425x220.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529-768x397.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529-500x258.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" /><hr class="xh2  "></p>
<p><strong>Using the simulation</strong></p>
<p>To use the Sphero simulation on RDS go to rds.theconstructsim.com and sign in. If you select the Public simulations, you will quickly identify the Sphero simulation.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73662" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192251.png" alt="" width="717" height="554" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192251.png 717w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192251-425x328.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192251-388x300.png 388w" sizes="(max-width: 717px) 100vw, 717px" />Press the red Play button. A new screen will appear giving you details about the simulation and asking you which launch file you want to launch. The main.launch selected by default is the correct one, so just press Run.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73663" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318.png" alt="" width="815" height="704" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318.png 815w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318-425x367.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318-768x663.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318-347x300.png 347w" sizes="(max-width: 815px) 100vw, 815px" />After a few seconds the simulation will appear together with the development environment for creating the programs for Sphero and testing them.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73664" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528.png" alt="" width="1024" height="528" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528-425x219.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528-768x396.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528-500x258.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />On the left hand side you have a notebook containing information about the robot and how to program it with ROS. This notebook contains just some examples, but it can be completed and/or modified at your will. As you can see it is an iPython notebook and follows its standard. So it is up to you to modify it, add new information or else. Remember that any change you do to the notebook will be saved in a simulation in your private area of RDS, so you can come back later and launch it with your modifications.</p>
<img decoding="async" class="aligncenter size-full wp-image-73665" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705.png" alt="" width="1024" height="705" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705-425x293.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705-768x529.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705-436x300.png 436w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>You must know that the code included in the notebook is directly executable by selecting the cell of the code (do a single click on it) and pressing the small play button at the top of the notebook. This means that, once you press that button, the code will be executed and start controlling the Sphero simulated robot for a few time-steps (remember to have the simulation activated (Play button of the simulation activated) to see the robot move).</p>
<p>On the center area, you can see the IDE. It is the development environment for developing the code. You can browse there all the packages related to the simulation or any other packages that you may create.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73666" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132.png" alt="" width="959" height="912" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132.png 959w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132-425x404.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132-768x730.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132-315x300.png 315w" sizes="(max-width: 959px) 100vw, 959px" />On the right hand side, you can see the simulation and beneath it, the shell. The simulation shows the Sphero robot as well as the environment of the maze. On the shell, you can issue commands in the computer that contains the simulation of the robot. For instance, you can use the shell to launch the keyboard controller and move the Sphero around. Try typing the following:</p>
<ul>
<li><em>$ roslaunch sphero_gazebo keyboard_teleop.launch</em></li>
</ul>
<p>Now you must be able to move the robot around the maze by pressing some keys of the keyboard (instructions provided on the screen).</p>
<img decoding="async" class="aligncenter size-full wp-image-73667" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194551.png" alt="" width="500" height="987" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194551.png 500w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194551-215x425.png 215w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194551-152x300.png 152w" sizes="(max-width: 500px) 100vw, 500px" />
<p>You can also launch there Rviz, and then watch the robot, the frames and any other additional information you may want of the robot. Type the following:</p>
<ul>
<li><em>$ rosrun rviz rviz</em></li>
</ul>
<p>Then press the Screen red icon located at the bottom-left of the screen (named the graphical tools). A new tab should appear, showing how the Rviz is loading. After a while, you can configure the Rviz to show the information you desire.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73668" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768.png" alt="" width="1024" height="768" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768-425x319.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768-768x576.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768-400x300.png 400w" sizes="(max-width: 1024px) 100vw, 1024px" />There are many ways you can configure the screen to provide more focus to what interests you the most.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73669" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527.png" alt="" width="1024" height="527" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527-425x219.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527-768x395.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527-500x257.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" /><img decoding="async" class="aligncenter size-full wp-image-73670" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531.png" alt="" width="1024" height="531" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531-425x220.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531-768x398.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531-500x259.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />To end this post, I would like to indicate that you can download the simulation to your computer at any time, by doing right-click on the directories and selecting Download. You can also clone the The Construct simulations repository to download it (among other simulations available).</p>
<hr class="xh2  ">
<p><em>If you liked this tutorial, you may also enjoy these:</em></p>
<ul>
<li><a href="http://robohub.org/ugcs-photogrammetry-technique-for-uav-land-surveying-missions/" target="_blank" data-wpel-link="internal">UgCS photogrammetry technique for UAV land surveying missions</a></li>
<li><a href="http://robohub.org/programming-for-robotics-introduction-to-ros/" target="_blank" data-wpel-link="internal">Programming for robotics: Introduction to ROS</a></li>
<li><a href="http://robohub.org/python-programming-your-nao-robot/" target="_blank" data-wpel-link="internal">Python programming your NAO robot</a></li>
<li><a href="http://robohub.org/robotics-maths-python-a-fledgling-computer-scientists-guide-to-inverse-kinematics/" target="_blank" data-wpel-link="internal">Robotics, maths, python: A fledgling computer scientist’s guide to inverse kinematics</a></li>
<li><a href="http://robohub.org/3-d-printing-hydraulically-powered-robots-no-assembly-required/" target="_blank" data-wpel-link="internal">3-D printing hydraulically-powered robots, no assembly required</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Split-second decisions: Navigating the fine line between man and machine</title>
		<link>https://robohub.org/split-second-decisions-navigating-the-fine-line-between-man-and-machine/</link>
		
		<dc:creator><![CDATA[Horizon Magazine]]></dc:creator>
		<pubDate>Mon, 13 Mar 2017 13:45:39 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[automotive]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/split-second-decisions-navigating-the-fine-line-between-man-and-machine/</guid>

					<description><![CDATA[Today’s self-driving car isn’t exactly autonomous – the driver has to be able to take over in a pinch, and therein lies the roadblock researchers are trying to overcome. Automated cars are hurtling towards us at breakneck speed, with all-electric Teslas already running limited autopilot systems on roads worldwide and Google trialling its own autonomous [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="attachment_73673" style="width: 4158px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73673" class="size-full wp-image-73673" src="http://robohub.org/wp-content/uploads/2017/03/Autonomous_driving_car_crop.jpg" alt="" width="4148" height="2044" srcset="https://robohub.org/wp-content/uploads/2017/03/Autonomous_driving_car_crop.jpg 4148w, https://robohub.org/wp-content/uploads/2017/03/Autonomous_driving_car_crop-425x209.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/Autonomous_driving_car_crop-768x378.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/Autonomous_driving_car_crop-1024x505.jpg 1024w, https://robohub.org/wp-content/uploads/2017/03/Autonomous_driving_car_crop-500x246.jpg 500w" sizes="(max-width: 4148px) 100vw, 4148px" /><p id="caption-attachment-73673" class="wp-caption-text">Level 3 automation, where the car handles all aspects of driving with the driver on standby, is being tested in Sweden. Image courtesy of Volvo cars</p></div>
<p>Today’s self-driving car isn’t exactly autonomous – the driver has to be able to take over in a pinch, and therein lies the roadblock researchers are trying to overcome. Automated cars are hurtling towards us at breakneck speed, with all-electric Teslas already running limited autopilot systems on roads worldwide and Google trialling its own autonomous pod cars.</p>
<p>However, before we can reply to emails while being driven to work, we have to have a foolproof way to determine when drivers can safely take control and when it should be left to the car.</p>
<p>‘Even in a limited number of tests, we have found that humans are not always performing as required,’ explained Dr Riender Happee, from Delft University of Technology in the Netherlands, who is coordinating the EU-funded HFAuto project to examine the problem and potential solutions.</p>
<p>‘We are close to concluding that the technology always has to be ready to resolve the situation if the driver doesn’t take back control.’</p>
<p>But in these car-to-human transitions, how can a computer decide whether it should hand back control?</p>
<p>‘Eye tracking can indicate driver state and attention,’ said Dr Happee. ‘We’re still to prove the practical usability, but if the car detects the driver is not in an adequate state, the car can stop in the safety lane instead of giving back control.’</p>
<hr class="xh2  ">
<p><strong>Next level</strong></p>
<p>It’s all a question of the level of automation. According to the scale of US-based standards organisation SAE International, Level 1 automation already exists in the form of automated braking and self-parking.</p>
<p>Level 4 &amp; 5 automation, where you punch in the destination and sit back for a nap, is still on the horizon.</p>
<p>But we’ll soon reach Level 3 automation, where drivers can hand over control in situations like motorway driving and let their attention wander, as long as they can safely intervene when the car asks them to.</p>
<p>HFAuto’s 13 PhD students have been researching this human-machine transition challenge since 2013.</p>
<p>Backed with Marie Skłodowska-Curie action funding, the students have travelled Europe for secondments, to examine carmakers’ latest prototypes, and to carry out simulator and on-road tests of transition takeovers.</p>
<p>Alongside further trials of their transition interface, HFAuto partner Volvo has already started testing 100 highly automated Level 3 cars on Swedish public roads.</p>
<p>Another European research group is approaching the problem with a self-driving system that uses external sensors together with cameras inside the cab to monitor the driver’s attentiveness and actions.</p>
<hr class="xh2  ">
<p><strong>Blink</strong></p>
<p>‘Looking at what’s happening in the scene outside of the cars is nothing without the perspective of what’s happening inside the car,’ explained Dr Oihana Otaegui, head of the Vicomtech-IK4 applied research centre in San Sebastián, Spain.</p>
<p>She coordinates the work as part of the EU-funded VI-DAS project. The idea is to avoid high-risk transitions by monitoring factors like a driver’s gaze, blinking frequency and head pose — and combining this with real-time on-road factors to calculate how much time a driver needs to take the wheel.</p>
<p>Its self-driving system uses external cameras as affordable sensors, collecting data for the underlying artificial intelligence system, which tries to understand road situations like a human would.</p>
<p>VI-DAS is also studying real accidents to discern challenging situations where humans fail and using this to help train the system to detect and avoid such situations.</p>
<p>The group aims to have its first interface prototype working by September, with iterated prototypes appearing at the end of 2018 and 2019.</p>
<p>Dr Otaegui says the system could have potential security sector uses given its focus on creating artificial intelligence perception in any given environment, and hopes it could lead to fully automated driving.</p>
<p>‘It could even go down the path of Levels 4 and 5, depending on how well we can teach our system to react — and it will indeed be improving all the time we are working on this automation.’</p>
<p>The question of transitions is so important because it has an impact on liability – who is responsible in the case of an accident.</p>
<p>It’s clear that Level 2 drivers can be held liable if they cause a fender bender, while carmakers will take the rap once Level 4 is deployed. However, with Level 3 transitions, liability remains a burning question.</p>
<p>HFAuto’s Dr Happee believes the solution lies in specialist insurance options that will emerge.</p>
<p>‘Insurance solutions are expected (to emerge) where a car can be bought with risk insurance covering your own errors, and those which can be blamed on carmakers,’ he said.</p>
<p>Yet it goes further than that. Should a car choose to hit pedestrians in the road, or swerve into the path of an oncoming lorry, killing its occupants?</p>
<p>‘One thing coming out of our discussions is that no one would buy a car which will sacrifice its owner for the lives of others,’ said Dr Happee. ‘So it comes down to making these as safe as possible.’</p>
<hr class="xh2  ">
<p><strong>The five levels of automation:</strong></p>
<ol>
<li>Driver Assistance: the car can either steer or regulate speed on its own.</li>
<li>Partial Automation: the vehicle can handle both steering and speed selection on its own in specific controlled situations, such as on a motorway.</li>
<li>Conditional Automation: the vehicle can be instructed to handle all aspects of driving, but the driver needs to be on standby to intervene if needed.</li>
<li>High Automation: the vehicle can be instructed to handle all aspects of driving, even if the driver is not available to intervene.</li>
<li>Level 5 – Full Automation: the vehicle handles all aspects of driving, all the time.</li>
</ol>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UgCS photogrammetry technique for UAV land surveying missions</title>
		<link>https://robohub.org/ugcs-photogrammetry-technique-for-uav-land-surveying-missions/</link>
		
		<dc:creator><![CDATA[SPH Engineering]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 14:00:00 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[environment & agriculture]]></category>
		<category><![CDATA[exploration & mining]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[mapping & surveillance]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[surveying]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://robohub.org/ugcs-photogrammetry-technique-for-uav-land-surveying-missions/</guid>

					<description><![CDATA[&#160; UgCS is easy-to-use software for planning and flying UAV drone-survey missions. It supports almost any UAV platform, providing convenient tools for areal and linear surveys and enabling direct drone control. What&#8217;s more, UgCS enables professional land survey mission planning using photogrammetry techniques. How to plan photogrammetry mission with UgCS Standard land surveying photogrammetry mission planning [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<div id="attachment_73423" style="width: 860px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-73423" class="size-full wp-image-73423" src="http://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /></a><p id="caption-attachment-73423" class="wp-caption-text">Figure 15: Adding 40m overshot to both ends of each survey line</p></div>
<p><a href="https://www.ugcs.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">UgCS</a> is easy-to-use software for planning and flying UAV drone-survey missions. It supports almost any UAV platform, providing convenient tools for areal and linear surveys and enabling direct drone control. What&#8217;s more, UgCS enables professional land survey mission planning using photogrammetry techniques.</p>
<p><strong>How to plan photogrammetry mission with UgCS</strong></p>
<p>Standard land surveying photogrammetry mission planning with UgCS can be divided into following steps :</p>
<ol>
<li>Obtain input data</li>
<li>Plan mission</li>
<li>Deploy ground control points</li>
<li>Fly mission</li>
<li>Image geotagging</li>
<li>Data processing</li>
<li>Map import to UgCS (optional)</li>
</ol>
<p><a href="https://www.youtube.com/watch?v=SalCQoG6WUw&#038;feature=youtu.be" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">https://www.youtube.com/watch?v=SalCQoG6WUw&amp;feature=youtu.be</a></p>
<hr class="xh2  ">
<p><strong>Step one: Obtain input data</strong></p>
<p>Firstly, to reach the desired result, input settings have to be defined:</p>
<ul class="txt">
<li>Required GSD (ground sampling distance &#8211; size of single pixel on ground),</li>
<li>Survey area boundaries,</li>
<li>Required forward and side overlap.</li>
</ul>
<p>GSD and area boundaries are usually defined by the customer’s requirements for output material parameters, for example by scale and resolution of digital map. Overlap should be chosen according to specific conditions of surveying area and requirements of data processing software.</p>
<p>Each data processing software (e.g., Pix4D, Agisoft Photoscan, Dronedeploy, Acute 3d) has specific requirements for side and forward overlaps for different surfaces. To choose correct values, please refer to documentation of chosen software. In general, 75% forward and 60% side overlap will be a good choice. Overlapping should be increased for areas with small amount of visual cues, for example for deserts or forests.</p>
<p>Often, aerial photogrammetry beginners are excited about the option to produce digital maps with extremely high resolution (1-2cm/pixel), and to use very small GSD for mission planning. This is very bad practice. Small GSD will result in longer flight time, hundreds of photos for each acre, tens of hours of processing and heavy output files. GSD should be set according to the output requirements of the digital map.</p>
<p>Other limitations can occur. For example, GSD of 10cm/pixel is required, but designed to use a Sony A6000 camera. Based on mentioned GSD and camera’s parameters, the flight altitude would be set to 510 meters. In most countries, maximum allowed altitude of UAV&#8217;s (without special permission) is limited to 120m/400ft AGL (above ground). Taking into account the maximum allowed altitude, the maximum possible GSD in this case could be no more than 2.3cm.</p>
<hr class="xh2  ">
<p><strong>Step two: Plan your mission</strong></p>
<p>Mission planning consists of two stages:</p>
<ul class="txt">
<li>Initial planning,</li>
<li>Route optimisation.</li>
</ul>
<p><em>-Initial planning:</em></p>
<p>The first step is to set surveying area using UgCS Photogrammetry tool. Area can be set using visual cues on underlying map or using exact coordinates of edges. The result &#8211; survey area is marked with yellow boundaries (Figure 1).</p>
<div id="attachment_73401" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73401" class="size-full wp-image-73401" src="http://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73401" class="wp-caption-text">Figure 1: Setting the survey area</p></div>
<p>The next step is to set GSD and overlapping for the camera in Photogrammetry tool&#8217;s settings window (Figure 2).</p>
<div id="attachment_73402" style="width: 290px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73402" class="size-full wp-image-73402" src="http://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera.png" alt="" width="280" height="280" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera.png 280w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-220x220.png 220w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-32x32.png 32w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-50x50.png 50w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-64x64.png 64w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-96x96.png 96w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-128x128.png 128w" sizes="(max-width: 280px) 100vw, 280px" /><p id="caption-attachment-73402" class="wp-caption-text">Figure 2: Setting camera&#8217;s Ground Sampling Distance and overlapping</p></div>
<p>To take photos in Photogrammetry tool&#8217;s setting window, define the control action of the camera (Figure 3). Set camera by distance triggering action with default values.</p>
<div id="attachment_73403" style="width: 339px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73403" class="size-full wp-image-73403" src="http://robohub.org/wp-content/uploads/2017/03/Fig3_camera_control_action.png" alt="" width="329" height="234" /><p id="caption-attachment-73403" class="wp-caption-text">Figure 3: Setting camera&#8217;s control action</p></div>
<p>At this point, initial route planning is completed. UgCS will automatically calculate photogrammetry route (see Figure 4).</p>
<div id="attachment_73404" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73404" class="size-full wp-image-73404" src="http://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73404" class="wp-caption-text">Figure 4: Calculated photogrammetry survey route before optimisation</p></div>
<p><em>-Route optimisation</em></p>
<p>To optimise the route, it&#8217;s calculated parameters should be known: altitude, estimated flight time, number of shots, etc.</p>
<p>Part of the route&#8217;s calculated information can be found in the elevation profile window. To access the elevation profile window (if it is not visible on screen) click the parameters icon on the route card (lower-right corner, see Figure 5), and from the drop-down menu select show elevation:</p>
<div id="attachment_73405" style="width: 281px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73405" class="size-full wp-image-73405" src="http://robohub.org/wp-content/uploads/2017/03/Fig5_parameters.png" alt="" width="271" height="178" /><p id="caption-attachment-73405" class="wp-caption-text">Figure 5: Accessing elevation window from Route cards Parameters settings</p></div>
<p>The elevation profile window will present an estimated route length, duration, waypoint count and min/max altitude data:</p>
<div id="attachment_73408" style="width: 665px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73408" class="size-full wp-image-73408" src="http://robohub.org/wp-content/uploads/2017/03/Fig6_elevation_profile_parameters.png" alt="" width="655" height="254" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig6_elevation_profile_parameters.png 655w, https://robohub.org/wp-content/uploads/2017/03/Fig6_elevation_profile_parameters-425x165.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig6_elevation_profile_parameters-500x194.png 500w" sizes="(max-width: 655px) 100vw, 655px" /><p id="caption-attachment-73408" class="wp-caption-text">Figure 6: Route values in elevation profile window</p></div>
<p>To get other calculated values, open route log by clicking on route status indicator: the green check-mark (upper-right corner, see Figure 7) of the route card:</p>
<div id="attachment_73409" style="width: 731px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73409" class="size-full wp-image-73409" src="http://robohub.org/wp-content/uploads/2017/03/Fig7_route_values-1.png" alt="" width="721" height="293" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig7_route_values-1.png 721w, https://robohub.org/wp-content/uploads/2017/03/Fig7_route_values-1-425x173.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig7_route_values-1-500x203.png 500w" sizes="(max-width: 721px) 100vw, 721px" /><p id="caption-attachment-73409" class="wp-caption-text">Figure 7: Route card and status indicator, Route log</p></div>
<p>Using route parameters, it can be optimised to be more efficient and safe.</p>
<p><em>-Survey line direction</em></p>
<p>By default, UgCS will trace survey lines from south to north. But, in most cases, it will be more optimal to fly parallel to the longest boundary line of the survey area. To change survey line direction, edit direction angle field in the photogrammetry tool. In the example, by changing angle to 135 degrees, the number of passes is reduced from five (Figure 4) to four (Figure 8) and route length is 1km instead of 1.3km.</p>
<div id="attachment_73410" style="width: 737px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73410" class="size-full wp-image-73410" src="http://robohub.org/wp-content/uploads/2017/03/Fig8_optimized_route_passes.png" alt="" width="727" height="490" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig8_optimized_route_passes.png 727w, https://robohub.org/wp-content/uploads/2017/03/Fig8_optimized_route_passes-425x286.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig8_optimized_route_passes-445x300.png 445w" sizes="(max-width: 727px) 100vw, 727px" /><p id="caption-attachment-73410" class="wp-caption-text">Figure 8: Changed survey line angle to be parallel to longest boundary</p></div>
<p><em>-Altitude type</em></p>
<p>UgCS Photogrammetry tool has the option to define how to trace the route according to altitude, with constant altitude above ground (AGL) or above mean sea level (AMSL). Please refer to your data processing software requirements as to which altitude tracking method it recommend.</p>
<p>In the UgCS team&#8217;s experience, the choice of altitude type depends on desired result. For orthophotomap (standard aerial land survey output format) it is better to choose AGL to ensure constant GSD for the entire map. If the aim is to produce DEM or 3D reconstruction, use AMSL so the data processing software has more data to correctly determine ground elevation by photos in order to provide more qualitative output.</p>
<div id="attachment_73411" style="width: 663px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73411" class="size-full wp-image-73411" src="http://robohub.org/wp-content/uploads/2017/03/Fig9_altitude_type_AMSL.png" alt="" width="653" height="254" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig9_altitude_type_AMSL.png 653w, https://robohub.org/wp-content/uploads/2017/03/Fig9_altitude_type_AMSL-425x165.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig9_altitude_type_AMSL-500x194.png 500w" sizes="(max-width: 653px) 100vw, 653px" /><p id="caption-attachment-73411" class="wp-caption-text">Figure 9: Elevation profile with constant altitude above mean sea level (AMSL)</p></div>
<p>In this case, UgCS will calculate flight altitude based on the lowest point of the survey area.</p>
<p>If AGL is selected in photogrammetry tool&#8217;s settings, UgCS will calculate the altitude for each waypoint. But in this case, terrain following will be rough if no “additional waypoints” are added (see Figure 10).</p>
<div id="attachment_73412" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73412" class="size-full wp-image-73412" src="http://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL.png" alt="" width="850" height="624" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL-425x312.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL-768x564.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL-409x300.png 409w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73412" class="wp-caption-text">Figure 10: Elevation profile with AGL without additional waypoints</p></div>
<p>Therefore, if AGL is used, add some “additional waypoints” flags and UgCS will calculate a flight plan with elevation profile accordingly (see Figure 11).</p>
<div id="attachment_73413" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73413" class="size-full wp-image-73413" src="http://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints.png" alt="" width="850" height="612" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints-425x306.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints-768x553.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints-417x300.png 417w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73413" class="wp-caption-text">Figure 11: Elevation profile with AGL with additional waypoints</p></div>
<p><em>-Speed</em></p>
<p>In general, if flight speed is increased it will minimise flight time. But high speed in combination with large camera exposure can result in blurred images. In most cases 10m/s is the best choice.</p>
<p><em>-Camera control method</em></p>
<p>UgCS supports 3 camera control methods (actions):</p>
<ol>
<li>Make a shot (trigger camera) in waypoint,</li>
<li>Make shot every N seconds,</li>
<li>Make shot every N meters.</li>
</ol>
<p>Not all autopilots support all 3 camera control options. For example (quite old) DJI A2 does support all three options, but newer (starting from Phantom 3 and up to M600) cameras support only triggering in waypoints and by time. DJI promised to implement triggering by distance, but it’s not available yet.</p>
<p>Here are some benefits and drawbacks for all three methods:</p>
<div id="attachment_73416" style="width: 832px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73416" class="size-full wp-image-73416" src="http://robohub.org/wp-content/uploads/2017/03/table.jpg" alt="" width="822" height="464" srcset="https://robohub.org/wp-content/uploads/2017/03/table.jpg 822w, https://robohub.org/wp-content/uploads/2017/03/table-425x240.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/table-768x434.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/table-175x100.jpg 175w, https://robohub.org/wp-content/uploads/2017/03/table-500x282.jpg 500w" sizes="(max-width: 822px) 100vw, 822px" /><p id="caption-attachment-73416" class="wp-caption-text">Table 1: Benefits and Drawback for camera triggering methods</p></div>
<p>In conclusion:</p>
<ul class="txt">
<li>Trigger in waypoints should be preferred when possible</li>
<li>Trigger by time should be used only if no other method is possible</li>
<li>Trigger by distance should be used when triggering in waypoints is not possible to use</li>
</ul>
<p>To select triggering method in UgCS Photogrammetry tool accordingly, use one of three available icons:</p>
<ul class="txt">
<li>Set camera mode</li>
<li>Set camera by time</li>
<li>Set camera by distance</li>
</ul>
<p><em>-Glibal control</em></p>
<p>Drones, e.g., DJI Phantom 3, Phantom 4, Inspire, M100 or M600 with integrated gimbal, have the option to control camera position as part of an automatic route plan.</p>
<p>It is advisable to set camera to nadir position in the first waypoint, and in horizontal position before landing to prevent lenses from potential damage.</p>
<p>To set camera position, select the waypoint preceding the photogrammetry area and click set camera attitude/zoom (Figure 12) and enter &#8220;90&#8221; in the &#8220;Tilt&#8221; field (Figure 13).</p>
<div id="attachment_73418" style="width: 346px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73418" class="size-full wp-image-73418" src="http://robohub.org/wp-content/uploads/2017/03/Fig12_Gimbal_control_set_camera.png" alt="" width="336" height="314" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig12_Gimbal_control_set_camera.png 336w, https://robohub.org/wp-content/uploads/2017/03/Fig12_Gimbal_control_set_camera-321x300.png 321w" sizes="(max-width: 336px) 100vw, 336px" /><p id="caption-attachment-73418" class="wp-caption-text">Figure 12: Setting camera attitude</p></div>
<div id="attachment_73420" style="width: 299px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73420" class="size-full wp-image-73420" src="http://robohub.org/wp-content/uploads/2017/03/Fig13_Gimbal_control_Tilt.png" alt="" width="289" height="438" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig13_Gimbal_control_Tilt.png 289w, https://robohub.org/wp-content/uploads/2017/03/Fig13_Gimbal_control_Tilt-280x425.png 280w, https://robohub.org/wp-content/uploads/2017/03/Fig13_Gimbal_control_Tilt-198x300.png 198w" sizes="(max-width: 289px) 100vw, 289px" /><p id="caption-attachment-73420" class="wp-caption-text">Figure 13: Setting camera position</p></div>
<p>As described previously, this waypoint should be a Stop&amp;Turn type, otherwise the drone could skip this action.</p>
<p>To set camera to horizontal position, select last waypoint of survey route and click set camera attitude/zoom and enter &#8220;0&#8221; in the &#8220;Tilt&#8221; field.</p>
<p><em>-Turn types</em></p>
<p>Most autopilots or multirotor drones support different turn types in waypoints. Most popular DJI drones have three turn-types:</p>
<ul class="txt">
<li>Stop and Turn: drone flies to the fixed point accurately, stays at that fixed point and then flies to next fixed point.</li>
<li>Bank Turn: the drone would fly with constant speed from one point to another without stopping.</li>
<li>Adaptive Bank Turn: It is almost the same performance like Bank Turn mode (Figure 13), but the real flight routine will be more accurately than Bank Turn.</li>
</ul>
<p>It is advisable not to use Bank Turn for photogrammetry missions. Drone interprets Bank Turns as “recommendation destination waypoint”. The drone will fly towards this direction but will almost never pass through the waypoint. Because drone will not pass the waypoint, no action will be executed, meaning the camera will not be triggered, etc.</p>
<p>Adaptive Bank Turn should be used with caution because a drone can miss waypoints and, again, no camera triggering will be initiated.</p>
<div id="attachment_73422" style="width: 410px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73422" class="size-full wp-image-73422" src="http://robohub.org/wp-content/uploads/2017/03/Fig14_dji_turn_types.png" alt="" width="400" height="189" /><p id="caption-attachment-73422" class="wp-caption-text">Figure 14: Illustration of typical DJI drone trajectories for Bank Turn and Adaptive Bank Turn types</p></div>
<p>Sometimes, adaptive bank turn type has to be used in order to have shorter flight time compared to stop and turn. When using adaptive bank turns, it is recommended to use overshot (see below) for the photogrammetry area.</p>
<p><em>-Overshot</em></p>
<p>Initially overshot was implemented for fixed wing (airplane) drones in order to have enough space for manoeuvring a U-turn.</p>
<p>Overshot can be set in photogrammetry tool to add an extra segment to both ends of each survey line.</p>
<div id="attachment_73423-2" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73423-2" class="size-full wp-image-73423" src="http://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73423-2" class="wp-caption-text">Figure 15: Adding 40m overshot to both ends of each survey line</p></div>
<p>In the example (Figure 15) can be seen that UgCS added 40m additional segments to both ends of each survey line (comparing to Figure 8).</p>
<p>Adding overshot is useful for copter-UAVs in two situations:</p>
<ol>
<li>When Adaptive Bank Turns are used (or similar method for non-DJI drones), adding overshot will increase the chance that drone will precisely enter survey line and camera control action will be triggered. UgCS Team recommends to specify overshot that is approximately equal to distance between the parallel survey lines.</li>
<li>When Stop and Turn type is in use in combination with action to trigger camera in waypoints, there is a possibility that before making the shot, drone will start rotation to next waypoint &#8211; it can result in having photos with wrong orientation or blurred. To avoid that, shorter overshot has to be set, for example 5m. Don’t specify too short value (&lt; 3m) because some drones could ignore waypoints, that are too close.</li>
</ol>
<div id="attachment_73425" style="width: 1210px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73425" class="size-full wp-image-73425" src="http://robohub.org/wp-content/uploads/2017/03/Fig16_speed2.jpg" alt="" width="1200" height="675" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2.jpg 1200w, https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2-425x239.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2-768x432.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2-1024x576.jpg 1024w, https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2-500x281.jpg 500w" sizes="(max-width: 1200px) 100vw, 1200px" /><p id="caption-attachment-73425" class="wp-caption-text">Figure 16: Example of blurred image taken by drone in rotation to next waypoint</p></div>
<p><em>-Takeoff point</em></p>
<p>It is important to <strong><em>check the takeoff area</em></strong> at site before flying any mission! To better explain best practice on how to set takeoff point, first discuss an example of how it should not be done. Supposing that the takeoff point in our example mission (Figure 17) would be from the point marked with the airplane-icon, and drone pilot would upload the route on the ground with set automatic mission for automatic take-off.</p>
<div id="attachment_73426" style="width: 655px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73426" class="size-full wp-image-73426" src="http://robohub.org/wp-content/uploads/2017/03/Fig17_take_off.png" alt="" width="645" height="434" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig17_take_off.png 645w, https://robohub.org/wp-content/uploads/2017/03/Fig17_take_off-425x286.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig17_take_off-446x300.png 446w" sizes="(max-width: 645px) 100vw, 645px" /><p id="caption-attachment-73426" class="wp-caption-text">Figure 17: Take-off point example</p></div>
<p>Most drones in automatic takeoff mode would climb to low altitude about 3-10meters and then fly straight towards the first waypoint. Other drones would fly towards first waypoint straight from ground. Looking closely at the example map (Figure 17), some trees between the takeoff point and the first waypoint can be noticed. In this example, the drone more likely will not reach a safe altitude and will hit the trees.</p>
<p>Not only the surroundings can affect takeoff planning. Drone manufacturers can change drones elevation behavior in drone firmware, therefore after firmware updates it is recommended that you check drones automatic takeoff mode.</p>
<p>Also, a very important consideration is that most small UAVs use relative altitude for mission planing. Altitude counted relatively according to first waypoint is a second reason why an actual takeoff point should be near the first waypoint, and on the same terrain level.</p>
<p>UgCS Team recommends placing the first waypoint as close as possible to actual takeoff point and specifying a safe takeoff altitude (≈30m in most situations will be above any trees, see Figure 18). This is the only method that warrants safe takeoff for any mission. It also protects from any weird drone behaviour and unpredictable firmware updates, etc.</p>
<div id="attachment_73427" style="width: 997px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73427" class="size-full wp-image-73427" src="http://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid.png" alt="" width="987" height="398" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid.png 987w, https://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid-425x171.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid-768x310.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid-500x202.png 500w" sizes="(max-width: 987px) 100vw, 987px" /><p id="caption-attachment-73427" class="wp-caption-text">Figure 18: Route with safe take-off</p></div>
<p><em>-Entry point to the survey grid</em></p>
<p>In the previous example, (see Figure 18), it can be noticed, that after adding the takeoff point, the route&#8217;s survey grid entry point was changed. This is because if additional waypoint is added subsequently to the photogrammetry area, UgCS will plan to fly the survey grid starting from nearest corner to the previous waypoint.</p>
<p>To change the entry point to survey grid, set additional waypoint close to the desired starting corner (see Figure 19).</p>
<div id="attachment_73428" style="width: 930px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73428" class="size-full wp-image-73428" src="http://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid.png" alt="" width="920" height="409" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid.png 920w, https://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid-425x189.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid-768x341.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid-500x222.png 500w" sizes="(max-width: 920px) 100vw, 920px" /><p id="caption-attachment-73428" class="wp-caption-text">Figure 19: Changing survey grid entry point by adding additional waypoint</p></div>
<p><em>-Landing point</em></p>
<p>If no landing point will be added outside the photogrammetry area after the survey mission, the drone will fly and hover in the last waypoint. There are two options for landing:</p>
<ol>
<li>Take manual control over the drone and fly to landing point manually,</li>
<li>Activate the Return Home command in UgCS or from Remote Controller (RC).</li>
</ol>
<p>In situations when the radio link with the drone is lost, for example if the survey area is large or there are problems with the remote controller, depending on the drone and it’s settings, one of these actions can occur:</p>
<ul>
<li>Drone will return to home location automatically if lost radio link with ground station,</li>
<li>Drone will fly to last waypoint of survey area and hover as long as battery capacity will enable that, then: drone will perform emergency landing, or it will try to fly to home location.</li>
</ul>
<p>The recommendation is to add an explicit landing points to the route in order to avoid relying on unpredictable drone behavior or settings.</p>
<p>If the drone doesn’t support automatic landing, or the pilot prefers to land manually, place the route’s last waypoint over the planned landing point with an altitude for comfortable manual drone descending and landing above any obstacles in the surrounding area. In general 30m is best choice.</p>
<p><em>-Action execution</em></p>
<p>Photogrammetry tool has a <i>magic</i> parameter “Action Execution” with three possible values:</p>
<ul class="txt">
<li>Every point</li>
<li>At start</li>
<li>Forward passes</li>
</ul>
<p>This parameter defines how and where camera actions specified for photogrammetry tool will be executed.</p>
<p>The most useful option for photogrammetry/survey missions is to set forward passes, the drone will make photos only on survey lines, but will not make excess photos on perpendicular lines.</p>
<p><em>-Complex survey areas</em></p>
<p>UgCS enables photogrammetry/survey mission planning for irregular areas, having functionality to combine any number of photogrammetry areas in one route, avoiding splitting the area in separate routes.</p>
<p>For example, if a mission has to be planned for two fields connected in a T-shape, and if these two fields are marked as one photogrammetry area, the whole route will not be optimal, regardless any direction of survey lines.</p>
<div id="attachment_73431" style="width: 782px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73431" class="size-full wp-image-73431" src="http://robohub.org/wp-content/uploads/2017/03/fig20.png" alt="" width="772" height="569" srcset="https://robohub.org/wp-content/uploads/2017/03/fig20.png 772w, https://robohub.org/wp-content/uploads/2017/03/fig20-425x313.png 425w, https://robohub.org/wp-content/uploads/2017/03/fig20-768x566.png 768w, https://robohub.org/wp-content/uploads/2017/03/fig20-407x300.png 407w" sizes="(max-width: 772px) 100vw, 772px" /><p id="caption-attachment-73431" class="wp-caption-text">Figure 20: Complex survey area before optimisation</p></div>
<p>If the survey area is marked as two photogrammetry areas within one route, survey lines for each area can be optimised individually (see Figure 21).</p>
<div id="attachment_73434" style="width: 736px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73434" class="size-full wp-image-73434" src="http://robohub.org/wp-content/uploads/2017/03/Fig21_complex_survey_area_combined.png" alt="" width="726" height="597" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig21_complex_survey_area_combined.png 726w, https://robohub.org/wp-content/uploads/2017/03/Fig21_complex_survey_area_combined-425x349.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig21_complex_survey_area_combined-365x300.png 365w" sizes="(max-width: 726px) 100vw, 726px" /><p id="caption-attachment-73434" class="wp-caption-text">Figure 21: Optimised survey flight passes for each part of a complex photogrammetry area</p></div>
<hr class="xh2  ">
<p><strong>Step three: deploy ground control points</strong></p>
<p>Ground control points are mandatory if the survey output map has to be precisely aligned to coordinates on Earth.</p>
<p>There are lots of discussions about the necessity of ground control points in cases when a drone is equipped with Real Time Kinematics (RTK) GPS receivers with centimeter-level accuracy. This is useful, but the drone coordinates are not in themselves sufficient because, for precise map aligning, image center coordinates are necessary.</p>
<p>Data processing softwares like Agisoft Photoscan, Dronedeplay, Pix4d, Icarus OneButton and others will produce very accurate maps using geotagged images, but the real precision of the map will not be known without ground control points.</p>
<p>Conclusion: ground control points have to be used to create survey-grade result. For a map with approximate precision, it is sufficient to rely just on RTK GPS and the capabilities of data processing software.</p>
<hr class="xh2  ">
<p><strong>Step four: fly your mission</strong></p>
<p>For carefully planned missions, flying it is the most straightforward step. Mission execution differs according to the type of UAV and equipment used, therefore it will not be described in detail in this article (please refer to equipment’s and UgCS documentation).</p>
<p>Important issues before flying:</p>
<ul>
<li>In most countries there are strict regulations for UAV usage. Always comply with the regulations! Usually these rules can be found on web-site of local aviation authority.</li>
<li>In some countries special permission for any kind of aerial photo/video shooting is needed. Please check local regulations.</li>
<li>In most cases missions are planned before arriving to flying location (e.g., in office, at home) using satellite imaginary from Google maps, Bing, etc. Before flying always check actual circumstances at the location. There could be a need to adjust take-off/landing points, for example, to avoid tall obstacles (e.g., trees, masts, power lines) in your survey area.</li>
</ul>
<hr class="xh2  ">
<p><strong>Step five: image geotagging</strong></p>
<p>Image geotagging is optional if ground control points were used, but almost any data processing software will require less time to process geotagged images.</p>
<p>Some of the latest and professional drones with integrated cameras can geotag images automatically during flight. In other cases images can be geotagged in UgCS after flight.</p>
<p>Very important: UgCS uses the telemetry log from drone, that is received via radio channel, to extract the drone’s altitude for any given moment (when pictures were taken). To geotag pictures using UgCS, assure robust telemetry reception during flight.</p>
<p>For detailed information how to geotag images using UgCS refer to UgCS User Manual.</p>
<hr class="xh2  ">
<p><strong>Step six: data processing</strong></p>
<p>For data processing, use third party software or services available on the market.</p>
<p>From UgCS Team experience, the most powerful and flexible software is Agisoft Photoscan (<a href="http://www.agisoft.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://www.agisoft.com/</a>), but sometimes too much user input is required to get necessary results. The most uncomplicated solution for users is online service Dronedeploy (<a href="https://www.dronedeploy.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://www.dronedeploy.com/</a>). All other software packages and services will fit somewhere between these two in terms of complexity and power.</p>
<hr class="xh2  ">
<p><strong>Step seven (optional): import created map to UgCS</strong></p>
<p>Should the need arise for the mission to be repeated in the future, UgCS enables importing the GeoTiff file as a map layer and using it for mission planning. More detailed instructions can be found in UgCS User Manual. See the result of an imported map created using UgCS photogrammetry tool imported as GeoTiff file in Figure 22.</p>
<div id="attachment_73436" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73436" class="size-full wp-image-73436" src="http://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73436" class="wp-caption-text">Figure 22: Imported GeoTiff map as layer. The map is output of a Photogrammetry survey mission panned with UgCS</p></div>
<p>Visit the <a href="https://www.ugcs.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">UgCS homepage</a></p>
<p>Download this tutorial as a <a href="https://www.ugcs.com/files/photogrammetry_tool/UgCS-for_Land_surveying-with-photogrammetry.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">PDF</a></p>
<hr class="xh2  ">
<p><em>If you liked this tutorial, you may also enjoy these:</em></p>
<ul>
<li><a href="http://robohub.org/programming-for-robotics-introduction-to-ros/" target="_blank" data-wpel-link="internal">Programming for robotics: Introduction to ROS</a></li>
<li><a href="http://robohub.org/python-programming-your-nao-robot/" target="_blank" data-wpel-link="internal">Python programming your NAO robot</a></li>
<li><a href="http://robohub.org/robotics-maths-python-a-fledgling-computer-scientists-guide-to-inverse-kinematics/" target="_blank" data-wpel-link="internal">Robotics, maths, python: A fledgling computer scientist’s guide to inverse kinematics</a></li>
<li><a href="http://robohub.org/adjust-how-you-learn-and-quickly-pick-up-robotics-programming/" target="_blank" data-wpel-link="internal">Adjust how you learn and quickly pick up robotics programming</a></li>
<li><a href="http://robohub.org/3-d-printing-hydraulically-powered-robots-no-assembly-required/" target="_blank" data-wpel-link="internal">3-D printing hydraulically-powered robots, no assembly required</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Programming for robotics: Introduction to ROS</title>
		<link>https://robohub.org/programming-for-robotics-introduction-to-ros/</link>
		
		<dc:creator><![CDATA[Péter Fankhauser]]></dc:creator>
		<pubDate>Tue, 07 Mar 2017 15:15:39 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://robohub.org/programming-for-robotics-introduction-to-ros/</guid>

					<description><![CDATA[This handy video-tutorial course gives an introduction to the Robot Operating System (ROS), including many of the available tools that are commonly used in robotics. With the help of different examples, the tutorials offer a great starting point to learn programming robots. You will learn how to create software including simulation, to interface sensors and actuators, [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-73310" src="http://robohub.org/wp-content/uploads/2017/03/bigstock-156822308.jpg" alt="" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2017/03/bigstock-156822308.jpg 900w, https://robohub.org/wp-content/uploads/2017/03/bigstock-156822308-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/bigstock-156822308-768x512.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/bigstock-156822308-450x300.jpg 450w" sizes="(max-width: 900px) 100vw, 900px" />
<p>This handy video-tutorial course gives an introduction to the Robot Operating System (ROS), including many of the available tools that are commonly used in robotics. With the help of different examples, the tutorials offer a great starting point to learn programming robots. You will learn how to create software including simulation, to interface sensors and actuators, and to integrate control algorithms.<span id="more-73240"></span></p>
<p>The course consists of a guided tutorial and exercises with increasing level of difficulty working with an autonomous robot. We provide recordings of the lectures and give an introduction to the exercises. From the course website, you can download all the material including exercise sheets and templates, and use the provided Virtual Machine (VM) image to start programming right away.</p>
<p><strong>Objectives:</strong></p>
<ul>
<li>ROS architecture: Master nodes, topics, messages, services, parameters and actions</li>
<li>Console commands: Navigating and analyzing the ROS system and the catkin workspace</li>
<li>Creating ROS packages: Structure, launch-files, and best practices</li>
<li>ROS C++ client library (roscpp): Creating your own ROS C++ programs</li>
<li>Simulating with ROS: Gazebo simulator, robot models (URDF) and simulation environments (SDF)</li>
<li>Working with visualizations (RViz) and user interface tools (rqt)</li>
<li>Inside ROS: TF transformation system, time, bags</li>
</ul>
<hr class="xh2  ">
<p><strong>Course 1:</strong></p>
<div class="keep-aspect"><iframe title="Programming for Robotics (ROS) Course 1" width="500" height="281" src="https://www.youtube-nocookie.com/embed/0BxVPCInS3M?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></div>
<p></p>
<hr class="xh2  ">
<p><strong>Course 2:</strong></p>
<div class="keep-aspect"><iframe title="Programming for Robotics (ROS) Course 2" width="500" height="281" src="https://www.youtube-nocookie.com/embed/jYqDnuxTwK8?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></div>
<p></p>
<hr class="xh2  ">
<p><strong>Course 3:</strong></p>
<div class="keep-aspect"><iframe title="Programming for Robotics (ROS) Course 3" width="500" height="281" src="https://www.youtube-nocookie.com/embed/_GgHFuib_LU?start=6&#038;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></div>
<p></p>
<hr class="xh2  ">
<p><strong>Course 4:</strong></p>
<div class="keep-aspect"><iframe title="Programming for Robotics (ROS) Course 4" width="500" height="281" src="https://www.youtube-nocookie.com/embed/feXC7aQrkeM?start=33&#038;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></div>
<p></p>
<p>Download the <a href="https://www.researchgate.net/publication/314101187_Programming_for_Robotics_-_Introduction_to_ROS" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">full presentation here.</a></p>
<p>P. Fankhauser, D. Jud, M. Wermelinger, M. Hutter, “Programming for Robotics – Introduction to ROS”, ETH Zurich, 2017. DOI: 10.13140/RG.2.2.14140.44161<br />
<hr class="xh2  "></p>
<p><em>If you liked this tutorial, you may also enjoy these:</em></p>
<ul>
<li><a href="http://robohub.org/python-programming-your-nao-robot/" target="_blank" rel="noopener" data-wpel-link="internal">Python programming your NAO robot</a></li>
<li><a href="http://robohub.org/robotics-maths-python-a-fledgling-computer-scientists-guide-to-inverse-kinematics/" target="_blank" data-wpel-link="internal" rel="noopener">Robotics, maths, python: A fledgling computer scientist’s guide to inverse kinematics</a></li>
<li><a href="http://robohub.org/sticky-business-five-adhesives-tested-for-3d-printing/" target="_blank" data-wpel-link="internal" rel="noopener">Sticky business: Five adhesives tested for 3D printing</a></li>
<li><a href="http://robohub.org/adjust-how-you-learn-and-quickly-pick-up-robotics-programming/" target="_blank" data-wpel-link="internal" rel="noopener">Adjust how you learn and quickly pick up robotics programming</a></li>
<li><a href="http://robohub.org/3-d-printing-hydraulically-powered-robots-no-assembly-required/" target="_blank" data-wpel-link="internal" rel="noopener">3-D printing hydraulically-powered robots, no assembly required</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal" rel="noopener">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Wearable AI that can detect the tone of a conversation</title>
		<link>https://robohub.org/wearable-ai-that-can-detect-the-tone-of-a-conversation/</link>
		
		<dc:creator><![CDATA[CSAIL MIT]]></dc:creator>
		<pubDate>Wed, 01 Feb 2017 18:00:44 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[bio-inspired]]></category>
		<category><![CDATA[Deep Learning]]></category>
		<category><![CDATA[healthcare]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[wearables]]></category>
		<guid isPermaLink="false">http://robohub.org/wearable-ai-that-can-detect-the-tone-of-a-conversation/</guid>

					<description><![CDATA[It’s a fact of nature that a single conversation can be interpreted in very different ways. For people with anxiety or conditions like Asperger’s, this can make social situations extremely stressful. But what if there was a more objective way to measure and understand our interactions? Researchers from MIT’s Computer Science and Artificial Intelligence Laboratory [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="attachment_70051" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/01/Samsung-Simband-credit-Jason-Dorfman-MIT-CSAIL.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-70051" class="size-full wp-image-70051" src="http://robohub.org/wp-content/uploads/2017/01/Samsung-Simband-credit-Jason-Dorfman-MIT-CSAIL.jpg" alt="Samsung Simband. Image: Jason Dorfman, MIT CSAIL" width="900" height="624" srcset="https://robohub.org/wp-content/uploads/2017/01/Samsung-Simband-credit-Jason-Dorfman-MIT-CSAIL.jpg 900w, https://robohub.org/wp-content/uploads/2017/01/Samsung-Simband-credit-Jason-Dorfman-MIT-CSAIL-425x295.jpg 425w, https://robohub.org/wp-content/uploads/2017/01/Samsung-Simband-credit-Jason-Dorfman-MIT-CSAIL-433x300.jpg 433w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-70051" class="wp-caption-text">Samsung Simband. Image: Jason Dorfman, MIT CSAIL</p></div>
<p>It’s a fact of nature that a single conversation can be interpreted in very different ways. For people with anxiety or conditions like Asperger’s, this can make social situations extremely stressful. But what if there was a more objective way to measure and understand our interactions?</p>
<p>Researchers from MIT’s Computer Science and Artificial Intelligence Laboratory (<a href="https://www.csail.mit.edu/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CSAIL</a>) say that they’ve gotten closer to a potential solution: an artificially intelligent wearable system that can predict if a conversation is happy, sad or neutral based on a person’s speech patterns and vitals.</p>
<p>“Imagine if, at the end of a conversation, you could rewind it and see the moments when the people around you felt the most anxious,” says graduate student <a href="https://www.csail.mit.edu/user/2735" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Tuka Alhanai</a>, who co-authored a related paper with PhD candidate <a href="https://www.linkedin.com/in/mohammad-ghassemi-401a843" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Mohammad Ghassemi</a> that they will present at next week’s Association for the Advancement of Artificial Intelligence (<a href="http://www.aaai.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">AAAI</a>) conference in San Francisco. “Our work is a step in this direction, suggesting that we may not be that far away from a world where people can have an AI social coach right in their pocket.”</p>
<div class="keep-aspect"><iframe title="Mood-Predicting Wearables" width="500" height="281" src="https://www.youtube-nocookie.com/embed/ZZFcgg-7dlc?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></div>
<p></p>
<p>As a participant tells a story, the system can analyze audio, text transcriptions and physiological signals to determine the overall tone of the story with 83 percent accuracy. Using deep-learning techniques, the system can also provide a specific sentiment score for five-second intervals within a conversation.</p>
<p>“As far as we know, this is the first experiment that collects both physical data and speech data in a passive but robust way, even while subjects are having natural, unstructured interactions,” says Ghassemi. “Our results show that it’s possible to classify the emotional tone of conversations in real-time.”</p>
<p>The team is keen to point out that they developed the system with privacy strongly in mind: the algorithm runs locally on a user’s device as a way of protecting personal information. (Alhanai says that a consumer version would obviously need clear protocols for getting consent from the people involved in the conversations.)</p>
<hr class="xh2  ">
<p><strong>How it works</strong></p>
<p>Past studies in this area would often show participants “happy” and “sad” videos, or ask them to artificially act out specific emotive states. But in an effort to elicit more organic emotions, the team instead asked subjects to tell a happy or sad story of their own choosing.</p>
<p>Subjects wore a <a href="https://www.simband.io/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Samsung Simband</a>, a device that captures high-resolution physiological waveforms to measure features like movement, heart rate, blood pressure, blood flow and skin temperature,. The system also captured audio data and text transcripts to analyze the speaker’s tone, pitch, energy, and vocabulary.</p>
<div id="attachment_70054" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/01/Mohammad-Ghassemi-and-Tuka-Alhanai-converse-with-the-wearable-credit-Jason-Dorfman-MIT-CSAIL.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-70054" class="size-full wp-image-70054" src="http://robohub.org/wp-content/uploads/2017/01/Mohammad-Ghassemi-and-Tuka-Alhanai-converse-with-the-wearable-credit-Jason-Dorfman-MIT-CSAIL.jpg" alt="Mohammad Ghassemi and Tuka Alhanai converse with the wearable. Image: Jason Dorfman MIT CSAIL" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2017/01/Mohammad-Ghassemi-and-Tuka-Alhanai-converse-with-the-wearable-credit-Jason-Dorfman-MIT-CSAIL.jpg 900w, https://robohub.org/wp-content/uploads/2017/01/Mohammad-Ghassemi-and-Tuka-Alhanai-converse-with-the-wearable-credit-Jason-Dorfman-MIT-CSAIL-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/01/Mohammad-Ghassemi-and-Tuka-Alhanai-converse-with-the-wearable-credit-Jason-Dorfman-MIT-CSAIL-450x300.jpg 450w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-70054" class="wp-caption-text">Mohammad Ghassemi and Tuka Alhanai converse with the wearable. Image: Jason Dorfman MIT CSAIL</p></div>
<p>“The team’s usage of consumer market devices for collecting physiological data and speech data shows how close we are to having such tools in everyday devices,” says Björn Schuller, professor and chair of Complex and Intelligent Systems at the University of Passau in Germany who was not involved in the research. “Technology could soon feel much more emotionally intelligent, or even ‘emotional’ itself.”</p>
<p>After capturing 31 different conversations of several minutes each, the team trained two algorithms on the data: one classified the overall nature of a conversation as either happy or sad, while the second classified each five-second block of every conversation as either positive, negative or neutral.</p>
<p>Alhanai notes that, in traditional neural networks, all features about the data are provided to the algorithm at the base of the network. In contrast, her team found that they could improve performance by organizing different features at the various layers of the network.</p>
<p>“The system picks up on how, for example, the sentiment in the text transcription was more abstract than the raw accelerometer data, says Alhanai. “It’s quite remarkable that a machine could approximate how we humans perceive these interactions, without significant input from us as researchers.”</p>
<hr class="xh2  ">
<p><strong>Results</strong></p>
<p>Indeed, the algorithm’s findings align well with what we humans might expect to observe. For instance, long pauses and a monotonous vocal tones were associated with sadder stories, while more energetic, varied speech patterns were associated with happier ones. In terms of body language, sadder stories were also strongly associated with increased fidgeting and cardiovascular activity, as well as certain postures like putting one’s hands on one’s face.</p>
<div id="attachment_70055" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/01/Graph-showing-real-time-emotion-detection-MIT-CSAIL.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-70055" class="size-full wp-image-70055" src="http://robohub.org/wp-content/uploads/2017/01/Graph-showing-real-time-emotion-detection-MIT-CSAIL.jpg" alt="Graph showing real-time emotion detection. Image: MIT CSAIL" width="900" height="695" srcset="https://robohub.org/wp-content/uploads/2017/01/Graph-showing-real-time-emotion-detection-MIT-CSAIL.jpg 900w, https://robohub.org/wp-content/uploads/2017/01/Graph-showing-real-time-emotion-detection-MIT-CSAIL-425x328.jpg 425w, https://robohub.org/wp-content/uploads/2017/01/Graph-showing-real-time-emotion-detection-MIT-CSAIL-388x300.jpg 388w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-70055" class="wp-caption-text">Graph showing real-time emotion detection. Image: MIT CSAIL</p></div>
<p>On average, the model could classify the mood of each five-second interval with an accuracy that was approximately 18 percent above chance, and a full 7.5 percent better than existing approaches. In future work, the team hopes to collect data on a much larger scale, potentially using commercial devices like the Apple Watch that would allow them to more easily deploy the system out in the world.</p>
<p>“Our next step is to improve the algorithm’s emotional granularity so it can call out boring, tense, and excited moments with greater accuracy instead of just labeling interactions as ‘positive’ or ‘negative’,” says Alhani. “Developing technology that can take the pulse of human emotions has the potential to dramatically improve how we communicate with each other.”</p>
<p><a href="https://groups.csail.mit.edu/sls/publications/2017/TukaAlHanai_aaai-17.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Click here to download the research paper</a>.</p>
<hr class="xh2  ">
<p><em>You might also enjoy the following articles:</em></p>
<ul>
<li><a href="http://robohub.org/artificial-intelligence-and-ethics-who-does-the-thinking/" target="_blank" data-wpel-link="internal">Artificial intelligence and ethics: Who does the thinking?</a></li>
<li><a href="http://robohub.org/soft-exosuit-economies-understanding-the-costs-of-lightening-the-load/" target="_blank" data-wpel-link="internal">Soft exosuit economies: Understanding the costs of lightening the load</a></li>
<li><a href="http://robohub.org/mit-media-lab-to-participate-in-27-million-initiative-on-ai-ethics-and-governance/" target="_blank" data-wpel-link="internal">MIT Media Lab to participate in $27 million initiative on AI ethics and governance</a></li>
<li><a href="http://robohub.org/how-artificial-intelligence-is-changing-our-christmas-shop/" target="_blank" data-wpel-link="internal">How artificial intelligence is changing our Christmas shop</a></li>
<li><a href="http://robohub.org/white-house-report-artificial-intelligence-automation-and-the-economy/" target="_blank" data-wpel-link="internal">White House report: Artificial intelligence, automation, and the economy</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1476529719528000&amp;usg=AFQjCNGLNF8DZi4cv1N5lXD3vSC5TalLrQ" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1476529719528000&amp;usg=AFQjCNH5It7fNAV7LLvSQqZD8MtbAG4Htg" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Robotic Functions Validations: Interview with Jussi Aaltonen</title>
		<link>https://robohub.org/interview-with-jussi-aaltonen-wp1-leader-from-tampere-university-of-technology/</link>
		
		<dc:creator><![CDATA[Luís Lopes]]></dc:creator>
		<pubDate>Fri, 27 Jan 2017 15:45:48 +0000</pubDate>
				<category><![CDATA[interviews]]></category>
		<category><![CDATA[AUV]]></category>
		<category><![CDATA[exploration & mining]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[mapping & surveillance]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[UUV]]></category>
		<guid isPermaLink="false">http://robohub.org/interview-with-jussi-aaltonen-wp1-leader-from-tampere-university-of-technology/</guid>

					<description><![CDATA[The UNEXMIN (Underwater Explorer for Flooded Mines) project is almost one year old. After a busy first year of work, UNEXMIN is on-schedule to deliver the first mechanical UX-1 prototype. Jussi Aaltonen, from TUT (Tampere University of Technology), leaders of WP1 – Robotic Functions Validations, talks about what has been done over the past year [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="attachment_69893" style="width: 1040px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/01/technology-developed-in-tut-1030x687.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-69893" class="size-full wp-image-69893" src="http://robohub.org/wp-content/uploads/2017/01/technology-developed-in-tut-1030x687.jpg" alt="Jussi Aaltonen explaining some robotics-specific topics." width="1030" height="687" srcset="https://robohub.org/wp-content/uploads/2017/01/technology-developed-in-tut-1030x687.jpg 1030w, https://robohub.org/wp-content/uploads/2017/01/technology-developed-in-tut-1030x687-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/01/technology-developed-in-tut-1030x687-1024x683.jpg 1024w, https://robohub.org/wp-content/uploads/2017/01/technology-developed-in-tut-1030x687-450x300.jpg 450w" sizes="(max-width: 1030px) 100vw, 1030px" /></a><p id="caption-attachment-69893" class="wp-caption-text">Jussi Aaltonen explaining some robotics-specific topics.</p></div>
<p>The UNEXMIN (<a href="http://www.unexmin.eu/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Underwater Explorer for Flooded Mines</a>) project is almost one year old. After a busy first year of work, UNEXMIN is on-schedule to deliver the first mechanical UX-1 prototype. Jussi Aaltonen, from TUT (<a href="http://www.tut.fi/en/home" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Tampere University of Technology</a>), leaders of WP1 – Robotic Functions Validations, talks about what has been done over the past year concerning his team’s work in UNEXMIN’s development scene.<span id="more-69892"></span></p>
<hr class="xh2  ">
<p><strong>Luís Lopes, LPRC: What is WP1 (Robotic Functions Validations) and what has been developed from it?</strong></p>
<p>Jussi Aaltonen: The purpose of WP1 is to develop and validate a robotic platform, i.e. all mechanical and mechatronic structures, systems and components of UX-1 (the name of the robot). Also, low level (directional) control principles are developed and validated in this work package. WP1 has successfully established a robotic platform which fulfils all necessary requirements.</p>
<p><strong>LL: How important is the work developed in WP1 for the future UX-1 robots</strong></p>
<p>JA: Work in WP1 is fundamental for the successful completion of the project. All later development stages rely on this work.</p>
<p><strong>LL: The systems/subsystems that the robot will employ were defined in this WP. What can you tell about them? How crucial are they for the robot’s overall functionality?</strong></p>
<p>JA: <a href="http://www.unexmin.eu/unexmin-meeting-in-tampere/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">All systems</a> are needed for the robot to achieve full functionality. However, survivability, i.e. the robot’s capability to return from its missions, is more heavily affected by some systems than others. It is, for example, possible to return with a broken multi-spectral camera, but losing a sonar may cause the robot to be lost.</p>
<div class="keep-aspect"><iframe title="Point Cloud from Salts Level, Deep Ecton" width="500" height="281" src="https://www.youtube-nocookie.com/embed/v3RWMfsUq_w?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></div>
<p></p>
<p><strong>LL: What kinds of tests were developed to test the hardware/software systems? How about the results obtained, were they positive?</strong></p>
<p>JA: Tests are done as so-called <a href="http://www.adi.com/technology/tech-apps/what-is-hardware-in-the-loop-simulation/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">hardware-in-the-loop</a> (HWIL) tests in laboratory. In HWIL testing, computer simulations and real hardware components interact, making it possible to do laboratory testing more closely to real operating conditions. Components and systems have also been tested in the pool by using a plastic mock-up of UX-1. Tests have been successful, which, unfortunately, does not always mean positive results. But weaknesses were found and lessons learned.</p>
<p><strong>LL: </strong><strong>In what conditions was the prototype tested?</strong></p>
<p>JA: Tests have been done in shallow depths (below 5 m) and moderate temperatures. Pressure testing at 60 bars (equivalent of 600 m depth) will start soon.</p>
<div class="keep-aspect"><iframe title="Flooded deep shaft, Ecton mine" width="500" height="281" src="https://www.youtube-nocookie.com/embed/bGfHtnRtEC8?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></div>
<p></p>
<p><strong>LL: The robot is designed considering stakeholders’ wants. How hard was it to define the requirements and specifications for the UX-1 robots?</strong></p>
<p>JA: I have to say that requirements and specifications are the easy part. The hardest is to design a robot complying them all.</p>
<p><strong>LL: Being leader of such an important WP of the UNEXMIN project must be challenging. Has it worked out as you imagined? Do you feel that everything has been accomplished?</strong></p>
<p>JA: Over this past year of cooperation, UNEXMIN teams from the <a href="http://www.unexmin.eu/partners/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">various partners</a> have gotten to know each other and each other’s ways of working. The possibilities to meet the others in person and to really collaborate in real life conditions, such as in <a href="http://www.unexmin.eu/category/news/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">workshops</a>, have been a great benefit and a very important thing, bonding people from all around Europe together and working towards  a common goal. Of course there are always <a href="http://www.unexmin.eu/the-project/technological-challenges/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">some challenges</a>. The biggest challenge has been finding a common and efficient enough platform for information exchange.</p>
<p><strong>LL: TUT will organise a UNEXMIN workshop in the beginning of February (2017) in Tampere, Finland. What can be expected to come out of this?</strong></p>
<p>JA: This event will conclude the work of the first year in the UNEXMIN project. Most of the work packages have already started or about to start (exception goes to WP7: Demonstration/Pilots), and thus we will hear a lot about results and developments in this meeting. We will also hear about the plans for a couple of essential work packages starting right after the meeting. I expect that we will have a good and fruitful meeting with the same <a href="http://www.unexmin.eu/image-galleries/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">good spirit and warm atmosphere</a> that we have always had. There will probably be some heated discussions, but that is only a sign of people being passionate about their work.</p>
<div class="keep-aspect"><iframe title="Ecton Salts level - Faro scans" width="500" height="281" src="https://www.youtube-nocookie.com/embed/JMQudXtApls?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></div>
<p></p>
<p><strong>LL: You are a specialist in the robotics field. What possible impact do you think the UNEXMIN project will have on the robotics field?</strong></p>
<p>JA: UX-1 [UNEXMIN robot design-prototypes] will have a very different structure and layout than what <a href="http://www.whoi.edu/main/auvs" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">autonomous underwater vehicles</a> usually have. This will most probably have some effects on the field of robotics and will open new doors to further miniaturised underwater robots – the future starts here. Also, <a href="http://www.unexmin.eu/the-project/test-sites/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">the environment where UX-1 will operate</a> is probably the most challenging after Mars and asteroid landers and that will also give tiger leaps in the field of robotics, developing new and better robotic systems.</p>
<p><strong>LL: </strong><strong>After one year, how do you feel the UNEXMIN project has progressed?</strong></p>
<p>JA: We are roughly in the place where we should be according to our plans. Work has been harder than what was expected. On the other hand, we learned a lot more, while still managing to keep pace.</p>
<p><a href="http://www.unexmin.eu/interview-with-jussi-aaltonen-wp1-leader-from-tampere-university-of-technology/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">This post was originally published on UNEXMIN</a>.</p>
<hr class="xh2  ">
<p><em>If you enjoyed this article, you might also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/surveying-flooded-mines-with-unexmin-interview-with-norbert-zajzon/" target="_blank" data-wpel-link="internal">Surveying flooded mines with UNEXMIN: Interview with Norbert Zajzon</a></li>
<li><a href="http://robohub.org/when-robots-become-art-interview-with-yi-wei-keng/" target="_blank" data-wpel-link="internal">When robots become art: Interview with Yi-Wei Keng</a></li>
<li><a href="http://robohub.org/a-european-perspective-on-robot-law-interview-with-mady-delvaux-stehres/" target="_blank" data-wpel-link="internal">A European perspective on robot law: Interview with Mady Delavaux</a></li>
<li><a href="http://robohub.org/art-meets-robotics-in-patrick-tressets-opline-prize-entry/" target="_blank" data-wpel-link="internal">Art meets robotics in Patrick Tresset’s OPLINE Prize entry</a></li>
<li><a href="http://robohub.org/robots-robotics-in-theatre-film-and-television/" target="_blank" data-wpel-link="internal">Robots Podcast #171: Robotics in theatre, film and television, with Grant Imahara and Richard McKenna</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a class="ext-link" title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.226: Toru Robots, with  Dr. Moritz Tenorth  </title>
		<link>https://robohub.org/toru-robots/</link>
		
		<dc:creator><![CDATA[Ron Vanderkley]]></dc:creator>
		<pubDate>Sat, 21 Jan 2017 23:37:49 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/toru-robots/</guid>

					<description><![CDATA[In this episode, Ron Vanderkley spoke to Dr Moritz Tenorth, head of software development at Magazino, a Munich-based startup developing mobile pick-and-place robots for item-specific logistics. They discussed his work on the Toru robot and what it means to the warehouse industry today and in the future. Dr Moritz Tenorth After obtaining his PhD in [&#8230;]]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2017/01/Totus_cube.jpg"/><a href="http://robohub.org/wp-content/uploads/2016/12/Totus_cube.jpg" data-wpel-link="internal"><img decoding="async" class="alignnone size-full wp-image-69014" src="http://robohub.org/wp-content/uploads/2016/12/Totus_cube.jpg" alt="totus_cube" width="340" height="409" srcset="https://robohub.org/wp-content/uploads/2016/12/Totus_cube.jpg 340w, https://robohub.org/wp-content/uploads/2016/12/Totus_cube-249x300.jpg 249w" sizes="(max-width: 340px) 100vw, 340px" /></a>
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/303889039&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p>In this episode, Ron Vanderkley spoke to Dr Moritz Tenorth, head of software development at Magazino, a Munich-based startup developing mobile pick-and-place robots for item-specific logistics. They discussed his work on the Toru robot and what it means to the warehouse industry today and in the future.</p>
<p><span id="more-68349"></span></p>
<p><strong>Dr Moritz Tenorth</strong></p>
<div id="attachment_69015" style="width: 228px" class="wp-caption alignnone"><a href="http://robohub.org/wp-content/uploads/2016/12/Moritz1.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-69015" class="size-full wp-image-69015" src="http://robohub.org/wp-content/uploads/2016/12/Moritz1.jpg" alt="Dr. Moritz Tenorth" width="218" height="219" srcset="https://robohub.org/wp-content/uploads/2016/12/Moritz1.jpg 218w, https://robohub.org/wp-content/uploads/2016/12/Moritz1-100x100.jpg 100w, https://robohub.org/wp-content/uploads/2016/12/Moritz1-32x32.jpg 32w, https://robohub.org/wp-content/uploads/2016/12/Moritz1-50x50.jpg 50w, https://robohub.org/wp-content/uploads/2016/12/Moritz1-64x64.jpg 64w, https://robohub.org/wp-content/uploads/2016/12/Moritz1-96x96.jpg 96w, https://robohub.org/wp-content/uploads/2016/12/Moritz1-128x128.jpg 128w" sizes="(max-width: 218px) 100vw, 218px" /></a><p id="caption-attachment-69015" class="wp-caption-text">Dr. Moritz Tenorth</p></div>
<p>After obtaining his PhD in robotics from TU Munich Dr Moritz Tenorth spent several years as a post-doc and freelance robotics consultant, with stays at the CMU Robotics Institute and the ATR labs in Japan. His research focuses on knowledge representation methods that can help autonomous robots make smarter decisions, and on methods for task coordination in robotics.</p>
<p><strong> Links</strong></p>
<ul>
<li><a href="http://www.magazino.eu/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Magazino (website)</a></li>
<li><a href="https://youtu.be/BXdDc9TIxKw" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Toru Cube &#8211; Pick by robot (Youtube)</a></li>
<li><a href="https://youtu.be/xJCTnUsE_V4" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pick-by-Robot | technical features of TORU Cube (YouTube)</a></li>
<li><a href="https://youtu.be/gk_22FfpYbo" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Magazino TORU Cube &#8211; DHL Logistik-Center (YouTube)</a></li>
<li><a href="http://feeds.soundcloud.com/stream/303889039-robotspodcast-robots-toru-robots.mp3" target="_blank" rel="follow external noopener noreferrer" data-wpel-link="external">Download mp3 (10.1 MB)</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" target="_blank" rel="follow external noopener noreferrer" data-wpel-link="external"><u><span style="color: #409ad9;">Subscribe to Robots using iTunes</span></u></a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/303889039-robotspodcast-robots-toru-robots.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Celebrating 9 Years of ROS</title>
		<link>https://robohub.org/celebrating-9-years-of-ros/</link>
		
		<dc:creator><![CDATA[Open Source Robotics Foundation]]></dc:creator>
		<pubDate>Wed, 28 Dec 2016 09:00:00 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/celebrating-9-years-of-ros/</guid>

					<description><![CDATA[From ros.org This year marks the occasion of ROS turning 9 years old! Through these years ROS has grown into a strong world-wide community. It&#8217;s a community with a large...&#160;<a href="http://www.osrfoundation.org/celebrating-9-years-of-ros/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[Read&#160;More]</a>]]></description>
										<content:encoded><![CDATA[<a href="http://robohub.org/wp-content/uploads/2016/12/ROS-9th-birthday.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter size-full wp-image-69229" src="http://robohub.org/wp-content/uploads/2016/12/ROS-9th-birthday.jpg" alt="ros-9th-birthday" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2016/12/ROS-9th-birthday.jpg 900w, https://robohub.org/wp-content/uploads/2016/12/ROS-9th-birthday-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/12/ROS-9th-birthday-450x300.jpg 450w" sizes="(max-width: 900px) 100vw, 900px" /></a>
<p>This year marks the occasion of ROS turning 9 years old! Over the years, ROS has grown into a strong world-wide community. It’s a community with a large variety of interests: from academic researchers to robotic product developers, as well as the many robot users. Academic use of ROS continues to grow. Citations of the first ROS paper “<a href="http://www.willowgarage.com/sites/default/files/icraoss09-ROS.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS: An Open-Source Robot Operating System</a>” has grown to 2,871.<span id="more-69209"></span></p>
<p>To get a better sense of what’s happening in the ROS community, if you have not already done so, I highly recommend reviewing the <a href="http://roscon.ros.org/2016/#program" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROSCon 2016 program</a>. You can also find all the video recordings in <a href="https://vimeopro.com/osrfoundation/roscon-2016" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">this gallery</a>. ROSCon 2016 was another great event bringing ROS community members together to share how they’re using ROS to solve their challenges. As the goal of ROSCon is to share information between the entire community, we record the talks and make them available online. We’ve sold out our venues the last two years and are looking forward to another ROSCon next fall!</p>
<a href="http://www.ros.org/news/2016/12/20/roscon-group-thumb.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://www.ros.org/news/assets_c/2016/12/roscon-group-thumb-thumb-640x212-1756.png" alt="roscon-group-thumb.png" width="640" height="212" /></a>
<p>Part of understanding our growing community is to try to measure it. For the last 6 years we’ve been generating <a href="http://wiki.ros.org/Metrics" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">metrics reports</a>. These reports can give a sense of aggregate concerning what’s happening in the ROS community. Our most recent report is from <a href="http://download.ros.org/downloads/metrics/metrics-report-2016-07.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">July 2016</a>. David Lu has put together <a href="https://discourse.ros.org/t/plotting-ros-metrics/934?u=tfoote" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">plots of several of the metrics across the last 6 years</a> which can be quite informative.</p>
<p>This year we wanted to dig a little deeper into the code metrics, so we downloaded the source of all of packages listed in the Indigo Igloo rosdistro and ran some analysis.</p>
<ul>
<li>The total line count is over 14 million lines of code</li>
<li>There have been 2477 authors</li>
<li>And 181509 commits</li>
<li>Averaging 73.3 commits per author</li>
</ul>
<p>You can see the commits as a function of month in this graph.</p>
<a href="http://www.ros.org/news/assets_c/2016/12/commits_by_year_month-1741.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://www.ros.org/news/assets_c/2016/12/commits_by_year_month-thumb-640x240-1741.png" alt="commits_by_year_month.png" width="640" height="240" /></a>
<p>Our committers are active around the world as evidenced by the commits coming in at all hours of the day.</p>
<a href="http://www.ros.org/news/assets_c/2016/12/hour_of_day-1726.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://www.ros.org/news/assets_c/2016/12/hour_of_day-thumb-640x240-1726.png" alt="hour_of_day.png" width="640" height="240" /></a>
<p>And the git commits record 24 different time zones (out of 39 possible).</p>
<p>Analyzing the repository for significant lines of code using [SLOCCount](<a href="http://www.dwheeler.com/sloccount/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://www.dwheeler.com/sloccount/</a>) shows:</p>
<ul>
<li>4,077,199 significant lines of code.</li>
<li>This represents an estimated 1,236 person-years of development.</li>
<li>For a sense of scale, that is an average of 137 developers contributing full time over the last 9 years!</li>
</ul>
<p>For those of you curious about the breakdown by language lines of code, it is as follows:</p>
<ul>
<li>cpp: 2608592 (63.98%)</li>
<li>python: 553332 (13.57%)</li>
<li>ansic: 297629 (7.30%)</li>
<li>xml: 280615 (6.88%)</li>
<li>lisp: 149439 (3.67%)</li>
<li>java: 135343 (3.32%)</li>
<li>ruby: 26484 (0.65%)</li>
<li>sh: 21120 (0.52%)</li>
</ul>
<p>This only represents the packages publicly released into the Indigo rosdistro index.</p>
<p>Note that the tools only worked on Git repos, so code from other source control systems was excluded. There are also a few projects which predate ROS but have ported to use ROS and their history is included.</p>
<p>We’re looking forward to continuing growth through 2017 leading up to the 10-year anniversary of ROS. With the <a href="https://discourse.ros.org/t/ros-2-beta-1-released/989?u=tfoote" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Beta 1 version of ROS 2.0 out</a>, there will be space for new development. We’re looking forward to our next release, Lunar Loggerhead, to coincide with Ubuntu’s next release, Zesty Zapus. With both of these, the ROS community can continue to rely on the many libraries, tools, and capabilities they have come to know and enjoy, as well as begin to experiment with the new features in ROS 2.0</p>
<p>Another exciting project to watch is the upcoming <a href="https://discourse.ros.org/t/announcing-turtlebot3/623?u=tfoote" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">TurtleBot 3</a>! The TurtleBot and TurtleBot 2 have been great platforms for learning and prototyping. However by packing that same capability into a smaller platform <a href="https://discourse.ros.org/t/tb3-payload-test-of-turtlebot3/827?u=tfoote" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">with more punch</a>, we look forward to it providing another avenue to grow the ROS community.</p>
<div class="keep-aspect"><iframe title="Turtlebot 3 assembly and examples" width="500" height="281" src="https://www.youtube-nocookie.com/embed/r3oNIWex8a0?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></div>
<p></p>
<p>We write these anniversary posts to help give you a sense of how ROS has been doing over the past year, but we’d certainly encourage you to find out for yourself. <a href="http://wiki.ros.org/Get%20Involved" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Get involved</a>. Write or edit a wiki page. Answer a question on ROS Answers. Come to ROSCon. And, when you’re ready, think about helping to maintain ROS itself, or even contributing a brand new ROS package.</p>
<p>OSRF is doing great, but the long-term success of ROS depends on every member of the incredibly awesome ROS community. If you’re already an active part of the ROS community, we can’t thank you enough; and if you’re not, think about how you can help ROS grow and thrive for the next nine years, and beyond.</p>
<hr class="xh2  ">
<p><em>If you enjoyed this article, you may also also enjoy:</em></p>
<ul>
<li><a href="http://robohub.org/introducing-h-ros-the-hardware-robot-operating-system/" target="_blank" data-wpel-link="internal">Introducing H-ROS: the Hardware Robot Operating System</a></li>
<li><a href="http://robohub.org/iros2016-in-pictures/" target="_blank" data-wpel-link="internal">#IROS2016 in pictures</a></li>
<li><a href="http://robohub.org/a-practical-look-at-latency-in-robotics-the-importance-of-metrics-and-operating-systems/" target="_blank" data-wpel-link="internal">A practical look at latency in robotics: The importance of metrics and operating systems</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1478700823537000&amp;usg=AFQjCNG-VCyDqPb9CxPQJmMtkw27ivsnfw" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a class="ext-link" title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1478700823537000&amp;usg=AFQjCNF-ubU9VlsUWTD3fz2baX0fhglJ8A" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.222: 100/100 Computer Vision Challenge, with  Dieter Fox  </title>
		<link>https://robohub.org/100100-computer-vision-challenge/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sat, 26 Nov 2016 00:55:53 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[bio-inspired]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/100100-computer-vision-challenge/</guid>

					<description><![CDATA[Towards understanding 100% of the pixels in an image 100% of the time with Dieter Fox.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2016/11/wetlab-1024x578.png"/><img decoding="async" class="alignnone size-full wp-image-68371" src="http://robohub.org/wp-content/uploads/2016/11/wetlab.png" alt="wetlab" width="1344" height="759" srcset="https://robohub.org/wp-content/uploads/2016/11/wetlab.png 1344w, https://robohub.org/wp-content/uploads/2016/11/wetlab-425x240.png 425w, https://robohub.org/wp-content/uploads/2016/11/wetlab-1024x578.png 1024w, https://robohub.org/wp-content/uploads/2016/11/wetlab-175x100.png 175w, https://robohub.org/wp-content/uploads/2016/11/wetlab-500x282.png 500w" sizes="(max-width: 1344px) 100vw, 1344px" />
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/294802226&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p><span style="font-weight: 400;">In this episode, Audrow Nash interviews Dieter Fox, Professor in the Department of Computer Science and Engineering at the University of Washington, about the 100/100 Computer Vision Tracking Challenge. This is a self-imposed challenge to understand 100% of the pixels in an image 100% of the time in video footage; this includes understanding semantic information. Such understanding would allow robots to assist humans more naturally in environments like a home kitchen, wet lab, or in disaster response. To accomplish this challenge, Fox discusses challenges which include modeling, tracking, and detecting articulated objects.</span></p>
<p><span id="more-68369"></span></p>
<p>Fox&#8217;s Keynote at ICRA 2016 on the 100/100 tracking challenge:</p>
<div class="keep-aspect"><iframe title="Fox Keynote ICRA 2016: The 100-100 Tracking Challenge" width="500" height="281" src="https://www.youtube-nocookie.com/embed/ySjxkIzfuug?list=PLMdjyI1iH4ysIWKv82RfdD7nF5a_BQ0l6" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p></p>
<p><strong>Dieter Fox</strong><br />
<img decoding="async" class="alignleft wp-image-68370" src="http://robohub.org/wp-content/uploads/2016/11/fox.jpg" alt="fox" width="160" height="200" srcset="https://robohub.org/wp-content/uploads/2016/11/fox.jpg 752w, https://robohub.org/wp-content/uploads/2016/11/fox-340x425.jpg 340w, https://robohub.org/wp-content/uploads/2016/11/fox-240x300.jpg 240w" sizes="(max-width: 160px) 100vw, 160px" />Dieter Fox is a German roboticist and a Professor in the Department of Computer Science &amp; Engineering at the University of Washington, Seattle. He is most notable for his contributions to several fields including robotics, artificial intelligence, machine learning, and ubiquitous computing. Together with Wolfram Burgard and Sebastian Thrun he is a co-author of the book Probabilistic Robotics.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/294802226-robotspodcast-robots-100100-computer-vision-challenge.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (13.5 MB)</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/294802226-robotspodcast-robots-100100-computer-vision-challenge.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Assistive robot operated via a brain-computer interface</title>
		<link>https://robohub.org/assistive-robot-operated-via-a-brain-computer-interface/</link>
		
		<dc:creator><![CDATA[Filippo Arrichiello]]></dc:creator>
		<pubDate>Wed, 16 Nov 2016 10:30:47 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[BCI]]></category>
		<category><![CDATA[brain-computer interface]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/assistive-robot-operated-via-a-brain-computer-interface/</guid>

					<description><![CDATA[Research and development of robotic assistive technologies has gained tremendous momentum in the last decade due to several factors such as the maturity level reached by several technologies, the advances in robotics and AI and the fact that more than 700 million of persons have some kind of disability or handicap. For many people with [&#8230;]]]></description>
										<content:encoded><![CDATA[<a href="http://robohub.org/wp-content/uploads/2016/11/BC-robot-interface.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter size-full wp-image-68140" src="http://robohub.org/wp-content/uploads/2016/11/BC-robot-interface.jpg" alt="bc-robot-interface" width="900" height="506" srcset="https://robohub.org/wp-content/uploads/2016/11/BC-robot-interface.jpg 900w, https://robohub.org/wp-content/uploads/2016/11/BC-robot-interface-425x239.jpg 425w, https://robohub.org/wp-content/uploads/2016/11/BC-robot-interface-500x281.jpg 500w" sizes="(max-width: 900px) 100vw, 900px" /></a>
<p>Research and development of robotic assistive technologies has gained tremendous momentum in the last decade due to several factors such as the maturity level reached by several technologies, the advances in robotics and AI and the fact that more than 700 million of persons have some kind of disability or handicap. For many people with mobility impairments, essential and simple tasks, such as dressing or feeding, require the assistance of dedicated people. Thus, the use of devices providing independent mobility can have a large impact on their quality of life.</p>
<p><span id="more-68135"></span></p>
<p>A team of researchers from the <a href="http://webuser.unicas.it/lai/robotica" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">University of Cassino</a>, under the direction of Professor <a href="http://webuser.unicas.it/arrichiello" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Filippo Arrichiello</a>, is working on the development of a control architecture for assistive robotic systems operated via a Brain-Computer Interface (BCI) to allow a user to operate a robot using his thoughts. The proposed software architecture relies on widely used frameworks to operate BCIs and robots (namely, BCI2000 for the operation of the BCI and ROS for the control of the robot) integrating control, perception and communication modules developed for the application at hand.</p>
<div class="keep-aspect"><iframe title="Assistive robot operated via a Brain-Computer Interface" width="500" height="281" src="https://www.youtube-nocookie.com/embed/dEb1jKdqVP8?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></div>
<p></p>
<p>In particular, using the BCI2000 framework, they developed a Graphical User Interface (GUI) based on P300 paradigm to allow the user to select options via a <a href="http://www.emotiv.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">BCI Epoch+</a>. The user can select objects from the scene and the action to perform by focusing attention on the corresponding flashing icons on a screen. By counting how many times the icon he wants to select flashes, the user generates a P300 potential that is detected via the BCI and translated in a selection operation on the GUI.</p>
<a href="http://robohub.org/wp-content/uploads/2016/11/brain-comp-interface.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter size-full wp-image-68139" src="http://robohub.org/wp-content/uploads/2016/11/brain-comp-interface.jpg" alt="brain-comp-interface" width="612" height="274" srcset="https://robohub.org/wp-content/uploads/2016/11/brain-comp-interface.jpg 612w, https://robohub.org/wp-content/uploads/2016/11/brain-comp-interface-425x190.jpg 425w, https://robohub.org/wp-content/uploads/2016/11/brain-comp-interface-500x224.jpg 500w" sizes="(max-width: 612px) 100vw, 612px" /></a>
<p>Messages related to the object and actions selected via the GUI are automatically sent to a 7DOF lightweight robot manipulator <a href="http://www.kinovarobotics.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Jaco2</a> that has to operate in the environment. The robot control architecture relies on a perception module that allows to detection and localization of objects, and the face/mouth of the user, using a RGB-D sensor (Kinect one). The motion of the manipulator is then controlled relying on a closed loop inverse kinematic algorithm that simultaneously manages multiple setbased and equality-based tasks. Preliminary experiments have been performed where the user commands the robot via the BCI in order to move objects on a table or to select a bottle from where to drink.</p>
<p><a href="http://robohub.org/wp-content/uploads/2016/11/BC-robot-interface2.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter size-full wp-image-68141" src="http://robohub.org/wp-content/uploads/2016/11/BC-robot-interface2.jpg" alt="bc-robot-interface2" width="900" height="506" srcset="https://robohub.org/wp-content/uploads/2016/11/BC-robot-interface2.jpg 900w, https://robohub.org/wp-content/uploads/2016/11/BC-robot-interface2-425x239.jpg 425w, https://robohub.org/wp-content/uploads/2016/11/BC-robot-interface2-500x281.jpg 500w" sizes="(max-width: 900px) 100vw, 900px" /></a>Team members: prof. Filippo Arrichiello, Paolo Di Lillo (PhD student), Daniele Di Vito (PhD student), prof. Gianluca Antonelli, prof. Stefano Chiaverini.</p>
<p><a href="http://webuser.unicas.it/lai/robotica" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Click here for more information on the Robotics Research Group of the DIEI</a>.</p>
<hr class="xh2  ">
<p><em>If you enjoyed this article, you might also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/virtual-race-competing-in-brain-computer-interface-at-cybathlon/" target="_blank" data-wpel-link="internal">Virtual race: Competing in Brain Computer Interface at Cybathlon</a></li>
<li><a href="http://robohub.org/brain-computer-interface-used-to-control-the-movement-and-actions-of-an-android-robot/" target="_blank" data-wpel-link="internal">Brain Computer Interface used to control the movement and actions of an android robot</a></li>
<li><a href="http://robohub.org/can-a-brain-computer-interface-convert-your-thoughts-to-text/" target="_blank" data-wpel-link="internal">Can a brain-computer interface convert your thoughts to text?</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a class="ext-link" title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How can swarm roboticists contribute to and benefit from the wisdom of other disciplines?</title>
		<link>https://robohub.org/how-can-swarm-roboticists-contribute-to-and-benefit-from-the-wisdom-of-other-disciplines/</link>
		
		<dc:creator><![CDATA[Chih-Chun Chen]]></dc:creator>
		<pubDate>Tue, 08 Nov 2016 10:00:01 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[modular]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[swarm]]></category>
		<guid isPermaLink="false">http://robohub.org/how-can-swarm-roboticists-contribute-to-and-benefit-from-the-wisdom-of-other-disciplines/</guid>

					<description><![CDATA[What can swarm roboticists learn from policy makers, systems biologists and physicists, and vice versa? It is already widely recognised that Robotics is an inherently interdisciplinary field and that designing even a single robot might require input from multiple domains. In Swarm Robotics, interactions between robots add further layers of complexity. Indeed, the &#8216;complex&#8217; nature [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://robohub.org/wp-content/uploads/2016/11/swarming-bots.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter size-full wp-image-67869" src="http://robohub.org/wp-content/uploads/2016/11/swarming-bots.jpg" alt="swarming-bots" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2016/11/swarming-bots.jpg 900w, https://robohub.org/wp-content/uploads/2016/11/swarming-bots-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/11/swarming-bots-450x300.jpg 450w" sizes="(max-width: 900px) 100vw, 900px" /></a>What can swarm roboticists learn from policy makers, systems biologists and physicists, and vice versa? It is already widely recognised that Robotics is an inherently interdisciplinary field and that designing even a single robot might require input from <a href="http://robohub.org/its-not-only-engineers-who-work-in-robotics" target="_blank" data-wpel-link="internal">multiple domains</a>. In Swarm Robotics, interactions between robots add further layers of complexity. Indeed, the &#8216;complex&#8217; nature of robot swarm systems demands approaches going beyond reductionist scientific models or traditional engineering design methods. Like many other emerging technologies, such as synthetic biology and socio-technical systems engineering, robot swarms can be notoriously difficult to predict due to their <a href="http://link.springer.com/article/10.1007/s00163-016-0219-2" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">non-linearity, interconnectivity, hidden heterogeneity and &#8217;emergence</a>&#8216;. Yet it is also this &#8216;complexity&#8217; that swarm roboticists seek to exploit in order to give intelligent, robust, adaptive behaviours.</p>
<p>But what does it mean to describe systems as complex? How do these complex systems differ from the more easily understood ‘modular’ systems that we are familiar with? Vocabulary in this area is often dangerously inconsistent. For example, the terms &#8217;emergence&#8217;, &#8216;complex&#8217;, and &#8216;complicated&#8217; are used differently by different disciplines, and often differently even within the same discipline. This makes it very difficult to understand whether people are really talking about the same thing, and whether the systems being described are different in superficial or profound ways. On the one hand, failing to identify the underlying similarities between different systems (whether modular or complex) results in missed opportunities for sharing knowledge, best practices and methods. On the other hand, failing to identify the underlying differences between different systems results in practices and methods being misapplied. More broadly, many of today&#8217;s real-world problems require engineers, designers and policy-makers across all domains to think in terms of complex systems.<br />
<a href="http://robohub.org/wp-content/uploads/2016/11/triple.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter size-full wp-image-67871" src="http://robohub.org/wp-content/uploads/2016/11/triple.jpg" alt="triple-page" width="857" height="384" srcset="https://robohub.org/wp-content/uploads/2016/11/triple.jpg 857w, https://robohub.org/wp-content/uploads/2016/11/triple-425x190.jpg 425w, https://robohub.org/wp-content/uploads/2016/11/triple-500x224.jpg 500w" sizes="(max-width: 857px) 100vw, 857px" /></a>To address problems with translating between disciplines, Chih-Chun Chen and Nathan Crilly at the University of Cambridge have produced <a href="http://complexityprimer.eng.cam.ac.uk" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">‘A primer on the design and science of complex systems’</a>. This introduces complex systems constructs by building them up from basic concepts, and contrasting them with more familiar constructs that are associated with modularity. For example, &#8217;emergence&#8217; can be understood with respect to a breakdown in how a system’s functions are mapped to the structures that perform those functions. Abstract diagrams that are independent of any particular domain are used to represent the constructs that are discussed. These are illustrated with worked examples that make the explanations accessible for those who have no experience with &#8216;complexity&#8217;. The primer is intended to provide both an introduction to complex systems constructs for those new to the topics discussed, and also a basis for cross-domain translations for researchers and practitioners wishing to engage with other fields when addressing the systems problems they are working on.</p>
<p>Being able to communicate unambiguously across disciplines and application areas would greatly expand the space of solutions available to all domains in solving problems currently deemed to be too &#8216;complex&#8217;. As a mature complex systems engineering discipline which is by its nature interdisciplinary, Swarm Robotics will no doubt have much to contribute to – and take from – this endeavour.</p>
<hr class="xh2  ">
<p><em>If you liked this article, you may also want to read these other articles on swarm robotics:</em></p>
<ul>
<li><a href="http://robohub.org/mroberto-the-modular-millirobot-for-swarm-behavior-studies/" target="_blank" data-wpel-link="internal">mROBerTO: The modular millirobot for swarm behavior studies</a></li>
<li><a href="http://robohub.org/swarms-of-precision-agriculture-robots-could-help-put-food-on-the-table/" target="_blank" data-wpel-link="internal">Swarms of precision agriculture robots could help put food on the table</a></li>
<li><a href="http://robohub.org/machines-can-learn-by-simply-observing-without-being-told-what-to-look-for/" target="_blank" data-wpel-link="internal">Machines can learn by simply observing, without being told what to look for</a></li>
<li><a href="http://robohub.org/raffaello-dandrea-at-ted2016-novel-flying-machines-and-swarms-of-tiny-flying-robots/" target="_blank" data-wpel-link="internal">Raffaello D’Andrea at TED2016: Novel flying machines and swarms of tiny flying robots</a></li>
<li><a href="http://robohub.org/scaling-up-underwater-swarmbot-research-from-tabletop-aquarium-to-the-venice-lagoon-cocoro-video-5052/" target="_blank" data-wpel-link="internal">Scaling up underwater swarmbot research from tabletop ‘aquarium’ to the Venice Lagoon (CoCoRo Video #50/52)</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Robotics tutor for primary school children</title>
		<link>https://robohub.org/robotics-tutor-for-primary-school-children/</link>
		
		<dc:creator><![CDATA[Frontiers in Computational Neuroscience]]></dc:creator>
		<pubDate>Fri, 04 Nov 2016 11:54:42 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/robotics-tutor-for-primary-school-children/</guid>

					<description><![CDATA[By: Ian Salter The use of robotic tutors in primary school classrooms is one step closer according to research recently published in the open access journal Frontiers in Computational Neuroscience. Dr Imbernòn Cuadrado and his co-workers at the Department of Artificial Intelligence in Madrid have developed an integrated computational architecture (ARTIE) for use with software applications [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="attachment_67853" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2016/11/nao-robot1.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-67853" class="size-full wp-image-67853" src="http://robohub.org/wp-content/uploads/2016/11/nao-robot1.jpg" alt="Frame of the tutoring experience of the student with low motivation and high competence. Reproduced with permission from the parents of the children. Courtesy of Dr Imbernon Cuadrado" width="900" height="674" srcset="https://robohub.org/wp-content/uploads/2016/11/nao-robot1.jpg 900w, https://robohub.org/wp-content/uploads/2016/11/nao-robot1-425x318.jpg 425w, https://robohub.org/wp-content/uploads/2016/11/nao-robot1-401x300.jpg 401w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-67853" class="wp-caption-text">Frame of the tutoring experience of the student with low motivation and high competence. Reproduced with permission from the parents of the children. Courtesy of Dr Imbernon Cuadrado</p></div>
<p>By: Ian Salter</p>
<p>The use of robotic tutors in primary school classrooms is one step closer according to research recently published in the open access journal <a href="http://journal.frontiersin.org/article/10.3389/fncom.2016.00077/full#h7" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Frontiers in Computational Neuroscience</a>.</p>
<p>Dr Imbernòn Cuadrado and his co-workers at the Department of Artificial Intelligence in Madrid have developed an integrated computational architecture (ARTIE) for use with software applications in schools.<span id="more-67477"></span></p>
<p>“The main goal of our work was to design a system that can detect the emotional state of primary school children interacting with educational software and make pedagogic interventions with a robot tutor that can ultimately improve the learning experience,” says Luis Imbernòn Cuadrado.</p>
<p>Online educational resources are becoming increasingly common in the classroom, although they have not taken into sufficient account that the learning ability of primary school children is particularly sensitive to their emotional state. This is perhaps where robot tutors can step in to assist teachers.</p>
<p>Rather than focusing on specific emotions, the researchers first identified three cognitive states (concentrating, distracted and inactive) known to influence the course of learning.  Keyboard strokes and mouse actions of children using educational software were used to predict which of these cognitive states the child is experiencing and subsequently linked to an algorithm that chooses the correct form of pedagogic intervention. These could be words and gestures of encouragement or attempts to raise interest and motivation for a specific learning objective, all of which can be delivered by a robot tutor.</p>
<p>In the Frontiers research article, Dr. Imbernón Cuadrado and co-workers describe an example of a robotic tutor platform, MONICA, which integrates the educational software Scratch to a commercially available robot through the computational architecture developed in their paper.</p>
<div id="attachment_67854" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2016/11/nao-robot2.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-67854" class="size-full wp-image-67854" src="http://robohub.org/wp-content/uploads/2016/11/nao-robot2.jpg" alt="Reproduced with permission from the parents of the children. Courtesy of Dr Imbernon Cuadrado" width="900" height="677" srcset="https://robohub.org/wp-content/uploads/2016/11/nao-robot2.jpg 900w, https://robohub.org/wp-content/uploads/2016/11/nao-robot2-425x320.jpg 425w, https://robohub.org/wp-content/uploads/2016/11/nao-robot2-399x300.jpg 399w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-67854" class="wp-caption-text">Reproduced with permission from the parents of the children. Courtesy of Dr Imbernon Cuadrado</p></div>
<p>MONICA was tested out on two primary school volunteers known to have different cognitive learning states. Whilst the children enjoyed having a robot guide their learning, and preferred it to working alone, they both felt they would have learned more with their normal teacher, despite feeling more relaxed in the presence of a robot tutor.</p>
<p>“Our first prototype was designed to demonstrate that the architecture works in detecting simplified emotional states,” says Dr. Imbernón Cuadrado. “The next step will be to implement methods for detecting a more complex range of emotions with cameras and microphones and to test the longer term impact of robot tutors on children’s learning curves.”</p>
<p>It seems however that robot tutors are not ready to replace school teachers just yet.  “We consider that robot tutors could have an effective support role to play in the primary school classroom in helping children reach their specific learning objectives,” concludes Dr. Imbernón Cuadrado.</p>
<p><a href="http://journal.frontiersin.org/article/10.3389/fncom.2016.00077/full#h7" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Click here to read the research paper</a></p>
<hr class="xh2  ">
<p><em>If you liked this article, you may also want to read these other articles by <a href="http://journal.frontiersin.org/journal/robotics-and-ai" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Frontiers</a>:</em></p>
<ul>
<li><a href="http://robohub.org/living-with-a-prosthesis-that-learns-a-case-study-in-translational-medicine/" target="_blank" data-wpel-link="internal">Living with a prosthesis that learns: A case-study in translational medicine</a></li>
<li><a href="http://robohub.org/putting-humanoid-robots-in-contact-with-their-environment/" target="_blank" data-wpel-link="internal">Putting humanoid robots in contact with their environment</a></li>
<li><a href="http://robohub.org/robotic-research-are-we-applying-the-scientific-method/" target="_blank" data-wpel-link="internal">Robotic research: Are we applying the scientific method?</a></li>
<li><a href="http://robohub.org/robots-can-successfully-imitate-human-motions-in-the-operating-room/" target="_blank" data-wpel-link="internal">Robots can successfully imitate human motions in the operating room</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.220: Teach Xemo to Move, with  Jeff Sprenger  </title>
		<link>https://robohub.org/teach-xemo-to-move/</link>
		
		<dc:creator><![CDATA[Abate De Mey]]></dc:creator>
		<pubDate>Mon, 31 Oct 2016 09:23:40 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/teach-xemo-to-move/</guid>

					<description><![CDATA[In this episode, Abate De Mey interviews Jeff Sprenger, founder of the startup Xemory in Vermont, USA. At Xemory they are developing a robot simulation game called Xemo, where players learn to animate virtual robots. This game tackles the common challenge of roboticists to develop lifelike motions for their physical robots.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2016/09/Xemo_jpg-1024x576.jpg"/><a href="http://robohub.org/wp-content/uploads/2016/09/Xemo_jpg.jpg" data-wpel-link="internal"><img decoding="async" class="alignnone size-medium wp-image-66316" src="http://robohub.org/wp-content/uploads/2016/09/Xemo_jpg-425x239.jpg" alt="xemo_jpg" width="425" height="239" srcset="https://robohub.org/wp-content/uploads/2016/09/Xemo_jpg-425x239.jpg 425w, https://robohub.org/wp-content/uploads/2016/09/Xemo_jpg-1024x576.jpg 1024w, https://robohub.org/wp-content/uploads/2016/09/Xemo_jpg-500x281.jpg 500w, https://robohub.org/wp-content/uploads/2016/09/Xemo_jpg.jpg 1284w" sizes="(max-width: 425px) 100vw, 425px" /></a>
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/290722073&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p>In this episode, Abate De Mey interviews Jeff Sprenger, founder of the startup Xemory in Vermont, USA. At Xemory they are developing a robot simulation game called Xemo, where players learn to animate virtual robots.</p>
<p>Complex motion at each joint is broken down into its more fundamental components, called degrees of freedom. Players are faced with the challenge of controlling the several degrees of freedom to recreate lifelike motions such as crawling, walking, jumping, and even dancing. These challenges are similar to the ones faced by roboticists trying to develop lifelike, robust and balanced motions for legged robots.</p>
<p>Sprenger discusses the unique ways different age groups and genders interact with the software. Through incorporating feedback from the students, Sprenger adds new activities and challenges to keep students engaged and challenged, improving their understanding of robot control.</p>
<p><span id="more-66010"></span></p>
<p><strong>Jeff Sprenger</strong><br />
<span style="font-weight: 400;"><a href="http://robohub.org/wp-content/uploads/2016/09/JeffPic.png" data-wpel-link="internal"><img decoding="async" class="  wp-image-66011 alignleft" src="http://robohub.org/wp-content/uploads/2016/09/JeffPic-392x425.png" alt="JeffPic" width="150" height="162" srcset="https://robohub.org/wp-content/uploads/2016/09/JeffPic-392x425.png 392w, https://robohub.org/wp-content/uploads/2016/09/JeffPic-276x300.png 276w, https://robohub.org/wp-content/uploads/2016/09/JeffPic.png 600w" sizes="(max-width: 150px) 100vw, 150px" /></a></span>Jeff Sprenger is the founder and CEO of <a href="http://www.xemo.io" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Xemory Software</a>, creator of the Xemo Robot Simulation game. Jeff founded Xemory in 2014 when he received an NSF grant to develop interactive robotics software for STEM education. The company received a second, follow up grant in 2015 to further develop and bring Xemo to market. Jeff has worked in scientific and business software for over 30 years, with eleven years as VP of Technology at MBF Bioscience. Jeff is also the co-organizer for Vermont&#8217;s monthly game developer meetup.</p>
<p><b>Links:</b></p>
<ul>
<li>Collaborator Dr Josh Bongard from <a href="http://meclab.org" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The Morpholology, Evolution and Cognition lab</a> advises the Xemo team and heads the MECL robotics lab at the University of Vermont</li>
<li>Email <a href="mailto:robots@xemory.com">robots@xemory.com</a> for questions or suggestions about Xemo</li>
<li><a href="http://feeds.soundcloud.com/stream/290722073-robotspodcast-robots-teach-xemo-to-move.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (11.1 MB)</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/290722073-robotspodcast-robots-teach-xemo-to-move.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>In motion: Video transmission by mobile drones</title>
		<link>https://robohub.org/in-motion-video-transmission-by-mobile-drones/</link>
		
		<dc:creator><![CDATA[Christian Bettstetter]]></dc:creator>
		<pubDate>Fri, 07 Oct 2016 09:30:42 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[interviews]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[mapping & surveillance]]></category>
		<category><![CDATA[military]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[wireless]]></category>
		<guid isPermaLink="false">http://robohub.org/in-motion-video-transmission-by-mobile-drones/</guid>

					<description><![CDATA[Raheeb Muzaffar, an information technology specialist, has developed an application-layer framework that improves the transmission of videos between moving drones and mobile devices located at ground level. His work within the Interactive and Cognitive Environments (ICE) doctoral programme will be completed soon. Raheeb explains what makes this technology innovative and talks about his plans for [&#8230;]]]></description>
										<content:encoded><![CDATA[<a href="http://robohub.org/wp-content/uploads/2016/09/raheeb.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter size-large wp-image-66480" src="http://robohub.org/wp-content/uploads/2016/09/raheeb-1024x681.jpg" alt="raheeb" width="1024" height="681" srcset="https://robohub.org/wp-content/uploads/2016/09/raheeb-1024x681.jpg 1024w, https://robohub.org/wp-content/uploads/2016/09/raheeb-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/09/raheeb-451x300.jpg 451w, https://robohub.org/wp-content/uploads/2016/09/raheeb.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a>
<p>Raheeb Muzaffar, an information technology specialist, has developed an application-layer framework that improves the transmission of videos between moving drones and mobile devices located at ground level. His work within the Interactive and Cognitive Environments (ICE) doctoral programme will be completed soon. Raheeb explains what makes this technology innovative and talks about his plans for the future in a <a href="https://www.aau.at/blog/in-bewegung-videouebertragung-von-mobilen-drohnen/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">conversation with Romy Mueller</a>.<span id="more-66479"></span></p>
<p><strong>Raheeb Muzaffar</strong> was already aware of what to expect when he arrived in Klagenfurt as a PhD student, travelling from Islamabad, the capital of Pakistan, December 2012: He&#8217;s travelled well before, had experience working with various universities and professional organizations, and was acquainted both with the European culture and the research environment. The doctoral programme “<a href="http://www.icephd.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Interactive and Cognitive Environments (ICE)</a>” suited him perfectly, allowing him to conduct research in an international environment. Doctoral students accepted into the programme are funded for a period of three years. During this time, they work at two universities. The research teams at the <a href="http://nes.aau.at/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Alpen-Adria-Universität</a> and the <a href="http://cis.eecs.qmul.ac.uk/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Queen Mary University in London</a> offered Muzaffar, who wanted to work on the communication between drones, an environment that allowed him insight into various laboratories and research approaches. By combining the key research areas he experienced in Austria and Great Britain, he ultimately arrived at his very own topic: video transmission in drone networks.</p>
<p>He spotted a problematic issue in this context, which he has studied very closely over the past few years. “In a situation where several drones are airborne and are transmitting videos to several units located at ground level, we cannot currently guarantee that the footage will be reliably transmitted.” The problem is that the receiving devices do not have a feedback mechanism for the video packets being transmitted from the drones. The missing feedback mechanism causes unreliability rendering a distorted video reception. Also, when the transmitting devices and the receiving devices are in motion, the wireless transmission conditions are subject to continuous change, introducing an additional factor of uncertainty.</p>
<p>To address this problem, Raheeb Muzaffar has developed a so-called “video multicast streaming framework”, which allows feedback from multiple ground devices to the drones to add reliability allowing a smooth video reception. However, the framework is even more capable: “The drone does not only learn whether the video has arrived, but thanks to the feedback mechanism, the drone can adjust the transmission rate and the video quality to match the prevailing wireless conditions. Thus, the transmitting drones can re-send lost video packets following the transmission and video rate adaption.” Video communication between drones and receiving devices is useful for various applications such as search and rescue, surveillance, and disaster management.</p>
<p>When we asked him, if he can make profitable use of his technology, Raheeb Muzaffar laughed. At various conferences, he talked to the developers from the industry, who confirmed to him that modules endowed with similar functionality are expensive and that the WLAN protocol requires modification. However, his application is freely available. Anyone wishing to commercialise the technology as a product, is able to do so. In any case, over the course of numerous simulations and experiments, he has demonstrated that the streaming framework works and uses the conventional WLAN protocol without modifications.</p>
<p>Muzaffar’s research in Klagenfurt is coming to an end. By November, he will complete his doctoral thesis, and will pull up stakes in Klagenfurt, following his hopes and dreams to work in the research-based industry. The researcher was accompanied by his wife when he came to Klagenfurt. In the meantime, they celebrated the birth of their daughter. The Muzaffar family intends to travel more: “I am not tied to one location. I would enjoy working anywhere in Europe, but we also like the idea of moving to New Zealand.”</p>
<h2>A few words with Raheeb Muzaffar</h2>
<p><strong>What career would you have chosen, if you had not become a scientist?<br />
</strong><br />
If I would not have become a scientist, I would have become a social worker. Before turning to research, I worked with Non-governmental organizations including iMMAP and UNICEF thinking that my technical expertise could help expedite the social work that the organizations are involved in. Besides the work I do plan to involve myself in some sort of social work may it be technical, educational, financial or emotional.</p>
<p><strong>Do your parents understand what it is you are working on?<br />
</strong><br />
Yes, especially my father, he is quite interested in technology. He may not have the technical details but he is aware of research and the work I am involved in.</p>
<p><strong>What is the first thing you do when you arrive at the office in the morning?<br />
</strong><br />
First thing in the morning is to check and answer my emails. Thereafter, I work by the plan. I always have a plan for the week/month regarding the tasks I need to do. Although sometimes things don’t go by the plan and I have to readjust the plan to meet deadlines.</p>
<p><strong>Do you have proper holidays? Without thinking about your work?<br />
</strong><br />
Yes, at least once a year.</p>
<p><strong>Why are so many people afraid of technical sciences?<br />
</strong><br />
In my opinion, every individual has a different aptitude to his/her work domain and one should do what one thinks he/she is interested in and can perform best. Having said that, working in the domain of technical science is quite challenging. The field has advanced and it is getting increasingly complex to even gain the basic understanding of different domains. To work in this field, one has to stay up to date. Developing something new involves a minimal margin of error. I think, people are afraid due to the complex nature of the studies that involve an extra bit of hard work, understanding, and patience.</p>
<p><em>Written by: Romy Müller, University of Klagenfurt</em></p>
<p><em>Originally published in German language in <a href="https://www.aau.at/blog/in-bewegung-videouebertragung-von-mobilen-drohnen/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">AAU News</a> of the University of Klagenfurt, Austria. Also published at <a href="https://medium.com/networked-and-autonomous-aerial-systems/in-motion-video-transmission-by-mobile-drones-650de4ca32ea" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Medium.com</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.218: RSS 2016 Posters, with  Gangyuan Jing,  Rico Jonschkowski,  Matthew Gombolay and  Dorsa Sadigh  </title>
		<link>https://robohub.org/rss-2016-posters/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Mon, 03 Oct 2016 02:11:00 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[modular]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/rss-2016-posters/</guid>

					<description><![CDATA[Modular robotics, last year’s Amazon picking challenge, software to help nurses coordinate, and autonomous cars at RSS.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2016/10/rss.png"/><img decoding="async" src="http://robohub.org/wp-content/uploads/2016/10/rss.png" alt="rss" width="1000" height="600" class="alignnone size-full wp-image-66639" srcset="https://robohub.org/wp-content/uploads/2016/10/rss.png 1000w, https://robohub.org/wp-content/uploads/2016/10/rss-425x255.png 425w, https://robohub.org/wp-content/uploads/2016/10/rss-500x300.png 500w" sizes="(max-width: 1000px) 100vw, 1000px" />
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/285781336&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe><br />
<span style="font-weight: 400;">In this episode, Audrow Nash interviews several researchers presenting their work at the <em>Robotics Science and Systems</em> (RSS) 2016 conference in Ann Arbor, Michigan. </span></p>
<p><span id="more-66588"></span></p>
<p><span style="font-weight: 400;">Audrow speaks with Gangyuan Jing from Cornell University about modular robotics; Rico Jonschkowski from Technical University of Berlin about lessons from last year’s Amazon picking challenge, which his team won; Matthew Gombolay from MIT about software to help nurses coordinate; and Dorsa Sadigh from UC Berkeley about developing human-like behavior for autonomous cars.</span></p>
<p><b>Links:</b></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/285781336-robotspodcast-robots-rss-2016-posters.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (9.7 MB)</a></li>
<li><a href="http://www.roboticsconference.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Link to RSS 2016 homepage</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/285781336-robotspodcast-robots-rss-2016-posters.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.214: Project Ngulia: From Phone to Drone, with  Fredrik Gustafsson  </title>
		<link>https://robohub.org/project-ngulia-from-phone-to-drone/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sat, 06 Aug 2016 18:06:23 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[mapping & surveillance]]></category>
		<category><![CDATA[military]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[social robotics]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<guid isPermaLink="false">http://robohub.org/project-ngulia-from-phone-to-drone/</guid>

					<description><![CDATA[Fredrik Gustafsson on an initiative to reduce poaching in a rhino sanctuary in Ngulia, Kenya.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2016/07/Black-rhino-Yoki-WC-1024x669.jpg"/><p><img decoding="async" class="alignnone size-full wp-image-64737" src="http://robohub.org/wp-content/uploads/2016/07/Black-rhino-Yoki-WC.jpg" alt="Black-rhino-Yoki-WC" width="3655" height="2389" srcset="https://robohub.org/wp-content/uploads/2016/07/Black-rhino-Yoki-WC.jpg 3655w, https://robohub.org/wp-content/uploads/2016/07/Black-rhino-Yoki-WC-425x278.jpg 425w, https://robohub.org/wp-content/uploads/2016/07/Black-rhino-Yoki-WC-1024x669.jpg 1024w, https://robohub.org/wp-content/uploads/2016/07/Black-rhino-Yoki-WC-459x300.jpg 459w" sizes="(max-width: 3655px) 100vw, 3655px" /><br />
<iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/277113922&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe><br />
In this episode, Audrow Nash interviews Fredrik Gustafsson, Professor in Sensor Informatics at Department of Electrical Engineering in Linköping University, about an initiative to reduce poaching in a rhino sanctuary in Ngulia, Kenya. Gustafsson discusses how he first became involved in this project, how he has worked with the rangers to develop solutions, and the future of this work.<br />
<span id="more-64736"></span></p>
<p>&nbsp;</p>
<p><strong>Fredrik Gustafsson</strong></p>
<p><img decoding="async" class="alignleft wp-image-64738" src="http://robohub.org/wp-content/uploads/2016/07/FredrikGustafsson.jpg" alt="FredrikGustafsson" width="150" height="196" srcset="https://robohub.org/wp-content/uploads/2016/07/FredrikGustafsson.jpg 924w, https://robohub.org/wp-content/uploads/2016/07/FredrikGustafsson-325x425.jpg 325w, https://robohub.org/wp-content/uploads/2016/07/FredrikGustafsson-783x1024.jpg 783w, https://robohub.org/wp-content/uploads/2016/07/FredrikGustafsson-229x300.jpg 229w" sizes="(max-width: 150px) 100vw, 150px" />Fredrik Gustafsson is professor in Sensor Informatics at the Department of Electrical Engineering, Linköping University, since 2005. He received the M.Sc. degree in electrical engineering 1988 and the Ph.D. degree in Automatic Control, 1992, both from Linköping University. His research interests are in stochastic signal processing, adaptive filtering and change detection, with applications to communication, vehicular, airborne, and audio systems. His work in the sensor fusion area involves design and implementation of nonlinear filtering algorithms for localization, navigation and tracking of all kind of platforms, including cars, aircraft, spacecraft, UAV’s, surface and underwater vessels, cell phones and film cameras for augmented reality. He is a co-founder of the companies NIRA Dynamics (automotive safety, including tire pressure monitoring systems found in more than 20 million, <a href="http://www.liu.se/?l=encars" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">here</a>), Softube (plug-ins for music studios and software solutions for Marshall and Fender), and Senionlab (leading manufacturer of indoor navigation solutions for sm, <a href="https://www.youtube.com/watch?v=CDsNZJTWw0wartphones" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">here</a>).</p>
<p><b>Links:</b></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/277113922-robotspodcast-robots-project-ngulia-from-phone-to-drone.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (16.9 MB)</a></li>
<li><a href="http://www.wildlifesecurity.se/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Project Ngulia website</a></li>
<li><a href="http://confcats_isif.s3.amazonaws.com/web-files/perspectives/FullPrint1-1.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A PDF overview of Project Ngulia</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/277113922-robotspodcast-robots-project-ngulia-from-phone-to-drone.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.213: Physics-Based Optimization for Robot Control, with  Emo Todorov  </title>
		<link>https://robohub.org/physics-based-optimization-for-robot-control/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sat, 23 Jul 2016 03:44:48 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[humanoids]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/physics-based-optimization-for-robot-control/</guid>

					<description><![CDATA[Emo Todorov discusses a method for controlling complex robot behavior.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2016/07/pbo-1024x523.png"/><img decoding="async" class="alignnone size-full wp-image-64684" src="http://robohub.org/wp-content/uploads/2016/07/pbo.png" alt="pbo" width="1428" height="730" srcset="https://robohub.org/wp-content/uploads/2016/07/pbo.png 1428w, https://robohub.org/wp-content/uploads/2016/07/pbo-425x217.png 425w, https://robohub.org/wp-content/uploads/2016/07/pbo-1024x523.png 1024w, https://robohub.org/wp-content/uploads/2016/07/pbo-500x256.png 500w" sizes="(max-width: 1428px) 100vw, 1428px" />
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/290027084&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p>In this episode, Audrow Nash interviews Emo Todorov, Director of Movement Control Laboratory at the University of Washington, about a physics-based optimization method for controlling robots. Todorov describes how his physics-based method can be used to solve problems and discusses results in simulation and on hardware.</p>
<p><span id="more-64683"></span></p>
<p><strong>Emo Todorov</strong></p>
<p><img decoding="async" class="alignleft wp-image-64685" src="http://robohub.org/wp-content/uploads/2016/07/Todorov-.png" alt="Todorov-" width="169" height="200" />Emo Todorov obtained his PhD in Cognitive Neuroscience from MIT in 1998. Since then he has worked as Postdoctoral Felow in the Gatsby Computational Neuroscience Unit at UCL, Research Scientist in Biomedical Engineering at USC, Assistant Professor in Cognitive Science at UCSD, and is now Associate Professor in Applied Mathematics and Computer Science &amp; Engineering at UW. He is generally interested in intelligent control of complex systems, in both engineering and biology. His current focus is autonomous robot control through high-performance numerical optimization. He is also the founder of Roboti LLC and developer of the MuJoCo physics simulator.</p>
<p><b>Links:</b></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/274962041-robotspodcast-physics-based-optimization-for-robot-control.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (15.8 MB)</a></li>
<li><a href="http://homes.cs.washington.edu/~todorov/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Todorov&#8217;s lab website</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/274962041-robotspodcast-physics-based-optimization-for-robot-control.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>ep.211: ICRA 2016 Exhibition (Part 2 of 2), with  Greg Burman,  Dave Rollinson,  Tony Prescott and  Xavier Carpentier  </title>
		<link>https://robohub.org/icra-exhibition-part-2-of-2/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Sat, 25 Jun 2016 22:48:09 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[modular]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">http://robohub.org/icra-exhibition-part-2-of-2/</guid>

					<description><![CDATA[This is the second of two episodes where Audrow Nash interviews several companies at the International Conference for Robotics and Automation (ICRA). Interviews include iniLabs on a high frequency camera, HEBI robotics on a modular system for constructing robots, Consequential Robotics on a companion robot, and Phoenix Technologies on the motion capture system used on the International Space Station.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2016/06/icra2016-1024x508.jpg"/><img decoding="async" class="alignnone size-full wp-image-63994" src="http://robohub.org/wp-content/uploads/2016/06/icra2016.jpg" alt="icra2016" width="1491" height="739" srcset="https://robohub.org/wp-content/uploads/2016/06/icra2016.jpg 1491w, https://robohub.org/wp-content/uploads/2016/06/icra2016-425x211.jpg 425w, https://robohub.org/wp-content/uploads/2016/06/icra2016-1024x508.jpg 1024w, https://robohub.org/wp-content/uploads/2016/06/icra2016-500x248.jpg 500w" sizes="(max-width: 1491px) 100vw, 1491px" />
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/270851170&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe>This is the second of two episodes where Audrow Nash interviews several companies at the International Conference for Robotics and Automation (ICRA). ICRA is the IEEE Robotics and Automation Society’s biggest conference and one of the leading international forums for robotics researchers to present their work. The 2016 conference was May 16-21 in Stockholm, Sweden.<span id="more-63991"></span></p>
<p>Interviews include the following:</p>
<p><strong>Greg Burman</strong>, Engineer at iniLabs, explains a novel, high frequency camera that senses differences in illumination at each pixel.</p>
<p><strong>Dave Rollinson</strong>, Co-Founder of HEBI robotics, talks about on a modular system for constructing robots.</p>
<p><strong>Tony Prescott</strong>, Director of Research at Consequential Robotics, discusses work on a companion robot.</p>
<p><strong>Xavier Carpentier</strong>, Phoenix Technologies, on motion tracker used on the International Space Station.</p>
<p>&nbsp;</p>
<p><b>Links:</b></p>
<ul>
<li><a href="http://feeds.soundcloud.com/stream/270851170-robotspodcast-icra-2016-exhibition-ii.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (17.4 MB)</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/270851170-robotspodcast-icra-2016-exhibition-ii.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Book Review: &#8216;Peer Reviews in Software, A Practical Guide,&#8217; by Karl Wiegers</title>
		<link>https://robohub.org/book-review-peer-reviews-in-software-a-practical-guide-by-karl-wiegers/</link>
		
		<dc:creator><![CDATA[Robots for Roboticists]]></dc:creator>
		<pubDate>Wed, 01 Jun 2016 09:50:53 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/book-review-peer-reviews-in-software-a-practical-guide-by-karl-wiegers/</guid>

					<description><![CDATA[<p>I have been part of many software teams where we desired to do code reviews. In most of those cases the code reviews did not take place, or were pointless and a waste of time. So the question is; how do you effectively conduct peer reviews in order to improve the quality of your systems. [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://robotsforroboticists.com/book-review-peer-reviews-software-karl-wiegers/" data-wpel-link="external" target="_blank">Book Review: Peer Reviews in Software by Karl Wiegers</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://robotsforroboticists.com/" data-wpel-link="external" target="_blank">Robots For Roboticists</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="attachment_63214" style="width: 1110px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-63214" class="size-full wp-image-63214" src="http://robohub.org/wp-content/uploads/2016/05/peer-review-software-code-coding-human-check.jpg" alt="Code review of a C++ program with an error found." width="1100" height="694" srcset="https://robohub.org/wp-content/uploads/2016/05/peer-review-software-code-coding-human-check.jpg 1100w, https://robohub.org/wp-content/uploads/2016/05/peer-review-software-code-coding-human-check-425x268.jpg 425w, https://robohub.org/wp-content/uploads/2016/05/peer-review-software-code-coding-human-check-1024x646.jpg 1024w, https://robohub.org/wp-content/uploads/2016/05/peer-review-software-code-coding-human-check-476x300.jpg 476w" sizes="(max-width: 1100px) 100vw, 1100px" /><p id="caption-attachment-63214" class="wp-caption-text">Code review of a C++ program with an error found.</p></div>
<p>I have been part of many software teams where we desired to do code reviews. In most of those cases the code reviews did not take place, or were pointless and a waste of time. So the question is: how do you effectively conduct peer reviews in order to improve the quality of your systems?</p>
<p>I found this book, <a href="http://www.amazon.com/Peer-Reviews-Software-Practical-Guide/dp/0201734850?ie=UTF8&amp;psc=1&amp;redirect=true&amp;ref_=oh_aui_detailpage_o08_s00" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Peer Reviews in Software: A Practical Guide by Karl E. Wiegers</a>. This book was recommended to me, and having “practical guide” in the title caught my attention &#8212;  I have reviewed other books that claimed practical, but were not. Hopefully this book will help provide me (and you) with tools for conducting valuable code reviews.<span id="more-63197"></span></p>
<div id="attachment_63211" style="width: 389px" class="wp-caption alignleft"><img decoding="async" aria-describedby="caption-attachment-63211" class="size-full wp-image-63211" src="http://robohub.org/wp-content/uploads/2016/05/prs_book.jpg" alt="Peer Reviews in Software: A Practical Guide. Photo: Amazon" width="379" height="475" srcset="https://robohub.org/wp-content/uploads/2016/05/prs_book.jpg 379w, https://robohub.org/wp-content/uploads/2016/05/prs_book-339x425.jpg 339w, https://robohub.org/wp-content/uploads/2016/05/prs_book-239x300.jpg 239w" sizes="(max-width: 379px) 100vw, 379px" /><p id="caption-attachment-63211" class="wp-caption-text">Peer Reviews in Software: A Practical Guide. Photo: Amazon</p></div>
<p>As a human, I will make mistakes when programming; finding my mistakes is often difficult since I am very close to my work. How many times have you spent hours trying to find a bug in your code only to realize you had a bad semi-colon or parentheses? Another person who has not worked on the code for hours might have been able to spot the problem right away. When I first started programming it could be embarrassing to have somebody review my code and point out the problems. However now that I am more senior, I do not view it as an embarrassment, but as a learning opportunity since everybody has a different set of experiences that influences their code. I would encourage other developers to view it as a learning experience and not be bashful about reviews. Remember the person is critiquing the work, not you; this is how to become a better developer.</p>
<p>According to Wiegers, there are many types of peer reviews including: inspections, team reviews, walkthroughs, pair programming, peer desk check passaround, and finally ad hoc review.</p>
<p>This book is divided into three sections:</p>
<ol>
<li>Cultural &amp; social aspects</li>
<li>Different types of reviews (with a strong focus on inspection)</li>
<li>How to implement review process within your projects</li>
</ol>
<h2>Cultural &amp; Social Aspects</h2>
<p>In this first section of the book, the author makes the argument that quality work is not free and that “paying” the extra cost of peer reviews is a good investment in the future. By having peer review you can reduce failures before the product is released out into the world and any applicable reworks. Shifting the defect detection to the early stages of a product has huge potential payoff, due to high costs of fixing defects found late in the release cycle, or after release. The space shuttle program found the relative cost for fixing a defect is: $1, if found during initial inspection; $13, if found during a system test; and $92, to fix after delivery! In the book, the author documents various companies who saved substantial amounts of time and money all by having code inspection programs.</p>
<p>One thing I like is the reference to IEEE 1999, which talks about other items that are good to review. People don&#8217;t think about it but other things, such as marketing brochures, requirement specifications, user guides, test plans and many other things, are good candidates for peer review.</p>
<p>I have seen many project teams try to do error tracking and/or code reviews but fail, due to team culture. I saw one case where peer review actually worked: when a dedicated person&#8217;s only job was to manage reliability in the project. He was great at hounding people to track bugs and review code. This book discussed how team culture must be developed to value “quality”. If you are the type of person that does not want to waste time reviewing another&#8217;s code, you must remember you will want the other person to “waste” time looking at your code. In this manner, we must all learn to scratch each other&#8217;s back. There are also two traps to watch out for:</p>
<ol>
<li>Becoming lazy and submitting bad code for review since somebody else will find/fix it, or</li>
<li>Trying to perfect your code before sharing it, in order to protect your ego from getting bruised, and to only show your best work.</li>
</ol>
<p>We also cannot forget managers. Managers need to value quality and provide time and resources for employees to develop good practices. Managers need to understand the point of these exercises are to find flaws and people should not be punished based on those flaws. I have often seen managers not putting time in the schedule for good code reviews.</p>
<h2>Types of reviews</h2>
<p>Before discussing the types of reviews there is a good discussion on the guiding principles for reviews. Some of the principles are:</p>
<ul>
<li>Check your egos at the door</li>
<li>Keep the review team small</li>
<li>Find problems during review, but don’t try to fix them at the review. Give up to 1 minute for discussion of fixes.</li>
<li>Limit review meeting to 2 hours max</li>
<li>Require advanced preparation</li>
</ul>
<p>There are several types of peer reviews discussed in this book. This list starts with the least formal approach and develops until the most formal approach (the book uses the opposite order which I found non intuitive).</p>
<ol>
<li><strong>Ad Hoc</strong> – These are the spur of the moment meetings where you call a coworker to your desk to help with a small problem. Usually, this just solves an immediate problem. (This is super useful when trying to work out various coordinate transforms)</li>
<li><strong>Peer passaround/deskcheck, </strong>– In this approach a copy of the work is sent to multiple reviewers, after which you can then collate all of the reviews. This allows multiple people to look at the code/item and also lets you get something if one person does not respond. In the peer deskcheck version, only one person looks at it instead of passing it around for multiple reviews.</li>
<li><strong>Pair Programming</strong> – This is the idea that two people program together. So while there is no official review two sets of eyes see each line of code being typed. This has an added bonus that now two people will understand the code. The downside is that often one of the coders can “doze-off” and not be effective at watching for flaws. Also, many coders might not like this.</li>
<li><strong>Walkthrough</strong> – This is where the author of the code walks through the code to a group of reviewers. This is often unstructured and heavily dependent on how good of a job the author prepared. In my experience this is good for helping people understand the code and finding large logic flaws, but not so much for finding smalls flaws/bugs.</li>
<li><strong>Team Review</strong> – This is similar to the walkthrough however reviewers are provided with documentation/code in advance to review and their results are collated.</li>
<li><strong>Inspection</strong> – Finally, we have the most formal approach which the author appears to favor. In this approach the author of the code does not lead the review, rather, a moderator, often with the help of checklists, will lead the meeting and read out the various sections. After the moderator reads a section, the reviewers discuss it. The author of the code can answer questions and learn how to improve various sections. Often the author might identify other instances of the same problem that the reviewers did not point out. An issue log should be maintained as a formal way of providing feedback and a list to verify fixes against.</li>
</ol>
<div id="attachment_63212" style="width: 2969px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-63212" class="size-full wp-image-63212" src="http://robohub.org/wp-content/uploads/2016/05/peer_review_types_from_Wiegers_Peer_reviews_in_software.jpg" alt="Suggested review methods from &quot;Peer Reviews in Software&quot;" width="2959" height="1860" srcset="https://robohub.org/wp-content/uploads/2016/05/peer_review_types_from_Wiegers_Peer_reviews_in_software.jpg 2959w, https://robohub.org/wp-content/uploads/2016/05/peer_review_types_from_Wiegers_Peer_reviews_in_software-425x267.jpg 425w, https://robohub.org/wp-content/uploads/2016/05/peer_review_types_from_Wiegers_Peer_reviews_in_software-1024x644.jpg 1024w, https://robohub.org/wp-content/uploads/2016/05/peer_review_types_from_Wiegers_Peer_reviews_in_software-477x300.jpg 477w" sizes="(max-width: 2959px) 100vw, 2959px" /><p id="caption-attachment-63212" class="wp-caption-text">Suggested review methods from &#8220;Peer Reviews in Software&#8221;</p></div>
<p>The book then spends the next few chapters detailing the inspection method of peer review. Here are just a few notes. As always, read the book to find out more.</p>
<ul>
<li>In most situation 3-7 is a good size group for the inspection. The number of people can be based on the item being reviewed.</li>
<li>The review needs to be planned in advance and have time to prepare content to distribute to reviewers.</li>
<li>After the meeting the author should address each item in the issue log that was created and submit it to the moderator (or other such person) to verify that the solutions are good.</li>
<li>Perform an inspection when that module is ready to pass to the next development stage. Waiting too long can leave a person with a lot of bad code that is now too hard to fix.</li>
<li>You can (sort of) measure the ROI by looking at the bugs found and how long they took to find. There are many other metrics detailed in the book.</li>
<li>Keep spelling and grammar mistakes on a separate paper and not on the main issue list.</li>
</ul>
<h2>How to implement review processes within your projects</h2>
<p>Getting a software team and management to change can be difficult. The last part of this book is dedicated to how you can get reviews started, and how to let them naturally grow within the company. One significant thing identified is to have a key senior person act as a coordinator for building a culture of peer review and to provide training to developers. There is a nice long table in the book of the various pitfalls that an organization may encounter and how to deal with them.</p>
<p>This book also discusses special challenges and how it can affect your review process. Some of the situations addressed are:</p>
<ul>
<li>Large work products</li>
<li>Geographic or time separation</li>
<li>Distributed reviewers</li>
<li>Asynchronous review</li>
<li>Generated and non-procedural code</li>
<li>To many participants</li>
<li>No qualified reviewers available</li>
</ul>
<p>At the end of this book, there is a link to <a href="http://www.processimpact.com/goodies.shtml" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">supplemental material</a> online. I was excited to see this. However when I went to the site, I saw it was all for sale and not free (most things were around $5). That kind of burst my bubble of excitement for the supplemental material. There is a second website for the book that is referenced but does not seem to be valid anymore.</p>
<p>Throughout the book the idea is getting proper training for people on how to conduct inspection reviews. Towards the end of the book, the idea of hiring the book’s author as a trainer to help with this training is suggested.</p>
<p>Overall, I think this is a good book. It introduces people on how to do software reviews. The use of graphics and tables in the book are pretty good. It is practical and easy to read. I also like how this book addresses management and makes the business case for peer reviews. I give this book 4.5 out of 5 stars. The missing 0.5 stars is due to the supplemental material not being free and for not providing those forms with the book.</p>
<hr class="xh2  ">
<p>Disclaimer: I do not know the book author. I purchased this book myself from Amazon.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.181: bStem, with  Todd Hylton  </title>
		<link>https://robohub.org/robots-bstem/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Fri, 01 May 2015 16:44:00 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[Robohub Focus on High-risk High-reward]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">http://robohub.org/robots-podcast-bstem-with-todd-hylton/</guid>

					<description><![CDATA[In this episode, Audrow Nash interviews Todd Hylton, Senior Vice President at Brain Corporation, about neuromorphic computers. They discuss the robotics development board bStem, which approximates a neuromorphic computer, as well as the eyeRover: a small balancing robot that demonstrates how the bStem can be used in mobile robots.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2015/05/eyeRover-in-Motion-e1430462316806.jpg"/><img decoding="async" class="aligncenter wp-image-49207" src="http://robohub.org/wp-content/uploads/2015/05/eyeRover-in-Motion-e1430462316806.jpg" alt="" width="780" height="665" srcset="https://robohub.org/wp-content/uploads/2015/05/eyeRover-in-Motion-e1430462316806.jpg 720w, https://robohub.org/wp-content/uploads/2015/05/eyeRover-in-Motion-e1430462316806-425x362.jpg 425w, https://robohub.org/wp-content/uploads/2015/05/eyeRover-in-Motion-e1430462316806-352x300.jpg 352w" sizes="(max-width: 780px) 100vw, 780px" />
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/303394011&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<div style="clear:both"></div>
<p>In this episode, Audrow Nash interviews <a href="http://www.braincorporation.com/team-partners/dr-todd-hylton-svp/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Todd Hylton</a>, Senior Vice President at <a href="http://www.braincorporation.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Brain Corporation</a>, about neuromorphic computers. They discuss the robotics development board <a href="http://www.braincorporation.com/portfolio_page/bstem-developer-kit-integrated-robotics-platform/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">bStem</a>, which approximates a neuromorphic computer, as well as the eyeRover: a small balancing robot that demonstrates how the bStem can be used in mobile robots.<i> </i><span id="more-49203"></span></p>
<p>youtu.be/uGcUB5MAVsY</p>
<p><strong>Todd Hylton </strong></p>
<p><img decoding="async" class=" wp-image-4932 size-thumbnail alignleft" src="http://www.robotspodcast.com/podcast/uploaded_images/Hylton-headshot-BW300v31-150x150.jpg" alt="" width="150" height="150" />As Senior Vice President of Brain Corporation, Dr. Todd Hylton leads the development of business and technical strategies within the company. A scientist and co founder of a small semi-conductor equipment manufacturer, Hylton brings 25 years of experience in the semiconductor, optical communications, data storage and defense industries alongside a broad technical entrepreneurial background in research and development, small business, marketing and government programs.</p>
<div class="sprfocus3"><a class="sprfocusl" href="/tag/robohub-focus-on-high-risk-high-reward/" data-wpel-link="internal"> </a></div>
<p><strong>Links:</strong></p>
<ul>
<li><a class="mp3" href="http://feeds.soundcloud.com/stream/303394011-robotspodcast-robots-bstem.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (16.4 MB)</a></li>
<li><a class="rss" title="Subscribe to Robots podcast RSS feed using iTunes" href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a class="rss" title="Subscribe to Robots podcast RSS feed using other feed readers" href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
</ul>
<hr class="xh2  ">
<p><strong>Transcript</strong></p>
<p><strong>Audrow Nash:</strong> Hi, welcome to robot&#8217;s podcast. Can you introduce yourself?</p>
<p><strong>Todd Hylton:</strong> I&#8217;m the senior VP of Strategy at Brain Corporation. Brain Corporation is a technology startup located in San Diego, California working on computing hardware and software technology for robotics.</p>
<p><strong>Audrow Nash:</strong> Can you tell me the goal and motivation behind the company?</p>
<p><strong>Todd Hylton:</strong> The company&#8217;s mission is to provide computing technology – hardware, software and cloud-based or web-based services – for people who want to build robots, so that robots can become more a part of everyday life than they currently are.</p>
<p>I often ask people, &#8220;How many robots did you see today?&#8221; And usually the answer is “none” unless they have a [robot] vacuum cleaner at home. Our mission is to make it possible for many more robots to be created by providing some of the foundational technologies that are, frankly, quite challenging to produce if you&#8217;re building a robot from scratch.</p>
<p><strong>Audrow Nash:</strong> To begin, can you give me an overview of neuromorphic computing and its advantages over using a CPU?</p>
<p><strong>Todd Hylton:</strong> This is a topic near and dear to my heart, and certainly part of what Brain Corporation does.</p>
<p>Before working at Brain Corporation, I was at DARPA where I sponsored a project in neuromorphic computing called SyNAPSE. The goal for neuromorphic computing in general was to see if it was possible to build a different kind of computing architecture, one in which computing was massively distributed, and memory was embedded very near the computing elements. To draw inspiration from biology: very simple processing units (which you might think of as neurons) sending messages to other processing units (via things you might think of as spikes) with connections between them, which are the memory around the processors (what you might that of as synapses).</p>
<p>The goal for that project was to see if it was possible to build a large-scale neuromorphic computer and also to push boundaries in memory technology. You need a lot of memory on board to make a good neuromorphic computer, and [we wanted] to push our understanding of what we would be able to teach these chips to do, and how we would teach them by having synaptic modifications and neuronal dynamics built into the chips.</p>
<p>Though Brain Corportation is not building neuromorphic chips, many of the learning algorithms that we write for our robots have ideas like neurons and synapses underneath them, so we would very much like to be able to buy these neuromorphic chips when they become available because we think they will be a great enabler for our robotics packages.</p>
<p>To come back to your original question about CPU versus neuromorphic processor, CPU&#8217;s are great for general purpose computing. You can give them gigantic lists of instructions, they&#8217;re pretty simple to use, and that&#8217;s why we like them. But if you need to do a whole bunch of things in parallel – if you need to coordinate many different things in time and space – they&#8217;re not very efficient. It&#8217;s just too much energy wasted moving stuff back and forth in the chip.</p>
<p><strong>Audrow Nash:</strong> An example of that is vision processing … ?</p>
<p><strong>Todd Hylton:</strong> Yes, a good example of that is vision processing, which goes right back to robotics. One of the key things that robots need that they mostly don&#8217;t have are vision systems. There are different levels of vision system, and some are quite simple, but we envision at some point in the not too distant future a vision system that actually begins to learn the dynamics and the statistic of its environment in a spontaneous way. And that really needs a different kind of computer to do it well.</p>
<p><strong>Audrow Nash:</strong> You guys have created bStem. Can you tell me a bit about it?</p>
<p><strong>Todd Hylton:</strong> bStem does not include a neuromorphic processor – those neuromorphic processors are still in their very early phases of being built and the tools needed to make them are not commercially available yet. But bStem is the closest thing we can get right now.</p>
<p>We wanted a processor that was low power, low cost, but still with a lot of computational capacity, because you don&#8217;t have a lot of power and you need a lot of computation if you&#8217;ve got a mobile robot. bStem’s basic technology is derived from the mobile phone industry. Chips that are available for mobile phones provide lots of different computing capabilities: GPUs, CPUs, DSPs, various codecs for vision – all of these things are part of what we need. So we have taken state-of-the-art cell phone chipsets made by Qualcomm and repurposed them for robotics on this little board we called bStem. It also comes with sensors, drivers for various motors, and breakout boards for various motors that the robots may have.</p>
<p><strong>Audrow Nash:</strong> Are there similar development boards out there?</p>
<p><strong>Todd Hylton:</strong> I don&#8217;t know of any similar development boards that use state-of-the-art mobile phone technology for robotics. But there certainly are development boards that use mobile phone technology. If you want to build a phone or tablet you can get one of these boards. Unfortunately they&#8217;re a long way from what a roboticist really wants. With bStem, we closed the gap between those development boards built for phones and development boards built for robots. If get a bStem, it&#8217;s going to look and feel just like what you would expect it to be as a roboticist and not as a mobile phone developer.</p>
<p><strong>Audrow Nash:</strong> What kind of reactions have you gotten from people who are using bStem?</p>
<p><strong>Todd Hylton:</strong> We&#8217;ve given bStem to a handful of developers. The basic reaction is, “Wow I can&#8217;t believe it. I&#8217;ve got a whole Ubuntu package on this tiny little board, it takes about two watts to run it, I can develop my whole robotic controller on this board, I can do Gmail on it if I feel like it, plus it&#8217;s got a whole bunch of other tools and goodies that make it easy for me to write the controllers that I want.”</p>
<p><strong>Audrow Nash:</strong> Can you tell me a bit about eyeRover?</p>
<p><strong>Todd Hylton:</strong> As I said in the beginning we aspire to build the computing technology for people that want to build robots. We don&#8217;t plan to build and sell robots, but we built the eyeRover because we had to integrate the whole technology stack: the computer hardware, the software, put it on a robot, put the sensors on it and we wanted to be able to train the robots so it&#8217;s got a learning system that we put on it as well. It basically forced us to build the whole technology piece so that we could begin to show our potential partners what it is we can do.</p>
<p><strong>Audrow Nash:</strong> Can you describe some of the sensors and actuators that eyeRover has?</p>
<p><strong>Todd Hylton:</strong> eyeRover is a two-wheel balancing robot, sort of a Segway-type robot. It&#8217;s got two cameras and a relatively simple vision system with which it can see its environment. It has a bStem board, onboard IMUs, and magnetometers (which are used in some of the algorithms).</p>
<p>There are a lot of things on bStem that it doesn&#8217;t use because we didn&#8217;t need them for this particular robot, but other roboticists would probably like them. bStem also includes a user interface, which you can use to both remote control the robot and to train the robot in a behavior. That remote controller looks like a game pad/iPad combination. It&#8217;s sort of like a video game controller for the robot.</p>
<p><strong>Audrow Nash:</strong> It looks to me like a PSP, the older kind.</p>
<p><strong>Todd Hylton:</strong> Yeah, yeah.</p>
<p><strong>Audrow Nash:</strong> Can you talk about eyeRover&#8217;s modes of learning and how you&#8217;ve been able to train him?</p>
<p><strong>Todd Hylton:</strong> All of the learning modes on eyeRover are what we call ‘supervised learning’. Supervised learning is when you essentially show the robot what it is supposed to do; it learns to associate its sensory input with whatever it is you told it to do. For example, if the robot is supposed to turn right whenever it sees a green block on the left, I just show it that behavior a few times and it makes that association. It&#8217;s a well-known way of doing training.</p>
<p>We&#8217;ve built many different supervised learning algorithms, and the ones that we do on the eyeRover we&#8217;re doing primarily because we wanted to show navigation behaviors; we basically built our own special supervised algorithm that we thought was particularly effective and also didn&#8217;t require gigantic computational resources.</p>
<p>In the future, as we build out the learning piece – which we call the Brain Operating System, that’s the software stack that allows the robot to learn – it will also have what people generally think of as ‘unsupervised learning,’ where by exploring its environment the robot begins to learn the structure of its world. It will likely have some reinforcement learning as well, which is what I kind of think of as an impoverished supervised learning where instead of telling the robot exactly what it&#8217;s supposed to do, you just tell it “that was good” or “that was bad.”</p>
<p><strong>Audrow Nash:</strong> Can you talk about some of your examples of actually training eyeRover?</p>
<p><strong>Todd Hylton:</strong> We&#8217;ve trained it to do simple navigation around objects that may be on the floor, like around your desk, around your chair, around your trash can, do some loops and figure eights, go from point A to Point B. The way we train it is to show this behavior by remote control a few times, we show it a few loops around the path it&#8217;s supposed to do, and then we let it go. And if it&#8217;s correctly learned it, it does the same behavior. You can also train it incrementally, where you train it, you let it go, and you see if it&#8217;s doing what you want and you just give small corrections when it makes mistakes. Over time it does better at those areas where it was making mistakes. For the kinds of things that we&#8217;re doing now, it usually only takes a couple of minutes to train a path like the ones I just described.</p>
<p>We&#8217;ve also given it some simple gestures and it can learn to come to you or go away from you. On other robots we&#8217;ve trained them to play fetch and we can show them an object that they&#8217;re supposed to find: put the object out somewhere, it&#8217;ll go get the object and bring it back to a base, and it&#8217;s all trained.</p>
<p>The cool thing about that is it&#8217;s hard to write a piece of code that would just do that generically. You can&#8217;t foresee every environment even if they&#8217;re pretty simple, and you can&#8217;t really code it. So one of the key things we think robots need to be able to do to be part of everyday life is that they need to be able to adapt or be trained in the environments in which they&#8217;re going to perform because no coder can anticipate every single situation a robot&#8217;s going to see.</p>
<p><strong>Audrow Nash:</strong> Will this bring the development of robots and their behaviors to the masses … because you can train the robot to behave as you want?</p>
<p><strong>Todd Hylton:</strong> Exactly.</p>
<p><strong>Audrow Nash:</strong> Is that the goal of Brain Corp?</p>
<p><strong>Todd Hylton:</strong> That&#8217;s one of the goals, and I think it&#8217;ll go in stages. There will be some pre-training by the people who build the robots so that the thing doesn&#8217;t have to learn from scratch when you buy it from Best Buy and stick in your home. That way, when you get it in the home, it will be much more capable and much more useful, [especially] if you can give it additional training.</p>
<p>One of the challenges for us, though, is to come up with user interfaces so that people who aren&#8217;t roboticists or technologists can train a robot. There&#8217;s a big stack of things that we worry about, such as what can people actually do, how can we actually control the robot, how can we make it clear, how do you communicate the task to the robot … the AI pieces that try to put together what the robot senses and what it&#8217;s being told to do … all the computing hardware and then a whole cloud infrastructure so that you can get updates, you can upload brains, you can upload what the robot&#8217;s done so we can diagnose it if something bad has happened and it&#8217;s not performing the way it should be. We are doing all of those things.</p>
<p><strong>Audrow Nash:</strong> Now that you&#8217;re using bStem, what are some of the other applications that you anticipate seeing from the user community?</p>
<p><strong>Todd Hylton:</strong> That&#8217;s what we&#8217;re just now beginning to learn in detail. We were in hibernation for many years getting the technology together, and it’s only in the last month or so we&#8217;ve actually been telling people. We didn&#8217;t really want to start saying much until we had a platform on which we can demonstrate it, which is why the eyeRover exists.<strong> </strong></p>
<p>What I see in the robotics industry in general, like at this show – we’re at RoboBusiness now –it’s mostly very small companies in narrow niches. [Of course this is a] silly exaggeration, but it seems that most of the companies bring in gears and motors and sheet metal and plastic and a few chips and a loading dock, and a robot comes out the other end. Basically, they have to do the whole technology piece, which is really challenging.</p>
<p>What we&#8217;re doing took a gigantic amount of resources to actually accomplish. Our business proposition is that it doesn’t make sense for every company to do that; we’ll do it for you. Pretty much all the robots that I&#8217;ve seen at this meeting are simple robots that roll around on four wheels and see stuff, there are some that have grippers, there are some humanoid robots or some combinations of those things. I think all of those robots could benefit from the technologies that we&#8217;re developing.</p>
<p>Another thing that we would like to see happen in the robotics industry is for it to be much easier for new companies to form around building robots. There’s a huge economic barrier to get it going because the computing systems that you need mostly don&#8217;t exist and you have to build them from scratch. The people that really know robotics or who have some deep domain expertise in whatever the problem is they&#8217;re trying to solve – whether it&#8217;s drilling holes or sweeping floors or cleaning windows or whatever. There&#8217;s no reason they should have to know the entire software stack on a modern system on a chip – it&#8217;s crazy.</p>
<p>If we can get these technology pieces together and available – and that&#8217;s our plan of course – then I think there will be an explosion of new robotics companies. Two guys in a garage out of engineering school can build a robot, rapidly prototype it, show that it works, take it to an investor and validate that they can do what they say they want to do with very little investment. That will enable an explosion of robotic applications and different niches, and that&#8217;s the world as we see it in the future. Sort of what we have now, except it would be vastly larger.</p>
<p>And of course there will some big consumer plays where everybody&#8217;s got the robot that cleans the table, or whatever the killer application is, and we&#8217;re still talking to people about that.</p>
<p><strong>Audrow Nash:</strong> In developing this technology, something like neuromorphic computing, what are some of the major challenges you&#8217;ve encountered and what is the lesson to learn from them?</p>
<p><strong>Todd Hylton:</strong> The major challenges now and for the foreseeable future will be getting sufficient computational capacity on board small mobile robots. One of the ways we are working to mitigate is to try to shift part of the computation off into the cloud. That turns out to be a very complicated problem, too. It&#8217;s not as simple as saying, “There&#8217;s big computers in the cloud and we&#8217;ll just do it all there,” because there are all sorts of issues about moving data around and latency that it may make sense for some applications but not for others.</p>
<p>From my perspective, the biggest technical challenge is the computing capacity. If the neuromorphic computing technology matures rapidly, it would alleviate a great fraction of it. Most of the computation that we do now, even on eyeRover, is vision – vision algorithms of kind or another – and that&#8217;s a real sweet spot for neuromorphic computers.</p>
<p>I think the other challenge for us is that the industry structure needs to change, and I&#8217;m not sure how long that will take. As a business, you&#8217;ve got only so much capital to work with, and ou&#8217;ve got to become self-sustaining and profitable before you run out of money. That depends on the ability of the industry to adopt what we&#8217;re doing even if they maybe don&#8217;t think about it the way we do yet. So that&#8217;s a certainly a risk for us.</p>
<p>In terms of lessons learned, I would say it&#8217;s really challenging to take a state-of-the-art system on a chip built for a mobile phone and make it useful on a robotics platform. When we first started, we thought it was going to be a whole lot easier than it was. A lot of people talk about how mobile phone technology is going to enable robotics, and it will, but actually getting there from where we are now was a huge investment.</p>
<p>An additional lesson that we learned is in doing the learning algorithms; that there&#8217;s not one way to do them, there are many ways. There is no general-purpose learning algorithm out there – at least not yet. So you have to do some experimentation to figure out what the best ones are. I like to tell people that the work is the process of eliminating all the bad complicated ideas in favor of the simple ones that work. Sometimes, though, when you find a simple solution you kick yourself and wonder, “Why didn&#8217;t I think of that a long time ago?” but that&#8217;s just the way it is. The goal is to find a simple solution, and that takes a lot of work. Brain Corporation&#8217;s got some very capable people working for it, but we&#8217;re just a small group of people. There are all kinds of people who can write these kinds of algorithms, and there&#8217;s no reason we shouldn&#8217;t make it possible for them to do that.</p>
<p>So part of our strategy going forward, hopefully sometime next year, is to make our Brain OS system available with APIs so that if you are into AI, or a neural nets, or machine learning, you could start writing your own learning algorithms. You already have the whole robotic platform, all the infrastructure and so forth, and you can focus on <em>that</em> piece, because that&#8217;s a lot of work too. If I can multiplex that out into the world then I think there will be a much faster spread of the technology, and I think it&#8217;s a much better business strategy for us as well.</p>
<p>I think the other lesson I&#8217;ve learned is that it&#8217;s very challenging to try to build a new technology and build a new business model and into a new market at the same time. It forces us to make some educated guesses when it’s still quite unknown what the result will be. It takes a real leap of faith to say, “We&#8217;re going to build an eyeRover,” or “We&#8217;re going to spend a year building this little plastic robot that runs around so you can train it,” because if I don&#8217;t have it, I can&#8217;t show anybody what I&#8217;ve got. And then you say, “What if the eyeRover is the wrong sort of thing? What if nobody likes it?” or “What&#8217;s the application?” and so forth. You have a constant chicken and egg problem, but that&#8217;s also what makes it so exciting.</p>
<p>I have all these great people that want to work the hard technology problems, the business problems, and fortunately there&#8217;s an appetite for it now, so investors are interested and that enables us to do it.</p>
<p><strong>Audrow Nash:</strong> For those that have less expertise, what would be some ways that they can get involved, learn more and eventually contribute to this technology?</p>
<p><strong>Todd Hylton:</strong> Currently the eyeRover is in a closed beta program – we&#8217;ve just got a handful of people using it so we can get feedback on what we&#8217;ve got and shake out the bugs that we&#8217;ve missed. But sometime next year it&#8217;ll be possible to buy that computing system from us, the boards and the software and so forth. The eyeRover is mostly 3D printed, so we&#8217;ll just make those files and the parts list available, and you can buy the board and build your own. We&#8217;ll probably put a couple more robotic designs that are 3D printed like that. If people are enthusiastic about it and have access to some resources like a 3D printer (and of course you order 3D printed parts online), then that&#8217;s one easy way to get going. You still need some degree of expertise in computers and to use the board and change things on it. But it&#8217;s a Linux operating system; you basically turn it on, you plug the robot into your monitor and keyboard, and the screens come up. It looks just like your desktop, so it&#8217;s not nearly as intimidating as it used to be.</p>
<p><strong>Audrow Nash:</strong> Fpr Brain Corp, what is your future direction and some of your future goals?</p>
<p><strong>Todd Hylton:</strong> It&#8217;s pretty clear on the technical side what we&#8217;re doing for the next year, and it&#8217;s pretty ambitious. We’ve got lots of developments going on and new hardware, new learning algorithms, APIs for developers. On the business side we are just breaking out box, so we are talking to a lot of people, and we need to refine our business model. We were a technology vendor essentially, but there are different ways to do that. How do you capture it in such a way that you provide the best value to the customer, but you also make money on it? In order to do what we really want, we need to be someday a really big tech company. So we&#8217;ve got to figure out a business model that makes it possible for that to happen.</p>
<p><strong>Audrow Nash:</strong> Wrapping up, what do you think is the future of robotics?</p>
<p><strong>Todd Hylton:</strong> Robotics is always the technology that&#8217;s just around the corner and never quite gets here. That says to me that it&#8217;s hard. You can ask yourself whether now is the time or not, but there are certain things that suggest that maybe now <em>is</em> the time, and of course if I didn&#8217;t believe it I wouldn’t be doing what I&#8217;m doing. On the one hand there is the explosion in low cost computing hardware – it&#8217;s gotten really cheap thanks to Moore&#8217;s Law. And that&#8217;s going to continue for a while so we&#8217;re going to get better and cheaper computers, and maybe the neuromorphic stuff will come along, too, and that will be a big tech enabler.</p>
<p>There has been a huge amount of work in neural nets, AI, and machine learning over the past three decades. It really hasn&#8217;t had much of an impact on robotics yet, but a lot of people know how to do that now. There are a lot of tools out there, and people are trained in it so you can hire them. That&#8217;s a definite tech enabler for robotics, too, that in the past hasn’t been as prominent as it is now.</p>
<p>On the economics side are the big tech companies, the Intels and Qualcomms and Googles of the world. They&#8217;re looking for the next big thing and they can&#8217;t avoid robotics. Everybody says we&#8217;ve got to have robots to take care of old people, and I will be one soon enough. And it&#8217;s <em>true</em>. We really do need them. There is going to be a huge demand if we can get the technology and the industry structured appropriately in time. That&#8217;s why I&#8217;m bullish on it and I think it is a good time for robotics. Another important thing is that we&#8217;ve done a lot of work studying the brain lately, and although we are never going to put a mouse brain on a robot, knowing something about how brains work is really important for giving us inspiration for how to do it in a different kind of technology, like a computing technology. So that’s also why I think it’s a great time.</p>
<p><strong>Audrow Nash:</strong> Thank you.</p>
<p><strong>Todd Hylton:</strong> Thank you.</p>
<p><em>All audio interviews are transcribed and edited for clarity with great care, however, we cannot assume responsibility for their accuracy.</em></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/303394011-robotspodcast-robots-bstem.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Software engineering principles</title>
		<link>https://robohub.org/software-engineering-principles/</link>
		
		<dc:creator><![CDATA[Robots for Roboticists]]></dc:creator>
		<pubDate>Wed, 15 Apr 2015 21:26:09 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/software-engineering-principles/</guid>

					<description><![CDATA[<p>Hi all I have often thought about what the proper software methodology should be for the various robots that I build. My thoughts have evolved over time as I have seen these tool work. I do not have any formal software engineering training, however these are things that I have seen, heard, read, etc.. that [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://robotsforroboticists.com/software-engineering-principles/" data-wpel-link="external" target="_blank">Software Engineering Principles</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://robotsforroboticists.com/" data-wpel-link="external" target="_blank">Robots For Roboticists</a>.</p>]]></description>
										<content:encoded><![CDATA[<img decoding="async" src="http://robohub.org/wp-content/uploads/2015/04/coding-425x283.png" alt="coding" width="425" height="283" class="alignleft size-medium wp-image-48411" srcset="https://robohub.org/wp-content/uploads/2015/04/coding-425x283.png 425w, https://robohub.org/wp-content/uploads/2015/04/coding-450x300.png 450w, https://robohub.org/wp-content/uploads/2015/04/coding.png 900w" sizes="(max-width: 425px) 100vw, 425px" />
<p>I have often thought about what the proper software methodology should be for the various robots that I build. My thoughts have evolved over time as I have seen these tool work. While I do not have any formal software engineering training, these are the common principles that I have seen, heard, read, etc. that I believe in (at 2am while I write this).<span id="more-47939"></span></p>
<div style="clear:both"></div>
<p><em>Disclaimer: Most of the suggestions here have come from other sources. Please check out the links attached for more information.</em></p>
<p>I will start with how to write code, since that is the basis of everything else. After that we will move into the software engineering infrastructure needed to make the software work properly.</p>
<div style="clear:both"></div>
<h2>General Programming Rules</h2>
<p>Without having basic rules that you follow when coding, your code is doomed to fail and be unreliable. Everything else is built upon this. Many people start programming and want to use crazy template magic where everything inherits something else, however you must STOP and write simple code that is easy to understand and test.</p>
<ul>
<li><strong>Keep control structures simple</strong> – Limit your branching, don’t have long nested <em>if, case, and loop</em> statements, no recursive magic.</li>
<li><strong>Endless loops</strong> – Do not use boundless loops unless you really want to be stuck there forever (such as the main loop). Everything else must have an upper/lower bound for exiting the loop. Think more about <em>for</em> loops than <em>while</em> loops.</li>
<li><strong>No dynamic memory</strong> – Forget that <em>malloc</em> exists. It can cause programs to act differently at each run time, and can also add memory leaks that can be hard to detect.</li>
<li><strong>asserts</strong> – Asserts can help you to enforce that the proper thing is helping in each function. I generally do not like the default assert functions that simply cause an exit; sometimes that is appropriate, but in many cases you should try recovering from the error instead of just exiting. You need to evaluate what is the safer approach in your application.</li>
<li><strong>Keep scope</strong> – Try to assign and initialize variables, structures, etc. in as small a scope as possible. This includes limiting your usage of global variables.</li>
<li><strong>Pointers</strong> – Limit your use of pointers when this is easily possible. You should really avoid multiple levels of pointers. They can be very confusing to follow and lead to all sorts of problems if you reference memory addresses that you should not be touching.</li>
<li><strong>Check return value from all (non void) functions</strong> – If a function can (and should be able to) return an error value, make sure to catch it and act on it. It can also be good to check the bounds of a value returned instead of blindly trusting it.</li>
<li><strong>Turn on all compiler warnings</strong> – So you catch things early. This is especially important when formatting text, working with memory, and when bit banging.</li>
<li><strong>Use parentheses to control order of operations</strong> – I have seen many people assume or forget about the proper order of operations. Using parentheses can clarify and enforce the desired result.</li>
<li><strong>Hard coded number</strong> – Please use variables for any value that might need to be changed by a programmer. If you have an even slightly non-obvious number, include a comment about the source of that number and how to derive it.</li>
<li><strong>Preprocesor</strong> – Limit the preprocessor to “simple” things, such as <em>#define</em> and <em>#if</em>. Using complex macros can lead to hard-to-understand code, poor portability, and a increased probability of bugs.</li>
<li><strong>Standards</strong> – Keep your code consistent. This includes naming, white space, and where your curly braces go. This makes it easier to follow the code. If you are editing existing code, use the format of the existing code.</li>
<li><strong>Sleep with <em>noop’s</em> or empty <em>for</em> loops</strong> – These should be avoided since they will run differently on different systems. This is primarily for embedded systems.</li>
<li><strong>Document your code</strong> – Need I say more?</li>
</ul>
<p><strong>Helpful links:</strong><br />
<a href="http://www.eetindia.co.in/ARTICLES/1999DEC/PDF/EEIOL_1999DEC01_EMS_TA_1.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Rules for defensive C programming</a><br />
<a href="http://spinroot.com/gerard/pdf/P10.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The Power of Ten – Rules for Developing Safety Critical Code</a><br />
<!--Pitfalls for Real-Time Software Developers, <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.133.761&#038;rep=rep1&#038;%23038;type=pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[Part 1]</a> <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.122.4906&#038;rep=rep1&#038;%23038;type=pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[Part 2]</a>--></p>
<div style="clear:both"></div>
<h2>Software Repositories</h2>
<p>Having a code repo should be a given for every programmer and programming team. There are many free tools available, so there is no excuse to not use them.</p>
<p>Having a software repository lets you save your code at various points so that you can roll back to prior working versions. Repositories also let you log what was changed in each file and by whom. These tools are a great way to share code with a team &#8211; there is no need to email code back and forth. You can also put documentation in the repo so that is is always available.</p>
<p>There are many options to choose, from cvs, svn, mercurial, git, bitkeeper, etc. Just pick one!</p>
<p>Lately I have been using a hosted repo service called <a href="http://github.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">github.com</a> &#8211; I like all of the tools that are packaged with git on the website. <a href="https://bitbucket.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">bitbucket.org</a> is another similar option.</p>
<p>I generally like to create repositories with the following directories in the root directory:</p>
<ul>
<li><strong>bin</strong> – A place to put all of the binaries after they are compiled. By default this directory should have nothing checked into the repository.</li>
<li><strong>config</strong> – If I have lots of config files I will put them all in this directory.</li>
<li><strong>doc</strong> – Documentation for the system (datasheets, diagrams, notes, etc..)</li>
<li><strong>externals</strong> – Source code and libraries from outside parties (ie. you did not write them)</li>
<li><strong>includes</strong> – Header files that other multiple programs want access to at compile time</li>
<li><strong>libs</strong> – A place to put all of the libraries after they are compiled. By default this directory should have nothing checked into the repository.</li>
<li><strong>src</strong> – This is where all of the code we write should live.</li>
<li><strong>tools</strong> – This is for random “tools” that do not fit anywhere else.</li>
</ul>
<p>In addition to the directories above, I will usually put the main make file for the project and a README in the root directory.</p>
<p><strong>Links:</strong><br />
<a href="http://robotsforroboticists.com/repos/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Software repositories or just plain repo</a></p>
<div style="clear:both"></div>
<h2>Bug/Issue tracking</h2>
<p>Having a central database to track bugs is very important for developing great code that runs bug free. This lets anyone who identifies a bug to report it in such a way that it does not get lost. Just telling the developer or emailing them is not sufficient. People forget things easily. Ideally, you do not want the developer to close a bug; you want somebody to report the bug, the developer to fix it, and then the original person who identified the bug verify that it was properly fixed.</p>
<p>A bug report needs three things:</p>
<ol>
<li>What you expected to happen</li>
<li>What did happen</li>
<li>Steps to reproduce observed behavior (ie bug). Try to minimize the number of steps needed to reproduce error. Include versions of code that you are using.</li>
</ol>
<p><strong>Links:</strong><br />
<a href="http://www.joelonsoftware.com/articles/fog0000000029.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Painless Bug Tracking</a></p>
<div style="clear:both"></div>
<h2>Automated Testing</h2>
<p>Each of your processes/functions should have a set of tests (often called “unit tests”) performed on them to verify functionality. These tests make sure that functions work with various input extremes and combinations. Ideally you should have a test for each possible control path within a function.</p>
<p>For example if you are testing a “sum(number1, number2)” function, you can have the following test file:</p>
<pre>int main () {
assert( 2 = sum(1,1));
assert( 0 = sum(-1,1));
assert( NULL = sum(1,NULL)); // or whatever you want it to be doing…
assert( 0 = sum(0,0));
assert( 1999998 = sum(999999,999999));
assert( 5 = sum(4.2,1)); // assuming integers and that floats are rounded.

RETURN (TRUE);
}
</pre>
<p><em>In this example assert will print an error message about where it failed and exit. (This is just my quick example, and can definitely be expanded and improved. It can also be changed to fail at compile time so that you do not need to “run” it.)</em></p>
<div style="clear:both"></div>
<h2>Automatic (Daily) build system</h2>
<p>Having a build server that builds every time somebody commits code, or at minimum, every night, is valuable for identifying inadvertent bugs introduced into your system and automatically running your tests.</p>
<p>Often you will make a change to one module that will cause another module to fail. But as developers we get focused on our modules and tend to not try recompiling all of the code to make sure that we did not break anything. It is always better to find out you broke something earlier than later.</p>
<p>Certain things tend to cause other modules to break more than others. For example making a change to a widely used header file or message definition file can affect other items.</p>
<p>This also makes programmers only commit code that compiles to the repo and not broken code. If they commit broken code the build tools can/should send out emails to notify people that the build failed (and whose fault it was).</p>
<p>You can either just make a quick script to check out the repo, build it, parse the output and email the results; or you can get a proper build system such as <a href="https://jenkins-ci.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Jenkins</a>. Generally using somebody else’s product will be more reliable and a better use of your time.</p>
<p><strong>Links:</strong><br />
<a href="http://www.joelonsoftware.com/articles/fog0000000023.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Daily Builds Are Your Friend</a></p>
<div style="clear:both"></div>
<h2>Code Reviews</h2>
<p>Code reviews are tough, but they are also one of the best ways to reduce the number of bugs in a piece of software. The traditional code review &#8211; where a person gets up and talks others in the room through the code (that the people have never seen before) &#8211; DOES NOT WORK! This might be good for getting people familiar with the program&#8217;s operation, but it is not the best way to do a code review and find problems.</p>
<p>To do a code review you should have the programmer send a review request to 1-3 other software engineers. The review request should have an overview of the code, a flowchart, and directions to access the code. The number of engineers and the experience level of those engineers should be based on how critical the code it. Each reviewer should:</p>
<ol>
<li>Review the code (obviously) – Don’t dwell on style, you have better things to do with your time.</li>
<li>Develop a list of questions about the code</li>
<li>Write some tests and make sure they pass (these can be committed to always run in the nightly build).</li>
</ol>
<p>Some of things reviewers should watch out for are when reviewing code before a large review:</p>
<ul>
<li>Does the code do what it is supposed to do (and not do what it is not supposed to do)?</li>
<li>Should the code/function be written in a more efficient manner?</li>
<li>Is the control flow simple/clean/good (if, else, return, etc..)?</li>
<li>Do switch statements have a default catch all?</li>
<li>Is the code commented adequately?</li>
<li>Are variables declared at the proper scope (minimizing globals)?</li>
<li>Are there memory leaks?</li>
<li>What happens if things return NULL?</li>
<li>Error/Exception handling</li>
<li>Buffer overflows (doing raw things with char’s, int’s, etc.. memory locations)</li>
<li>Pointer and pointer based math</li>
<li>Array indexing</li>
<li>Closing all handles (files, ports, etc..)</li>
<li>Macro usage</li>
<li>64bit vs 32 bit modifications</li>
<li>Multithreading (is it needed?, number of threads, race points, deadlocks, data passing, priority inversion, etc.)</li>
<li>Operators (precedence and proper usage [ &amp; vs &amp;&amp;, = vs == ])</li>
<li>If input items from users and functions is checked before being used</li>
</ul>
<p>(Did you notice how this list is similar to the good programming practices above?)</p>
<p>After doing the above steps it is now OK to hold the big meeting where people sit down and walk through and review the code; although this is not strictly necessary.</p>
<p>Reviewing code can be hard. Getting your programmers used to reading code and reviewing it will help strengthen their own coding. It can also be useful to have dedicated QA people who review code.</p>
<p><strong>Links:</strong><br />
<a href="http://betterembsw.blogspot.com/2011/11/embedded-system-code-review-checklist.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Embedded System Code Review Checklist</a><br />
<a href="https://msdn.microsoft.com/en-us/library/bb871031.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft: Best Practices: Code Reviews</a></p>
<div style="clear:both"></div>
<h2>Build System</h2>
<p>You should be using a build tool so that you are not manually compiling each file. Probably the most common one is <a href="http://en.wikipedia.org/wiki/Make_%28software%29" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">make</a>.</p>
<p>Each make file should have at minimum the following directives:</p>
<ul>
<li><strong>all</strong> – Build all of the production code</li>
<li><strong>clean</strong> – Deletes the binary and object files. This lets the next build be completely clean.</li>
<li><strong>install</strong> – Installs the binaries and libraries into the proper location. This can be a process such as:
<ol>
<li>Copy old binary to &lt;binaryName&gt;_&lt;archivedDateTime&gt;</li>
<li>Copy new binary to location with active processes</li>
</ol>
</li>
<li><strong>test</strong> – Builds a set of unit/system tests that verify operation and make sure bugs were not introduced.</li>
</ul>
<p>I believe you should be able to build, install, test, or clean your entire system with one command. As such I will normally create a make file for each process, and then create one master make file that calls all of the individual make files. Having a single make file that can build everything is good for installing a new system and makes setting up the nightly build easier.</p>
<div style="clear:both"></div>
<h2>Summary</h2>
<ul>
<li>Write good code.</li>
<li>Use a repository service (assuming it is not super sensitive data) such as <a href="https://github.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">github</a> or <a href="https://bitbucket.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">bitbucket</a>. That gives you the repo, the issue tracking, and the ability to easily do code reviews.</li>
<li>Setup a server that builds your repository and runs your tests, at least once a day.</li>
</ul>
<p>Do you have other favorite tools to make your software more reliable? Please leave comments below.</p>
<p><em>Main image based on sample code from wikipedia and hammer from pixabay.com/.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ep.178: Speech-Based Emotion Recognition, with  Christina Brester  </title>
		<link>https://robohub.org/robots-speech-based-emotion-recognition/</link>
		
		<dc:creator><![CDATA[Audrow Nash]]></dc:creator>
		<pubDate>Fri, 20 Mar 2015 06:20:27 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[AI-cognition]]></category>
		<category><![CDATA[healthcare]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/robots-speech-based-emotion-recognition/</guid>

					<description><![CDATA[In this episode, Audrow Nash interviews Christina Brester, from the Siberian State Aerospace University, about her research on a method to identify emotional state from speech.]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2015/03/emotion_robots3.jpg"/><img decoding="async" class="alignnone size-full wp-image-47424" src="http://robohub.org/wp-content/uploads/2015/03/emotion_robots2.jpg" alt="emotion_robots2" width="757" height="576" srcset="https://robohub.org/wp-content/uploads/2015/03/emotion_robots2.jpg 757w, https://robohub.org/wp-content/uploads/2015/03/emotion_robots2-425x323.jpg 425w, https://robohub.org/wp-content/uploads/2015/03/emotion_robots2-394x300.jpg 394w" sizes="(max-width: 757px) 100vw, 757px" />
<p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/303392963&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false" width="100%" height="166" frameborder="no" scrolling="no"></iframe></p>
<p>In this episode, Audrow Nash interviews Christina Brester, from the Siberian State Aerospace University, about her research on a method to identify emotional state from speech. This method performs speech analysis with a self-adaptive, multi-objective, genetic algorithm for feature selection and uses a neural network to classify those features. In this interview, we’ll discuss exactly what that means, as well as the implications and future of this research.</p>
<p><span id="more-47415"></span></p>
<p>&nbsp;</p>
<p><strong>Christina Brester</strong></p>
<img decoding="async" class="alignleft wp-image-4889 size-thumbnail" src="http://www.robotspodcast.com/podcast/uploaded_images/DSC00902-1-150x150.jpg" alt="SONY DSC" width="150" height="150" />
<p>Christina Brester completed her bachelor’s (2012) and master’s degree (2014) at the Siberian State Aerospace University (SibSAU) in Krasnoyarsk, Russia. Her master’s thesis was on Speech-based Emotion Recognition.</p>
<p>Currently, Brester is a PhD student in Computer Science and Engineering at SibSAU. Her research interests include evolutionary computation, neuro-evolutionary algorithms, machine learning, and speech analysis.</p>
<p>&nbsp;</p>
<p><strong>Links:</strong></p>
<ul>
<li><a class="mp3" href="http://feeds.soundcloud.com/stream/303392963-robotspodcast-robots-speech-based-emotion-recognition.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (10.5 MB)</a></li>
<li><a class="rss" title="Subscribe to Robots podcast RSS feed using iTunes" href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using iTunes</a></li>
<li><a class="rss" title="Subscribe to Robots podcast RSS feed using other feed readers" href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a class="www" href="http://www.lrec-conf.org/proceedings/lrec2014/summaries/341.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Link to One of Brester’s Related Publications</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://feeds.soundcloud.com/stream/303392963-robotspodcast-robots-speech-based-emotion-recognition.mp3" length="0" type="audio/mpeg" />

			</item>
		<item>
		<title>Quadrocopter failsafe algorithm: Recovery after propeller loss</title>
		<link>https://robohub.org/quadrocopter-failsafe-algorithm-recovery-after-propeller-loss/</link>
		
		<dc:creator><![CDATA[Mark Mueller]]></dc:creator>
		<pubDate>Tue, 04 Mar 2014 14:19:05 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[AUV]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[ETH Zurich]]></category>
		<category><![CDATA[Flying Machine Arena]]></category>
		<category><![CDATA[IDSC]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[Raffaello D'Andrea]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Swiss Robots]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=23507</guid>

					<description><![CDATA[UPDATE 04/03/2014: In this video update, we show that a quadrocopter can be safely piloted by hand after a motor fails, without the aid of a motion capture system. This follows our previous video, where we demonstrated how a complete propeller failure can be automatically detected, and that a quadrocopter can still maintain stable flight [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="size-full wp-image-23522" alt="Drone-Failsafe-Algorithm" src="http://robohub.org/wp-content/uploads/2013/12/Drone-Failsafe-Algorithm1.jpg" width="900" height="559" srcset="https://robohub.org/wp-content/uploads/2013/12/Drone-Failsafe-Algorithm1.jpg 900w, https://robohub.org/wp-content/uploads/2013/12/Drone-Failsafe-Algorithm1-300x186.jpg 300w, https://robohub.org/wp-content/uploads/2013/12/Drone-Failsafe-Algorithm1-483x300.jpg 483w" sizes="(max-width: 900px) 100vw, 900px" />
<p><span style="background-color: yellow;">UPDATE 04/03/2014:</span></p>
<p>In this video update, we show that a quadrocopter can be safely piloted by hand after a motor fails, without the aid of a motion capture system. This follows our previous video, where we demonstrated how a complete propeller failure can be automatically detected, and that a quadrocopter can still maintain stable flight despite the complete loss of a propeller. <span id="more-23507"></span></p>
<p>In the earlier video, we relied on an external motion capture system to measure the quadrocopter&#8217;s position and orientation.  By moving more of the algorithm onto the vehicle, the quadrocopter can now be piloted by hand after the failure. The algorithm is executed on the quadrocopter&#8217;s onboard micro-controller, and the only sensors required are the quadrocopter&#8217;s angular rate gyroscopes. We use blinking LEDs, mounted on the quadrocopter&#8217;s arms, to indicate a virtual yaw angle, so that the pilot can control the vehicle with the same remote control commands after the failure. As an alternative to the LED system, an onboard magnetometer could be used to track the vehicle&#8217;s yaw angle. Alternatively, by using more sophisticated algorithms, the system could be made to work using only the rate gyroscopes.</p>
<div class="keep-aspect"><iframe title="Onboard quadrocopter failsafe: flight after actuator failure" width="500" height="281" src="https://www.youtube-nocookie.com/embed/ek0FrCaogcs?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></div>
<p></p>
<p><strong>ORIGINAL STORY 02/12/2013</strong></p>
<p>The video in this article shows an automatic failsafe algorithm that allows a quadrocopter to gracefully cope with the loss of a propeller. The propeller was mounted without a nut, and thus eventually vibrates itself loose. The failure is detected automatically by the system, after which the vehicle recovers and returns to its original position. The vehicle finally executes a controlled, soft landing, on a user&#8217;s command.</p>
<div class="keep-aspect"><iframe title="Quadrocopter failsafe algorithm: recovery after propeller loss" width="500" height="281" src="https://www.youtube-nocookie.com/embed/bsHryqnvyYA?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></div>
<p></p>
<p>The failsafe controller uses only hardware that is readily available on a standard quadrocopter, and could thus be implemented as an algorithmic-only upgrade to existing systems. Until now, the only way a multicopter could survive the loss of a propeller (or motor), is by having redundancy (e.g. hexacopters, octocopters). However, this redundancy comes at the cost of additional structural weight, reducing the vehicle&#8217;s useful payload. Using this technology, (more efficient) quadrocopters can be used in safety critical applications, because they still have the ability to gracefully recover from a motor/propeller failure.</p>
<img decoding="async" class="size-full wp-image-23551" alt="Failsafe_algorithm_sequence" src="http://robohub.org/wp-content/uploads/2013/12/Failsafe_algorithm_sequence.jpg" width="940" height="505" srcset="https://robohub.org/wp-content/uploads/2013/12/Failsafe_algorithm_sequence.jpg 940w, https://robohub.org/wp-content/uploads/2013/12/Failsafe_algorithm_sequence-300x161.jpg 300w, https://robohub.org/wp-content/uploads/2013/12/Failsafe_algorithm_sequence-500x268.jpg 500w" sizes="(max-width: 940px) 100vw, 940px" />
<div style="clear: both;"></div>
<div class="minitext">(A) shows the quadrocopter in normal operation. In (B) the propeller detaches due to vibrations, and the quadrocopter starts pitching over in (C) &#8211; (E). In (F) the vehicle has regained control, and is flying stably.</div>
<p>The key functionality of the failsafe controller is a novel algorithm that I developed as part of my doctoral research at the Institute for Dynamic Systems and Control at ETH Zurich. This new approach allows such a vehicle to remain in flight despite the loss of one, two, or even three propellers. Having lost one (or more) propellers, the vehicle enters a continuous rotation &#8212; we then control the direction of this axis of rotation, and the total thrust that the vehicle produces, allowing us to control the vehicle&#8217;s acceleration and thus position.</p>
<p>Even if the vehicle can no longer produce sufficient thrust to support its own weight, this technology would still be useful: one could, for example, try to minimize the multicopter&#8217;s velocity when it hits the ground, or steer the multicopter away from dangerous situations such as water, or people on the ground.</p>
<p>This control approach can also be applied to design novel flying vehicles &#8212; we will be releasing some related results soon.</p>
<p>This technology is patent pending.</p>
<p>For more information, have a look at the <a href="http://flyingmachinearena.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Flying Machine Arena website</a>, <a href="http://www.idsc.ethz.ch/Research_DAndrea/Flying_Machine_Arena" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">the IDSC research page</a>, or just post your question in the comments below.</p>
<p>&nbsp;</p>
<div></div>
<p><em>If you liked this article, you may also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/three-new-quadrotor-videos-demonstrate-agile-control-and-the-power-of-machine-learning/" data-wpel-link="internal">Three new quadrotor videos demonstrate agile control and the power of machine learning</a></li>
<li><a href="http://robohub.org/live-at-ted-global-2013-tweets-photos-and-more-for-quadrotor-fans/" data-wpel-link="internal">Live at TED Global 2013: Tweets, photos and video for quadrotor fans</a></li>
<li><a href="http://robohub.org/ted-global-raffaello-dandrea-and-his-quadrocopters-machine-athleticism/" data-wpel-link="internal">Behind the scenes at TED Global: Raffaello D’Andrea and team demo amazing quadrotor “athletes”</a></li>
<li><a href="http://robohub.org/quadrocopters-learn-from-prior-experience-to-improve-slalom-flying/" data-wpel-link="internal">Quadrocopters learn from prior experience to improve slalom flying</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a href="http://eepurl.com/t-UEf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Transformational robotics and its application to agriculture</title>
		<link>https://robohub.org/transformational-robotics-and-its-application-to-agriculture/</link>
		
		<dc:creator><![CDATA[John Payne]]></dc:creator>
		<pubDate>Fri, 25 Oct 2013 19:11:41 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[actuation]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[environment & agriculture]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[robohub focus on agricultural robotics]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=19999</guid>

					<description><![CDATA[No, this is not about shapeshifting robots, come to save or destroy Earth. It is about transforming the contexts within which robotic technologies are applied, and about practicing robotics with the intention of bringing about transformational results. In some cases this means finding better ways of accomplishing the same ends as before. In other cases [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="size-full wp-image-21955" alt="The mechanical arm" src="http://robohub.org/wp-content/uploads/2013/10/robot_hand_Butterfly.jpg" width="851" height="564" srcset="https://robohub.org/wp-content/uploads/2013/10/robot_hand_Butterfly.jpg 851w, https://robohub.org/wp-content/uploads/2013/10/robot_hand_Butterfly-300x198.jpg 300w, https://robohub.org/wp-content/uploads/2013/10/robot_hand_Butterfly-452x300.jpg 452w" sizes="(max-width: 851px) 100vw, 851px" />
<p>No, this is not about <a title="Wikipedia list of animated Transformer characters" href="http://en.wikipedia.org/wiki/List_of_Transformers:_Animated_characters" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">shapeshifting robots</a>, come to save or destroy Earth. It is about transforming the contexts within which robotic technologies are applied, and about practicing robotics with the intention of bringing about transformational results. In some cases this means finding better ways of accomplishing the same ends as before. In other cases it means pursuing ends that were previously unachievable. It hinges on the recognition that <a title="Revolutionary Robotics by Andrea Colon on Prezi" href="http://prezi.com/hnmguwe5-om_/revolutionary-robotics/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">robotics is a revolutionary development</a>, on the order of <a title="Google Books - Bertrand Russell - Beginnings of Scientific Technique - page 102" href="http://books.google.com/books?id=kA1_EDa0_BwC&amp;pg=PA102&amp;lpg=PA102&amp;dq=%22fundamental+advances%22+fire+writing&amp;source=bl&amp;ots=CGhnUeDxzA&amp;sig=JbMEyRQfxg0PWvug2B-im64Iz4o&amp;hl=en&amp;sa=X&amp;ei=NrBJUtvjOcXX2AWDsIG4CA&amp;ved=0CCsQ6AEwAA#v=onepage&amp;q=%22fundamental%20advances%22%20fire%20writing&amp;f=false" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">fire or writing</a>, with the potential to transform everything it touches.<span id="more-19999"></span></p>
<div class="sprfocus5"></div>
<p>We can already see some early examples of how transformational robotics can be. In medicine, automated lab equipment long ago made the <a title="Wikipedia article on the comprehensive metabolic panel" href="http://en.wikipedia.org/wiki/Comprehensive_metabolic_panel" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">comprehensive metabolic panel</a> screening test affordable, and <a title="Wikipedia article on robotic surgery" href="http://en.wikipedia.org/wiki/Robotic_surgery" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">surgical assistant robots</a> have shown considerable promise. In aviation, modern airliners are <a title="Wikipedia article on flight management system" href="http://en.wikipedia.org/wiki/Flight_Management_System" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">capable of flying themselves</a> from takeoff to touchdown, and <a title="Wikipedia article on unmanned combat air vehicles" href="http://en.wikipedia.org/wiki/Unmanned_combat_air_vehicle" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">remotely piloted or autonomous aircraft</a> remove <a title="Wikipedia article on forces due to acceleration" href="http://en.wikipedia.org/wiki/G-force" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">biological constraints on maneuvers</a>. In space, were it not for robotics, <a title="Wikipedia category: unmanned spacecraft" href="http://en.wikipedia.org/wiki/Category:Unmanned_spacecraft" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">most of what we know about the solar system</a>, including our nearest planetary neighbors, Venus and Mars, would be limited to what we could learn through the use of telescopes, and there would be no serious talk of mining asteroids.</p>
<p>Before jumping in to how this applies to agriculture, allow me to make one additional point about transformational robotics in general, which is that you can ordinarily expect a transformational application to make more intensive use of technology than an application that simply automates some familiar process or procedure – being <a title="The Impact of Mechatronic Complexity" href="http://youtu.be/tJhg9vVsYHY" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">mechatronically more complex</a>, or expending <a title="Wikipedia article: computational complexity theory" href="http://en.wikipedia.org/wiki/Computational_complexity_theory" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">more cpu cycles per unit of physical energy used</a>, or both. This is because, in transformational applications, the machines will typically be taking more into account and choosing from a larger, more flexible repertoire of deft actions (precise in context, although not necessarily especially precise in the sense of repeatability).</p>
<p>The key to both understanding and making a case for transformational robotics (in pursuit of private investment or government funding) is to focus on the goals to be served, rather than on current approaches to achieving them. (‘People have to eat, but we also need to preserve and improve fertile land and provide space and habitat for native species.’ versus ‘How can farming as we know it be made more efficient?’) Those current approaches may be ruts, out of which the transformational application of robotic technologies can lift us. In this regard, it is important to include goals we wish to serve which are currently being ignored or given short shrift, whether because no business case can be made for them at present, or because the cost would be prohibitive. Much of the added value of transformational robotics stems from serving ends to which we have previously given little more than lip-service, often for essentially zero additional cost.</p>
<p>Now let&#8217;s consider the application of robotics to agriculture, beginning with the current state of the art. The most common use of automation in agribusiness has traditionally been in processing plants, after the food has left the farm, although more and more such operations are being installed <a title="USDA - Alternative Farming Systems Information Center - List of Alternative Crops and Enterprises for Small Farm Diversification" href="http://www.nal.usda.gov/afsic/pubs/altlist.shtml" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">on the farm</a>. For plant products and eggs this begins with cleaning and sorting, and any sort of product may be automatically packaged or bottled and packed for shipment.</p>
<img decoding="async" class="size-full wp-image-21956" alt="DeLaval_milking_station" src="http://robohub.org/wp-content/uploads/2013/10/DeLaval_milking_station.jpg" width="715" height="525" srcset="https://robohub.org/wp-content/uploads/2013/10/DeLaval_milking_station.jpg 715w, https://robohub.org/wp-content/uploads/2013/10/DeLaval_milking_station-300x220.jpg 300w, https://robohub.org/wp-content/uploads/2013/10/DeLaval_milking_station-408x300.jpg 408w" sizes="(max-width: 715px) 100vw, 715px" />
<div class="minitext">DeLaval Milking Station. Photo credit: High Contrast, via <a href="http://creativecommons.org/licenses/by/2.0/de/deed.en" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Wikimedia Commons</a>.</div>
<p>On dairy farms, robotic milking machines are becoming increasingly common, essentially allowing the cows to milk themselves. In the fields, new tractors now commonly come with GPS-based <a title="recent PrecisionAg articles on automated steering" href="http://www.precisionag.com/guidance/steering/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">automated steering</a>, allowing them to make more efficient use of the fuel they burn by reducing overlap from one pass to the next and to preserve soil conservation measures, such as terraces, by following contours more accurately. <a title="Wikipedia article on Combine Harvesters" href="http://en.wikipedia.org/wiki/Combine_harvester" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Combine harvesters</a> may have both automated steering and <a title="description of John Deere&#039;s automated ground speed system in sales manual" href="http://salesmanual.deere.com/sales/salesmanual/en_NA/combines_headers/attachments/combines/cab_controls/harvestsmart_field_install.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">automated ground speed</a>, to keep them working near their peak capacity without pushing material through so quickly that they become clogged. Spraying equipment, whether tractor-mounted or self-propelled, can now meter out fertilizer, pesticides, herbicides, and fungicides, applying more on parts of the field where the need is greater. A recent development is planters that place seeds more deliberately than in the past, achieving a more even stand using less seed.</p>
<img decoding="async" class="size-full wp-image-21553" alt="Vision Robotics Corporation Grapevine Pruner" src="http://robohub.org/wp-content/uploads/2013/10/Vision-Robotics_Grapevine-pruner.jpg" width="715" height="537" srcset="https://robohub.org/wp-content/uploads/2013/10/Vision-Robotics_Grapevine-pruner.jpg 715w, https://robohub.org/wp-content/uploads/2013/10/Vision-Robotics_Grapevine-pruner-300x225.jpg 300w, https://robohub.org/wp-content/uploads/2013/10/Vision-Robotics_Grapevine-pruner-399x300.jpg 399w" sizes="(max-width: 715px) 100vw, 715px" />
<div class="minitext">Grapevine pruner. Photo credit: Vision Robotics Corporation.</div>
<img decoding="async" class="size-full wp-image-21552" alt="Vision Robotics Corporation Orange Harvester" src="http://robohub.org/wp-content/uploads/2013/10/Vision_Robotics-Orange_Harvester.jpg" width="715" height="476" srcset="https://robohub.org/wp-content/uploads/2013/10/Vision_Robotics-Orange_Harvester.jpg 715w, https://robohub.org/wp-content/uploads/2013/10/Vision_Robotics-Orange_Harvester-300x199.jpg 300w, https://robohub.org/wp-content/uploads/2013/10/Vision_Robotics-Orange_Harvester-450x300.jpg 450w" sizes="(max-width: 715px) 100vw, 715px" />
<div class="minitext">Orange harvester. Photo credit: Vision Robotics Corporation.</div>
<p>While perhaps not yet commercially available, automated pruners for vineyards and automated fruit harvesters are in an advanced stage of development, and should soon be commonplace. And last, but far from least, UAVs, commonly known as drones, can make an abundance of valuable information available to farmers, and the business of providing such services is set to take off like a rocket just as soon as the FAA determines that the time is right.</p>
<img decoding="async" class="size-full wp-image-21583" alt="MIT-CSAIL-DRL-Distributed Robotics Garden" src="http://robohub.org/wp-content/uploads/2013/10/MIT-CSAIL-DRL-DRG.jpg" width="700" height="466" srcset="https://robohub.org/wp-content/uploads/2013/10/MIT-CSAIL-DRL-DRG.jpg 700w, https://robohub.org/wp-content/uploads/2013/10/MIT-CSAIL-DRL-DRG-300x199.jpg 300w, https://robohub.org/wp-content/uploads/2013/10/MIT-CSAIL-DRL-DRG-450x300.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" />
<div class="minitext">MIT-CSAIL-DRL-Distributed Robotics Garden. Photo used with permission from Nikolaus Correll.</div>
<p>Next, it&#8217;s time to engage our imaginations, as we consider other ways in which robotics might be applied to agriculture, beginning with the main obstacles. One huge challenge, demanding a great deal of further research, is empowering machines to make sense of complex biological environments. As stated in <a title="WSU news item regarding cooperative human/robot fruit harvesting" href="http://news.cahnrs.wsu.edu/2013/08/28/human-and-robot-team-up-for-high-tech-fruit-harvest/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">a recent news item from Washington State University</a>:</p>
<blockquote><p>When apples are in clusters or obscured by leaves and branches, a robot requires complex algorithms and long computational time to identify them.</p></blockquote>
<p>If this is true of fruit hanging from trees in orchards, more or less in plain sight, it must be even more true of ground-hugging herbaceous plants, the main stems of which may be hidden in deep shade, and still more true when those herbaceous plants occur in polyculture mixtures.</p>
<img decoding="async" alt="Shadow Robot Company - Shadow Hand equipped with BioTac System" src="http://robohub.org/wp-content/uploads/2013/10/Shadow_485.jpg" width="275" height="275" />
<div class="minitext">Shadow Hand equipped with BioTac System. Photo credit: Shadow Robot Company.</div>
<p>Another such challenge is enabling machines to nimbly reach through foliage without damaging it. For any device that isn&#8217;t itself ground-hugging, this is essential for weeding and for planting a second or third crop under an existing canopy of leaves. While much of this work might be accomplished by small devices, moving across the soil surface, there are tasks for which (pruning) and circumstances in which (soggy soil) devices suspended from above the leaf canopy would be more effective. The word ‘nimbly’ suggests both speed and a light, deft touch (sensory-driven precision), and both are intended here. Machines of a scale to support one or more suspended robotic arms, even very light arms, while less massive than most conventional equipment, would still represent a significant investment, and would need to operate quickly to be cost-effective. Quick motion means even quicker electronics to plot paths, gauge the forces needed to produce them, updating these with corrections as deviations are detected, and compensating for environmental factors such as wind-load, slope, the weight of a fruit being picked, and so forth. Quick motion also means being quite certain about the nature of the objects in one&#8217;s immediate vicinity, since they might include livestock, cherished pets, or human beings.</p>
<p>Given solutions to these primary challenges – and autonomous operation – in addition to planting, weeding, and harvesting, robotic machines might track the development of individual plants; detect nutrient deficiencies, toxic conditions, disease, and infestation; selectively prune affected leaves or branches, or selectively remove whole plants; collect plant material for shredding, anaerobic digestion, and/or composting; lay out soil sensors or tubing for drip irrigation; attach vines to elevated supports; employ mechanical methods of pest control and deploy biological pest controls. Beyond this they might also engage in crop development, by collecting pollen from certain plants and applying it to others, and through the collection of seed from plants with preferred characteristics, selecting from those based upon nondestructive testing of individual seeds. They could even monitor and to some extent manage populations of wild animals, such as mice, rabbits, and deer. In principle, there is no farming task which machines could not be made capable of performing.</p>
<p>Patch together enough such capabilities, at reasonable cost, and sooner or later you arrive at a tipping point, beyond which it makes far more sense to think about what you would like to see done, and how robots might be made capable of accomplishing it, than to take the more familiar approach of automating conventional methods. On the other side of this tipping point, agriculture may look very different from how it appears today. If the machines operate autonomously, then one farmer can conceivably have many of them all working at the same time, even working around the clock through the peak workload of the season. If there are many of them, working long hours, they can be smaller, lighter, and slower than conventional equipment, and, partly due to economies of scale in their manufacture, far less costly. If they are smaller, slower, and more numerous, they can take a more detailed approach to manipulating their environments. Given sufficiently detailed manipulations, it becomes possible to adapt the best practices of gardening, applied on a grand scale. Also, given this data/detail-intensive approach, production can be closely linked to changing market conditions, helping to keep the operation profitable.</p>
<p>Besides the needed research mentioned above, the ground floor opportunities in this scenario run the gamut of robotic technologies, from making equipment safely mobile through densely planted fields to sensory hardware, to processors, coprocessors, and algorithms for sorting out the sensory data, to end effector design and capability modeling, to force-control motion planning, actuation, result monitoring, and heuristics, and on and on.</p>
<p>The singular reality that makes such a grand effort more than a fool’s errand is <a title="World Agricultural Equipment Market, Agricultural Machinery Demand to Rise 6.7% Annually Through 2016" href="http://www.redorbit.com/news/business/1112649019/world_agricultural_equipment_market_agricultural_machinery_demand_to_rise_67/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">the scale of agriculture</a>, and its potential to jumpstart a larger, more robust robotics industry, underwriting investments for developments that will enable further transformational robotic applications in other contexts.</p>
<div class="divideronpost"></div>
<p><em>If you liked this article, you may also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/harvey-a-working-robot-for-container-crops/" data-wpel-link="internal">Harvey: A working robot for container crops</a></li>
<li><a href="http://robohub.org/robots-futuredairy/" data-wpel-link="internal">Robots Podcast: FutureDairy</a></li>
<li><a href="http://robohub.org/air-water-energy-and-food-in-a-nutshell-space-exploration-as-driver-for-sustainable-robotic-agriculture/" data-wpel-link="internal">Air, water, energy and food in a nutshell: Space exploration as driver for sustainable robotic agriculture</a></li>
<li><a title="Permanent Link: Robotics and the disruptive transformation of agriculture" href="http://robohub.org/robotics-and-the-disruptive-transformation-of-agriculture/" rel="bookmark" data-wpel-link="internal">Robotics and the disruptive transformation of agriculture</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a href="http://eepurl.com/t-UEf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Up and flying with the AR.Drone and ROS: Handling feedback</title>
		<link>https://robohub.org/up-and-flying-with-the-ar-drone-and-ros-handling-feedback/</link>
		
		<dc:creator><![CDATA[Mike Hamer]]></dc:creator>
		<pubDate>Mon, 01 Jul 2013 14:14:19 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[AR Drone]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=16026</guid>

					<description><![CDATA[This is the third tutorial in the Up and flying with the AR.Drone and ROS series. In this tutorial we will: Learn about the AR.Drone&#8217;s state feedback (and how it is handled by ROS) Learn about the AR.Drone&#8217;s tag detection Program our first ROS nodes: A subscriber and a publisher In the previous tutorials we: Installed ROS, the AR.Drone driver [&#8230;]]]></description>
										<content:encoded><![CDATA[<link href="syntax_highlight.css" rel="stylesheet" media="all" type="text/css" />
<style type="text/css"><!--
.maintext p {
	margin-top: 1em !important;
	margin-bottom: 1em !important;
}
.maintext pre {
	margin-top: 1em !important;
	margin-bottom: 1em !important;
}
.maintext v {
	font-family:monospace !important;
	/*background-color:#EEE;*/
}
.maintext ol li {
	margin-top: 1em !important;
}
.maintext ol li ul {
	margin: 0px !important;
	padding: 0px !important;
}
.maintext ol li ul li{
	margin: 0.5em !important;
}
--></style>
<a href="https://github.com/mikehamer/ardrone_tutorials" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="size-full wp-image-16027" alt="ARDroneSubscribingFeedback" src="http://robohub.org/wp-content/uploads/2013/07/ARDroneHandlingFeedback900400.png" width="216" height="166" /></a>
<div style="clear: both;"></div>
<p>This is the third tutorial in the <em>Up and flying with the AR.Drone and ROS</em> series.</p>
<p>In this tutorial we will:</p>
<ol>
<li>Learn about the AR.Drone&#8217;s state feedback (and how it is handled by ROS)</li>
<li>Learn about the AR.Drone&#8217;s tag detection</li>
<li>Program our first ROS nodes: A subscriber and a publisher</li>
</ol>
<p><span id="more-16026"></span></p>
<p>In the previous tutorials we:</p>
<ol>
<li>Installed ROS, the AR.Drone driver and AR.Drone keyboard controller then flew the AR.Drone using the provided keyboard controller (<a href="/up-and-flying-with-the-ar-drone-and-ros-getting-started/" data-wpel-link="internal">link</a>)</li>
<li>Learned about ROS communication, setup and then flew the AR.Drone using a joystick (<a href="/up-and-flying-with-the-ar-drone-and-ros-joystick-control/" data-wpel-link="internal">link</a>)</li>
</ol>
<p>In the next tutorials, we will:</p>
<ul>
<li>Write a controller to enable tag following</li>
<li>Write a controller for the drone which allows us to control drone velocity, rather than body angle</li>
</ul>
<h2><strong>What you&#8217;ll need for the tutorial</strong></h2>
<ol>
<li>An AR.Drone!</li>
<li>A computer or laptop with WiFi</li>
<li>Linux, either the ARDroneUbuntu virtual machine, or a custom installation</li>
<li>Either the keyboard or joystick controller from the previous tutorials</li>
</ol>
<p>I also assume that you&#8217;ve completed either the <a href="http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-getting-started/" data-wpel-link="internal">keyboard</a> or <a href="http://http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-joystick-control/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">joystick</a> tutorial, which detail how to setup the software, connect to the drone, etc, and provide a method of controlling the AR.Drone from your computer.</p>
<div class="aligncenter" style="background-color: #eee; padding: 5px; margin: 10px; margin-top: 4em; border: 1px solid #666; width: 90%;">
<p style="text-align: center; margin-top: 0; padding-top: 0;"><strong>Warning!</strong></p>
<p>In this tutorial, we will be flying the AR.Drone. <strong>Flying inside can be dangerous</strong>. When flying inside, you should always use the propeller-guard and fly in the largest possible area, making sure to stay away from walls and delicate objects. Even when hovering, the drone tends to drift, so always land the drone if not being flown.</p>
<p style="margin: 0px;">I accept no responsibility for damages or injuries that result from flying the drone.</p>
</div>
<h2><strong>Updating</strong></h2>
<h3>If you have not completed the <a href="http://http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-joystick-control/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">joystick</a> tutorial:</h3>
<p>Please go back and update your installation according to the instructions listed there.</p>
<h3>If you downloaded the ARDroneUbuntu virtual machine:</h3>
<p>To update your installation for this tutorial, click the &#8220;Update Tutorials&#8221; button in the ARDroneUbuntu Virtual Machine</p>
<h3>If you use a custom installation:</h3>
<p>At the terminal, enter the following:</p>
<pre>$ roscd ardrone_autonomy
$ git pull
$ roscd ardrone_tutorials
$ git pull
$ roscd
$ rosmake ardrone_tutorials</pre>
<h2><strong>AR.Drone State Feedback &#8211; A First Look</strong></h2>
<h3>Preparation:</h3>
<ol>
<li>Find the Orange-[Green|Yellow|Blue]-Orange tag that came with the AR.Drone.</li>
<li>In your ARDroneUbunutu virtual machine (or custom installation), open a new terminal window and type:
<pre>$ roscd ardrone_tutorials/launch</pre>
</li>
<li>If you intend to fly with the keyboard, type:
<pre>$ geany keyboard_controller_with_tags.launch</pre>
<p>Otherwise, if you intend to fly with the joystick:</p>
<pre>$ geany joystick_controller.launch</pre>
</li>
<li>Now find the line:
<pre>&lt;param name="enemy_colors" value="3" /&gt;</pre>
</li>
<li>And change the value to &#8220;1&#8221;, &#8220;2&#8221;, or &#8220;3&#8221;, depending on whether your tags are Orange-Green-Orange, Orange-Yellow-Orange or Orange-Blue-Orange respectively.</li>
</ol>
<h3>Tag Detection and Feedback Data</h3>
<ol>
<li>Run the system (but don&#8217;t takeoff with the drone!) using either the <a href="http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-getting-started/" data-wpel-link="internal">keyboard_controller</a>:
<pre>$ roslaunch ardrone_tutorials keyboard_controller_with_tags.launch</pre>
<p>or the <a href="http://http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-joystick-control/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">joystick_controller</a>:</p>
<pre>$ roslaunch ardrone_tutorials joystick_controller.launch</pre>
</li>
<li>Open a new terminal window and type:
<pre>$ rostopic list</pre>
<ul>
<li>This list shows all the active ROS &#8220;topics&#8221; used for communication to and from the AR.Drone</li>
</ul>
</li>
<li>In the same terminal window, type:
<pre>$ rostopic echo /ardrone/navdata</pre>
<ul>
<li>This echoes the AR.Drone&#8217;s feedback data into the terminal window.</li>
<li>Note that many items will be zero because the AR.Drone is not yet flying</li>
</ul>
</li>
<li>Move the Orange-Color-Orange tag in front of the AR.Drone&#8217;s front camera. It should be detected, and the console output (from the previous step), should update to reflect this detection.
<ul>
<li>Note the tags_xc and tags_yc values. These represent the x/y location of the tag within the image.</li>
<li>The video display window will show a dot at these coordinates, and the distance measurement above the dot</li>
</ul>
</li>
<li>Now place the tag somewhere that can be seen by the flying drone. After this is done, take off with the drone.</li>
<li>Watch the console output. What happens if you fly forwards? sideways? What variable changes if you rotate the drone?</li>
</ol>
<h3>Plotting the AR.Drone&#8217;s State</h3>
<ol>
<li>A more intuitive way of representing this feedback data is using a plot. PressCtrl-C to terminate the echo process from the last stage, and then type:
<pre>$ rxplot /ardrone/navdata/rotX,/ardrone/navdata/rotY</pre>
<ul>
<li>This launches a plotting window showing the AR.Drone&#8217;s estimated roll (rotX) and pitch (rotY).</li>
<li>Similar plots could, for example, be generated for yaw (rotZ), x and y velocity (vx and vy), altitude (altd), etc.</li>
</ul>
</li>
<li>Similarly to displaying the AR.Drone&#8217;s feedback data, we can use the plotting method to investigate how we are controlling the drone:
<pre>$ rxplot /cmd_vel/linear/y,/cmd_vel/linear/x</pre>
<ul>
<li>This plots the roll (linear/y) and pitch (linear/x) commands.</li>
<li>Note that these are scaled with a value of $\pm1$ being the maximum commandable angle (set by the euler_angle_max in the launch file).</li>
<li>Note also that the direction of AR.Drone movement is commanded (ie. move <em>along</em> the x-axis = /cmd_vel/linear/x = commanded pitch), whereas the AR.Drone&#8217;s feedback data is named with reference to axis of rotation (ie. tilt <em>around</em> y-axis = /ardrone/navdata/rotY = feedback pitch).</li>
</ul>
</li>
</ol>
<h3>Logging Data</h3>
<ol>
<li>To log data, we can use the inbuilt ROS command <a href="http://www.ros.org/wiki/rosbag/Tutorials/Recording%20and%20playing%20back%20data" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">rosbag</a>:
<pre>$ rosbag record -O ARDroneFlight.bag /ardrone/navdata /cmd_vel</pre>
<ul>
<li>This will record the topics /ardrone/navdata and /cmd_vel to a &#8220;bag-file&#8221;, stamped with the current date and time.</li>
<li>Leave this process running for a few seconds, fly the AR.Drone around, and when finished press Ctrl-C to terminate.</li>
<li>Recording all topics is possible with rosbag record -a, however this also records the AR.Drone&#8217;s HD video stream, thus bag-files will quickly become very large</li>
<li>The advantage of using rosbag to log data, is that bag-files can be replayed at a later time, and interact very nicely with the existing ROS infrastructure.</li>
</ul>
</li>
<li>Land the AR.Drone and close any windows / terminate any processes relating to the controller. Now, into the terminal window that ran the AR.Drone controller, type:
<pre>$ roscore</pre>
<p>Now open a new terminal window and type:</p>
<pre>$ rxplot /cmd_vel/linear/y,/cmd_vel/linear/x</pre>
<p>Now finally (ignoring the warning from the previous step), switch back to the terminal window that you used to run the rosbag command and type:</p>
<pre>$ rosbag play ARDroneFlight.bag</pre>
<p>Does the flight look familiar? It should! This is the flight you recorded in the last step! Use Ctrl-C to terminate the above processes.</li>
</ol>
<h2><strong>Custom Data Handling</strong></h2>
<p>In the last section, we investigated the AR.Drone&#8217;s feedback data by using ROS&#8217;s inbuilt plotting (rxplot) and logging (rosbag) commands. In this section, you will learn how we get this feedback data into your own application by writing a custom ROS Node. This node will be used to compare the commanded roll and pitch angles with the AR.Drone&#8217;s roll and pitch estimates, thus laying the foundations for the next tutorial, where we will use this feedback data to programmatically control the AR.Drone.</p>
<h3>Messages, Topics and Nodes</h3>
<p>In ROS terminology, a program is known as a <em>Node</em>. To interact with other nodes (for example the AR.Drone driver), each node will have some <em>subscribers</em>, which listen for information messages on a specific <em>topic</em> (communications channel); and some <em>publishers</em>, which send messages to a specific <em>topic</em>.</p>
<p>These messages can be anything. An example that we saw in the previous section was the <em>Navdata</em> message, which is sent over the /ardrone/navdata topic and contains feedback data from the AR.Drone.</p>
<p>We will now investigate this message a little further. Open up a new terminal window and type</p>
<pre>rosmsg show ardrone_autonomy/Navdata</pre>
<p>You should be presented with the following output:</p>
<pre>$ rosmsg show ardrone_autonomy/Navdata
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
float32 batteryPercent
uint32 state
int32 magX
int32 magY
int32 magZ
int32 pressure
int32 temp
float32 wind_speed
float32 wind_angle
float32 wind_comp_angle
float32 rotX
float32 rotY
float32 rotZ
int32 altd
float32 vx
float32 vy
float32 vz
float32 ax
float32 ay
float32 az
uint32 tags_count
uint32[] tags_type
uint32[] tags_xc
uint32[] tags_yc
uint32[] tags_width
uint32[] tags_height
float32[] tags_orientation
float32[] tags_distance
float32 tm</pre>
<p>This listing shows us the various members of the Navdata message, including their datatypes. Note that the Navdata message has a header, which includes the time the message is sent.</p>
<h3>Minimum Viable Subscriber</h3>
<p>Open up a new terminal window and type:</p>
<pre>$ roscd ardrone_tutorials
$ geany src/minimum_viable_subscriber.py</pre>
<p>Up will pop a geany window, ready for your to edit the new file. Enter the following into the new geany window, then save and close the file:</p>
<pre><code data-language="python">import roslib
import rospy

roslib.load_manifest('ardrone_tutorials')

from ardrone_autonomy.msg import Navdata

def ReceiveData(data):
  print '[{0:.3f}] Pitch: {1:.3f}'.format(data.header.stamp.to_sec(), data.rotY)

rospy.init_node('minimum_viable_subscriber')
sub_Navdata = rospy.Subscriber('/ardrone/navdata', Navdata, ReceiveData)

while not rospy.is_shutdown():
  pass</code></pre>
<p>We will now use the previously recorded bag-file to test the node that we&#8217;ve just written.</p>
<ol>
<li>In one terminal window, enter:
<pre>$ roscore</pre>
<p>Which begins the roscore process, which coordinates the interactions between nodes.</li>
<li>Now in a new terminal window type:
<pre>$ roscd ardrone_tutorials
$ python src/minimum_viable_subscriber.py</pre>
<p>This will launch the node that we&#8217;ve just programmed.</li>
<li>Finally, in a third terminal window, begin the bag-file playback with:
<pre>$ rosbag play ARDroneFlight.bag</pre>
<ul>
<li>Note you must be in the same directory as the bag-file for the above command to work</li>
</ul>
</li>
<li>If you switch back to the terminal window in which our new node is running, you should see a stream of time-stamped printouts with the drone&#8217;s pitch, for example:
<pre>[1353596639.491] Pitch: 4.375
[1353596639.511] Pitch: 4.128
[1353596639.531] Pitch: 3.750
[1353596639.552] Pitch: 3.304
[1353596639.571] Pitch: 3.063</pre>
</li>
</ol>
<h3>Minimum Viable Subscriber: A Closer Look</h3>
<p>If you made it through the previous section, congratulations, you have successfully written and tested a ROS node, which listens for Navdata measurements from the AR.Drone (or equivalently: a recorded flight) and outputs a time-stamped pitch measurement. But how does it all work?</p>
<p>Lets take a look at the source-code from the previous section, line by line:</p>
<pre><code data-language="python">import roslib
import rospy</code></pre>
<p>With these two lines, we import the standard ROS packages, required for every ROS node.</p>
<pre><code data-language="python">roslib.load_manifest('ardrone_tutorials')</code></pre>
<p>Once the required packages are imported, load the <a href="http://ros.org/wiki/Manifest" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><em>manifest</em> file</a>. This file details the dependencies of the current project (for example, that ardrone_tutorials is dependent on the AR.Drone driver, ardrone_autonomy), which through the above command are loaded into the path.</p>
<pre><code data-language="python">from ardrone_autonomy.msg import Navdata</code></pre>
<p>Once the project dependencies have been loaded, we can import those which are needed by the current node. In the above case, we load the Navdata message definition from the ardrone_autonomy package.</p>
<pre><code data-language="python">def ReceiveData(data):
  print '[{0:.3f}] Pitch: {1:.3f}'.format(data.header.stamp.to_sec(), data.rotY)</code></pre>
<p>Here we define a callback function to handle the Navdata messages. This function prints a formatted string containing the message&#8217;s timestamp and the AR.Drone&#8217;s pitch angle. This callback function will be used later in the program.</p>
<pre><code data-language="python">rospy.init_node('minimum_viable_subscriber')</code></pre>
<p>Before issuing any commands to the rospy package, we need to initialize a ROS node.</p>
<pre><code data-language="python">sub_Navdata = rospy.Subscriber('/ardrone/navdata', Navdata, ReceiveData)</code></pre>
<p>We can now subscribe the node to various topics. Above we subscribe the node to the /ardrone/navdata topic, which carries Navdata messages. Received messages should then be handled by the previously-defined ReceiveData function.</p>
<pre><code data-language="python">while not rospy.is_shutdown():
  pass</code></pre>
<p>Because our program is relying on callbacks for data processing, we need to stop the program from terminating. The above defines a loop that runs until the node is shut down (for example with Ctrl-C). In most situations the above loop would perform some sort of processing, however in our example, we simply pass (do nothing).</p>
<h2>Publishing Data</h2>
<p>In this section we will introduce the concept of publishing data to a topic (the opposite of subscribing). We will be using this more extensively in the next tutorial, where we will be programmatically controlling the AR.Drone by publishing messages to the /cmd_vel topic.</p>
<h3>Minimum Viable Publisher</h3>
<p>The goal of this section is to create a minimum_viable_publisher.py file such that Navdata messages are averaged over a second and the average pitch published to the (new) /ardrone/average_pitch topic. Modify the file as follows:</p>
<pre><code data-language="python">import roslib
import rospy

roslib.load_manifest('ardrone_tutorials')

from ardrone_autonomy.msg import Navdata
from std_msgs.msg import String

messages = []

def ReceiveData(data):
  messages.append(data)

rospy.init_node('minimum_viable_publisher')
sub_Navdata = rospy.Subscriber('/ardrone/navdata', Navdata, ReceiveData)
pub_Average = rospy.Publisher('/ardrone/average_pitch', String)

r = rospy.Rate(1)
while not rospy.is_shutdown():
  if len(messages)&gt;0:
    avg = sum([m.rotY for m in messages])/len(messages)
    messages = []

    avgmsg = String()
    avgmsg.data = 'Average Pitch: {0:.3f}'.format(avg)
    pub_Average.publish(avgmsg)
  r.sleep()</code></pre>
<p>You can run the program using the following series of commands:</p>
<ol>
<li>In one terminal, run:
<pre>$ roscore</pre>
</li>
<li>In the next terminal, run the new program
<pre>$ roscd ardrone_tutorials
$ python src/minimum_viable_publisher.py</pre>
</li>
<li>We now echo the published data to the topic we&#8217;ve created:
<pre>$ rostopic echo /ardrone/average_pitch</pre>
</li>
<li>And finally, like we&#8217;ve done twice before, we begin the playback of our recorded flight
<pre>$ rosbag play ARDroneFlight.bag</pre>
</li>
<li>Switching back to the terminal in which we ranrostopic echo, you should see a new message with the average pitch appearing once a second:
<pre>data: Average Pitch: 0.649
---
data: Average Pitch: 1.078
---
data: Average Pitch: 3.781
---
data: Average Pitch: 3.285
---</pre>
</li>
</ol>
<h3>Minimum Viable Publisher: A Closer Look</h3>
<p>Comparing minimum_viable_publisher.py to minimum_viable_subscriber.py from the last section, we can see many similarities:</p>
<pre><code data-language="python">from ardrone_autonomy.msg import Navdata
from std_msgs.msg import String</code></pre>
<p>We additionally import the String message, required for our new topic.</p>
<pre><code data-language="python">messages = []
def ReceiveData(data):
  messages.append(data)</code></pre>
<p>We have updated the navdata callback function to save the messages in a queue, rather than process them straight away.</p>
<p><strong>Note:</strong> because we&#8217;re accessing the messages list in both a callback function and the main loop, we should be using Python&#8217;s threading.Lock to control access to the list and prevent race conditions. See ardrone_tutorials/src/drone_video_display.py for an example.</p>
<pre><code data-language="python">pub_Average = rospy.Publisher('/ardrone/average_pitch', String)</code></pre>
<p>We create a new publisher, responsible for publishing messages of the String type to the /ardrone/average_pitch topic. Note that we do not need to explicitly initialize this topic, it will be initialized automatically on first usage.</p>
<p>The biggest change is in the program&#8217;s main loop, which I will now cover in a little more detail:</p>
<pre><code data-language="python">r = rospy.Rate(1)</code></pre>
<p>Firstly we define a Rate object. We use this to control the frequency of the main processing loop. In our case, we want to print a message every second, thus we want a frequency of $1 \text{Hz}$.</p>
<pre><code data-language="python">while not rospy.is_shutdown():
  if len(messages)&gt;0:
    avg = sum([m.rotY for m in messages])/len(messages)
    messages = []

    avgmsg = String()
    avgmsg.data = 'Average Pitch: {0:.3f}'.format(avg)
    pub_Average.publish(avgmsg)</code></pre>
<p>If messages have been received, we calculate the average pitch using a python list comprehension to extract the pitch (.rotY) from every Navdata message. We then empty the messages queue.</p>
<p>We then construct a new String message and set its data property, before publishing it to the topic we previously created.</p>
<pre><code data-language="python">r.sleep()</code></pre>
<p>Finally, we tell the rate object to sleep. This command will calculate how long it needs to sleep, such that the desired loop frequency is achieved.</p>
<h2>Conclusions</h2>
<p>I hope you&#8217;ve enjoyed working through this tutorial and learning about data flow in the ROS environment. In the next tutorial, which I will release in a month&#8217;s time, we will use what we have learned today to programmatically control the AR.Drone, while at the same time learning about PID control.</p>
<p>If you have any questions about the tutorial, please leave me a comment below and I will get back to you as soon as possible!</p>
<p>You can see all the tutorials in here: <a href="http://robohub.org/tag/parrot-ar-drone-tutorial/" data-wpel-link="internal">Up and flying with the AR.Drone and ROS</a>.</p>
<p><em>If you liked this article, you may also be interested in:</em></p>
<ul>
<li><a title="Permalink to Parrot AR.Drone app harnesses crowd power to fast-track vision learning in robotic spacecraft" href="http://robohub.org/parrot-ar-drone-app-harnesses-crowd-power-to-fast-track-vision-learning-in-robotic-spacecraft/" rel="bookmark" data-wpel-link="internal">Parrot AR.Drone app harnesses crowd power to fast-track vision learning in robotic spacecraft</a></li>
<li><a href="http://robohub.org/taking-your-first-steps-in-robotics-with-the-thymio-ii/" data-wpel-link="internal">Taking your first steps in robotics with the Thymio II</a></li>
<li><a title="Permalink to Discovering social robotics with the Aisoy1" href="http://robohub.org/discovering-social-robotics-with-the-aisoy1/" rel="bookmark" data-wpel-link="internal">Discovering social robotics with the Aisoy1</a></li>
<li><a title="Permalink to Classroom robotics: Motivating independent learning and discovery" href="http://robohub.org/classroom-robotics-motivating-independent-learning-and-discovery/" rel="bookmark" data-wpel-link="internal">Classroom robotics: Motivating independent learning and discovery</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a href="http://eepurl.com/t-UEf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">sign up for our weekly newsletter</a>.</em></p>
<p><em> </em></p>
<p><script type="text/x-mathjax-config">// <![CDATA[
MathJax.Hub.Config({
  TeX: { equationNumbers: { autoNumber: "AMS" } }
});
// ]]&gt;</script></p>
<p><script type="text/x-mathjax-config">// <![CDATA[
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX", "output/HTML-CSS"],
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
      processEscapes: true
    },
    "HTML-CSS": { availableFonts: ["TeX"] }
  });
// ]]&gt;</script></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Software marketplace, with  Celestino Alvarez Martinez and  Lucia Fernandez Cossio  </title>
		<link>https://robohub.org/robots-software-marketplace/</link>
		
		<dc:creator><![CDATA[Podcast team]]></dc:creator>
		<pubDate>Fri, 05 Apr 2013 16:30:54 +0000</pubDate>
				<category><![CDATA[podcast]]></category>
		<category><![CDATA[human-robot interaction]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[startups]]></category>
		<guid isPermaLink="false">http://www.robotspodcast.com/?p=3238</guid>

					<description><![CDATA[Link to audio file (31:43)In this episode we hear how the Spanish robotic startup Adele is creating a marketplace for robotics software. Through their platform, robot developers can buy software components for their robots, and software developers can ...]]></description>
										<content:encoded><![CDATA[<img src="https://robohub.org/wp-content/uploads/2013/04/Fiona.jpg"/><p class="podcast_mp3_link"><a title="Audio file" href="http://www.robotspodcast.com/podcast/mp3/robots-20130405-episode127.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Link to audio file (31:43)</a></p>
<p>In this episode we hear how the Spanish robotic startup <a title="Adele" href="http://www.adelerobots.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Adele</a> is creating a marketplace for robotics software. Through their platform, robot developers can buy software components for their robots, and software developers can sell their code, in a practical way. Examples of the software components, Adele calls them sparks, are speech recognition, synthetic speech, vision systems and user interface components. Their flagship project <a title="FIONA" href="http://www.sparkingtogether.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FIONA</a> (Framework for Interactive-services Over Natural-conversational Agents) allows users to create intelligent and interactive virtual avatars.<span id="more-11754"></span></p>
<div class=" "><iframe title="Fiona, the community for the creation of an artificial mind" width="500" height="281" src="https://www.youtube-nocookie.com/embed/yciPYWthnOg?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></div>
<p>
<strong>Celestino Alvarez Martinez</strong><br />
<img decoding="async" class="alignleft size-full wp-image-3241" title="photo_tino" alt="" src="http://www.robotspodcast.com/podcast/uploaded_images/photo_tino-e1365158763395.png" width="200" height="166" />Celestino Alvarez Martinez is an Industrial Engineer, specialized in Electronics and Automation from the University of Oviedo and with a Diploma of Advanced Studies in Robotics and Artificial Intelligence from Polytechnic University of Madrid. In 2002 he began his PhD in Robotics and Artificial Intelligence, under the supervision of Professor Antonio Barrientos (DISAM, UPM) in the field of human-robot interaction.</p>
<div style="clear:both"></div>
<p><strong>Lucia Fernandez Cossio</strong><br />
<img decoding="async" class="alignleft size-full wp-image-3240" title="photo_lucia" alt="" src="http://www.robotspodcast.com/podcast/uploaded_images/photo_lucia-e1365158742379.png" width="200" height="189" />Lucia Fernandez Cossio is a Computer Science Engineer from the University of Oviedo. She is specialized in artificial intelligence and social robotics and currently holds the position of Project Manager at Adele Robots. She has experience in management and direction of R &amp; D related to different topics within the field of Information Technology and Communication.</p>
<div style="clear:both"></div>
<p><strong>Links:</strong></p>
<ul>
<li><span class="mp3"><a class="mp3" href="http://www.robotspodcast.com/podcast/mp3/robots-20130405-episode127.mp3" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Download mp3 (20.2MB)</a></span></li>
<li><a class="rss" title="Subscribe to Robots podcast RSS feed using iTunes" href="itpc://feeds.feedburner.com/robotspodcast" data-wpel-link="internal">Subscribe to Robots using iTunes</a></li>
<li><a class="rss" title="Subscribe to Robots podcast RSS feed using other feed readers" href="http://feeds.feedburner.com/robotspodcast" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Subscribe to Robots using RSS</a></li>
<li><a class="www" title="Fiona" href="http://www.sparkingtogether.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Fiona website</a></li>
<li><a class="www" title="Adele" href="http://www.adelerobots.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Adele’s website</a></li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="http://www.robotspodcast.com/podcast/mp3/robots-20130405-episode127.mp3" length="20284462" type="audio/mpeg" />

			</item>
		<item>
		<title>Rapyuta: The RoboEarth Cloud Engine</title>
		<link>https://robohub.org/rapyuta-the-roboearth-cloud-engine/</link>
		
		<dc:creator><![CDATA[Dominique Hunziker]]></dc:creator>
		<pubDate>Mon, 25 Feb 2013 06:58:42 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[ETH Zurich]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Swiss Robots]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=8806</guid>

					<description><![CDATA[In recent years cloud computing has made an entrance into our lives. Naturally, this begs the question how cloud computing can be used in robotics applications. With Rapyuta, the RoboEarth Cloud Engine, an open source software package is released that tries to answer this question. Rapyuta provides an easy solution specifically tailored to robotics applications. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In recent years cloud computing has made an entrance into our lives. Naturally, this begs the question how cloud computing can be used in robotics applications. With Rapyuta, the RoboEarth Cloud Engine, an open source software package is released that tries to answer this question. Rapyuta provides an easy solution specifically tailored to robotics applications.<br />
<span id="more-8806"></span></p>
<h2>What about <em>Cloud Robotics</em>?</h2>
<p>The following video briefly explains the general motivation:</p>
<div class=" "><iframe title="Rapyuta: A Cloud Robotics Framework" width="500" height="281" src="https://www.youtube-nocookie.com/embed/4-ir1ieqKyc?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></div>
<p></p>
<p>Generally, a robotics application interacts with its environment using sensors and actuators. This implies that the data produced by the sensors has to be processed and is normally used as feedback to determine the next action. For actions without hard real-time requirements, processing can be moved to the cloud. This reduces the necessary computing power on the robot, which can improve operation duration for mobile systems and may decrease costs.</p>
<div id="attachment_8829" style="width: 1034px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-8829" src="http://robohub.org/wp-content/uploads/2013/02/cloud_engine-1024x539.png" alt="Cloud Computing" width="1024" height="539" class="size-large wp-image-8829" srcset="https://robohub.org/wp-content/uploads/2013/02/cloud_engine-1024x539.png 1024w, https://robohub.org/wp-content/uploads/2013/02/cloud_engine-300x158.png 300w, https://robohub.org/wp-content/uploads/2013/02/cloud_engine-500x263.png 500w, https://robohub.org/wp-content/uploads/2013/02/cloud_engine.png 1153w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-8829" class="wp-caption-text">Simplified cloud model: Each robot is connected to its own clone in the cloud (rectangular boxes), which are tightly interconnected with each other and with the databases (circular disks).</p></div>
<p>Many common high-level robotics tasks, such as planning or mapping, don&#8217;t require hard real-time. Mapping, for example, involves storing a reusable description of the environment to allow the robot to localize a landmark or itself. Additionally, maps can be used on a large scale to plan trajectories for moving to a landmark or on a small scale to grasp an object, which in turn might include querying an object database for grasp points to get the best position to grab the object. Because planning can be done ahead of time (i.e. act instead of react), it has no hard real-time constraints.</p>
<p>The advantages of offloading computation to the cloud can be even more pronounced when considering collaborative robot scenarios. For example, sharing data when creating a common map, or negotiating a cooperative plan when performing a common task can be more easily achieved with a centralized architecture with powerful computational capabilities.</p>
<p><a href="http://www.roboearth.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RoboEarth</a> allows robots to share knowledge in a centralized knowledge base. This centralized approach has the advantage of avoiding duplicate information and the necessity to constantly exchange newly generated knowledge to avoid duplicate learning. However, to benefit from the full potential of this approach not only requires a centralized storage of knowledge, but also centralized reasoning, i.e. a framework for cloud computation for robots. <!-- SHOULD THIS BE PASSIVE VOICE?? --></p>
<h2>The missing piece</h2>
<p>Until now, RoboEarth only provided data storage for robots. With the introduction of Rapyuta, the RoboEarth Cloud Engine, the missing piece in the cloud infrastructure for robots is added. Rapyuta provides a platform where robots can create computing environments to offload there heavy computation into the cloud. These computing environments can either function as a personal cloud for individual robots or be shared by multiple robots. Additionally, computing environments have high-bandwidth connections to the RoboEarth database, allowing their processes to quickly access knowledge.</p>
<h2>Technical aspects</h2>
<div id="attachment_8833" style="width: 808px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-8833" src="http://robohub.org/wp-content/uploads/2013/02/cloud_schema.png" alt="Simplified overview of Rapyuta: The robots are connected to Rapyuta&#039;s communications module in the cloud. Similarly, the cloud applications running inside the computing environments (LXC) are also connected to the communications module. The module manages communications from and to all connected elements." width="798" height="296" class="size-full wp-image-8833" srcset="https://robohub.org/wp-content/uploads/2013/02/cloud_schema.png 798w, https://robohub.org/wp-content/uploads/2013/02/cloud_schema-300x111.png 300w, https://robohub.org/wp-content/uploads/2013/02/cloud_schema-500x185.png 500w" sizes="(max-width: 798px) 100vw, 798px" /><p id="caption-attachment-8833" class="wp-caption-text">Simplified overview of Rapyuta: The robots are connected to Rapyuta&#8217;s communications module in the cloud. Similarly, the cloud applications running inside the computing environments (LXC) are also connected to the communications module. The module manages communications from and to all connected elements.</p></div>
<p>To simplify the deployment and interaction of the cloud applications Rapyuta, similar to the Google App Engine, defines a protocol for cloud applications. However, in contrast to Google&#8217;s model where only web requests are used to communicate directly with the cloud application, Rapyuta introduces an additional layer. This means, a robot does not communicate directly with a cloud application, but uses Rapyuta as a medium. This model gives more flexibility and control over the system. For example, Rapyuta can be used as a relay to communicate directly between robots without the creation of a computing environment. Furthermore, the additional layer implies that Rapyuta allows to run multiple processes using sockets to communicate with each other. Google&#8217;s App Engine, however, prevents this, because web applications have no need for communicating processes to service web requests.</p>
<p>On the robot side Rapyuta uses common web protocols that allow access via a web browser. Like rosbridge and ros.js, Rapyuta uses WebSockets for persistent connections and JavaScript Object Notation (<a href="http://en.wikipedia.org/wiki/JSON" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">JSON</a>) compatible strings for messages. However, because rosbridge provides only a subset of the functionality of Rapyuta the two protocols are not compatible. The main reason for this is that Rapyuta allows the client to interact with more than one ROS environment, i.e. computing environments, over the same connection, which leads to a more complex protocol for Rapyuta.</p>
<p>On the cloud application side the message system defined by the Robot Operating System (ROS) is used. This allows to deploy and run most of the more than 3&#8217;000 existing ROS packages (i.e., ROS applications) with minimal to no changes in the RoboEarth Cloud Engine.</p>
<div style="clear: both;"></div>
<p>To separate the ROS nodes, i.e. the cloud applications, for different users, Rapyuta provides individual computing environments. A robot can have many computing environments and a computing environment can be used by many robots, which allows a variety of deployment models. Linux Containers (LXC) were chosen for the implementation of computing environment to securely control all operational aspects such as communication as well as CPU, RAM, and disk usage. Additionally, Rapyuta allows different computing environments to communicate with each other using the ROS messaging system.</p>
<p>Rapyuta is open source. The <a href="http://github.com/IDSCETHZurich/rce" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Rapyuta Alpha release is available on github</a> under the Apache License, Version 2.0.</p>
<p>For more information have a look at the <a href="http://rapyuta.org/rapyuta-the-roboearth-cloud-engine" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Rapyuta documentation</a>.</p>
<p>Further reading:</p>
<ul>
<li><a href="http://robohub.org/analysis-robot-learning-in-the-cloud/" data-wpel-link="internal">Analysis: Robot learning in the cloud</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: robohub.org @ 2026-10-22 14:11:40 by W3 Total Cache
-->