<?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>ROS &#8211; Robohub</title>
	<atom:link href="https://robohub.org/tag/ros/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 03:12:47 +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>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 fetchpriority="high" 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>The need for robotics standards</title>
		<link>https://robohub.org/the-need-for-robotics-standards/</link>
		
		<dc:creator><![CDATA[Ricardo Téllez]]></dc:creator>
		<pubDate>Tue, 29 Aug 2017 21:01:33 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/the-need-for-robotics-standards/</guid>

					<description><![CDATA[<p>&#160; Last week I was talking to&#160;one lead engineer of a Singapore company which&#160;is building a benchmarking system for robot solutions. Having seen my presentation at ROSCON2016 about robot benchmarking, he asked me how would I benchmark solutions that are non-ROS compatible. I said that I wouldn&#8217;t. I would not dedicate time to benchmark solutions</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.theconstructsim.com/need-robotics-standards/" data-wpel-link="external" target="_blank">The Need For Robotics Standards</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" src="http://robohub.org/wp-content/uploads/2017/08/ROSCON.jpg" alt="" width="1000" height="1333" class="aligncenter size-full wp-image-84447" srcset="https://robohub.org/wp-content/uploads/2017/08/ROSCON.jpg 1000w, https://robohub.org/wp-content/uploads/2017/08/ROSCON-319x425.jpg 319w, https://robohub.org/wp-content/uploads/2017/08/ROSCON-768x1024.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" />
<p>Last week I was talking to&nbsp;one lead engineer of a Singapore company which&nbsp;is building a benchmarking system for robot solutions. Having seen <a href="https://www.youtube.com/watch?v=1dQyp1oMyNg" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">my presentation at ROSCON2016 about robot benchmarking</a>, he asked me how I would benchmark solutions that are non-ROS compatible. I said that I wouldn’t dedicate time to benchmark solutions that are not ROS-based. Instead, I suggested I would use the time to polish the&nbsp;ROS-based benchmarking&nbsp;and suggest that vendors adopt that middleware in their products.</p>
<p><span id="more-84249"></span></p>
<h3>Benchmarks are necessary and they need standards</h3>
<p>Benchmarks are necessary to improve any field. By having a benchmark, different solutions to a single problem can be compared and hence a direction for improvement can be traced. Currently,&nbsp;robotics lacks such benchmarking system.</p>
<p>I strongly believe that to create a benchmark for robotics we need a standard at the level of programming.</p>
<p>By having a standard at the level of programming, manufacturers can build their own hardware solutions at will, as long as&nbsp;they are programmable with the programming standard. That is the approach taken by devices that can be plugged into a computer. Manufacturers create the product on their own terms,&nbsp;and then provide a Windows driver that allows any computer in the world (that runs Windows) to communicate with the product. Once this computer-to-product communication is made, you can create programs that compare the same type of devices from different manufacturers for performance, quality, noise, whatever your benchmark is trying to compare.</p>
<p>You see? Different types of devices, different types of hardware. But all of them can be compared through the same benchmarking system that relies on the Windows standard.</p>
<h3>Software&nbsp;development for robots also needs standards</h3>
<p>The need for&nbsp;standards is not only required for comparing solutions&nbsp;but also to speed robotics development. By having a robotics standard, developers can concentrate on building solutions that do not have to be re-implemented whenever the robot hardware changes. Actually, given the middleware structure, developers&nbsp;can disassociate enough from the hardware that they can almost spend 100% of their time in the software realm, while still developing code for robots.</p>
<p>We need the same type of standard for robotics. We need a kind of <em>operating system</em> that allows us to compare different robotics solutions. We need the Windows of the PCs, the Android of the phones, the CAN of the buses…</p>
<p><img decoding="async" class="aligncenter size-large wp-image-6773" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_0154-e1503648768343-768x1024.jpg" alt="IMG_0154" width="768" height="1024" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_0154-e1503648768343-225x300.jpg 225w, http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_0154-e1503648768343-768x1024.jpg 768w, http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_0154-e1503648768343-1170x1560.jpg 1170w" sizes="(max-width: 768px) 100vw, 768px"></p>
<h3>A few standard proposals and a winner</h3>
<p>But you already know that.&nbsp;I’m not the first one to state this. Actually, many people have already tried to create such a standard. Some examples include <a href="http://playerstage.sourceforge.net" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Player</a>, <a href="http://www.ros.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS</a>, <a href="http://www.yarp.it/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">YARP</a>, <a href="http://www.orocos.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">OROCOS</a>, <a href="https://github.com/urbiforge/urbi" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Urbi</a>, <a href="http://www.mira-project.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">MIRA</a> or <a href="http://jderobot.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">JdE Robot</a>, to name a few.</p>
<p>Personally, I actually don’t care which standard is used. It could be ROS, it could be YARP, or it could be any other that still has not been created. The only thing I really care about is that we &nbsp;adopt a standard&nbsp;as soon as possible.</p>
<p>And it looks like the developers have decided. Robotics developers prefer&nbsp;ROS as their common middleware to program robots.</p>
<p>No other middleware for robotics&nbsp;has had such a large adoption. Some data about it:</p>
<table>
<tbody>
<tr>
<td></td>
<td>ROS</td>
<td>YARP</td>
<td>OROCOS</td>
</tr>
<tr>
<td>Number of Google pages:</td>
<td><a href="https://www.google.es/search?hl=en&amp;authuser=0&amp;source=hp&amp;q=%22robot+operating+system%22+ros&amp;oq=%22robot+operating+system%22+ros&amp;gs_l=psy-ab.3..0l2j0i22i30k1l2.2200.14948.0.15827.29.28.0.0.0.0.107.2043.27j1.28.0....0...1.1.64.psy-ab..1.28.2041.0..35i39k1j0i67k1j0i10k1j0i20k1.eg1GRPhoRiQ" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">243.000</a></td>
<td><a href="https://www.google.es/search?hl=en&amp;authuser=0&amp;q=yarp+robot&amp;oq=yarp&amp;gs_l=psy-ab.1.0.0i71k1l4.0.0.0.18252.0.0.0.0.0.0.0.0..0.0....0...1..64.psy-ab..0.0.0.JYEc1yYdJaY" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">37.000</a></td>
<td><a href="https://www.google.es/search?hl=en&amp;authuser=0&amp;q=orocos+robot&amp;oq=orocos+robot&amp;gs_l=psy-ab.3..0i7i30k1.29927.30728.0.31128.6.6.0.0.0.0.77.428.6.6.0....0...1.1.64.psy-ab..0.6.426...0j0i7i10i30k1.qHjuzlGz-54" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">42.000</a></td>
</tr>
<tr>
<td>Number of citations if the paper describing the middleware:</td>
<td><a href="https://scholar.google.com/scholar?cites=143767492575573826&amp;as_sdt=2005&amp;sciodt=0,5&amp;hl=en" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">3.638</a></td>
<td><a href="https://scholar.google.com/scholar?cites=3797314318845413779&amp;as_sdt=2005&amp;sciodt=0,5&amp;hl=en" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">463</a></td>
<td><a href="https://scholar.google.com/scholar?cites=12019843289051907420&amp;as_sdt=2005&amp;sciodt=0,5&amp;hl=en" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">563</a></td>
</tr>
<tr>
<td>Alexa ranking:</td>
<td><a href="https://www.alexa.com/siteinfo/ros.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">14.118</a><img decoding="async" class="aligncenter size-full wp-image-6764" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195039.png" alt="Screenshot from 2017-08-24 19:50:39" width="366" height="226" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195039-300x185.png 300w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195039-280x173.png 280w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195039.png 366w" sizes="(max-width: 366px) 100vw, 366px"></td>
<td><a href="https://www.alexa.com/siteinfo/yarp.it" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">1.505.000</a><img decoding="async" class="aligncenter size-full wp-image-6766" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195029.png" alt="Screenshot from 2017-08-24 19:50:29" width="369" height="235" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195029-300x191.png 300w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195029-280x178.png 280w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195029.png 369w" sizes="(max-width: 369px) 100vw, 369px"></td>
<td><a href="https://www.alexa.com/siteinfo/orocos.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">668.293</a><img decoding="async" class="aligncenter size-full wp-image-6765" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195019.png" alt="Screenshot from 2017-08-24 19:50:19" width="362" height="222" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195019-300x184.png 300w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195019-280x172.png 280w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-195019.png 362w" sizes="(max-width: 362px) 100vw, 362px"></td>
</tr>
</tbody>
</table>
<p>Note 1: Only showing the current big three players.</p>
<p>Note 2: Very simple comparison. Difficult to compare in other terms since data is not available.</p>
<p>Note 3: Data measured&nbsp;in August 2017. May vary at the time you are reading this. Links provided on the numbers themselves, so you can check yourself.</p>
<p>This is not only the feeling that we, roboticists, have. The numbers also indicate that ROS is becoming the standard for robotics programming.</p>
<p><a href="http://wiki.ros.org/Robots" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img decoding="async" class="aligncenter size-full wp-image-6763" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-192559.png" alt="Screenshot from 2017-08-24 19:25:59" width="931" height="768" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-192559-300x247.png 300w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-192559-768x634.png 768w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-192559-227x187.png 227w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-192559.png 931w" sizes="(max-width: 931px) 100vw, 931px"></a></p>
<h3>Why ROS?</h3>
<p>The question is then, why has ROS emerged on top of all the other possible contestants. None of them is worst than ROS in terms of features. Actually you can find some feature in all the other middlewares that outperform ROS. If that is so, why or how has ROS achieved the status of <em>becoming the standard</em> ?</p>
<p>A simple answer from my point of view: excellent learning tutorials and debugging tools.</p>
<p><a href="http://robotignite.academy" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img decoding="async" class="aligncenter size-large wp-image-6769" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/1-1024x441.png" alt="1" width="1024" height="441" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/1-300x129.png 300w, http://www.theconstructsim.com/wp-content/uploads/2017/08/1-768x331.png 768w, http://www.theconstructsim.com/wp-content/uploads/2017/08/1-1024x441.png 1024w, http://www.theconstructsim.com/wp-content/uploads/2017/08/1-280x121.png 280w, http://www.theconstructsim.com/wp-content/uploads/2017/08/1-1170x504.png 1170w, http://www.theconstructsim.com/wp-content/uploads/2017/08/1.png 1316w" sizes="(max-width: 1024px) 100vw, 1024px"></a></p>
<p>&nbsp;</p>
<p>Here there is<a href="https://www.bloomberg.com/news/articles/2017-05-17/the-not-so-secret-code-that-powers-robots-around-the-globe" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"> a video where Leila Takayama</a>, early developer of ROS, explains when she realized&nbsp;that the key for having ROS used worldwide would be to provide tools that simplify the reuse of ROS code. None of the other projects have such a set of clear and structured tutorials. In addition, few of the other middlewares provide debugging tools for their packages. The lack of these two essential aspects is preventing new people from using&nbsp;their middlewares (even if I understand the developers of OROCOS and YARP for not providing it… who wants to write tutorials or build debugging tools… nobody! ? )</p>
<p>&nbsp;</p>
<p>Additionally, it is not only about tutorials and debugging tools. ROS creators also provide a good system of managing packages. The result is that developers worldwide could use others packages in a (relatively) easy way. This created an explosion in ROS packages available, providing off-the-shelf almost anything for your brand new ROSified robot.</p>
<p>Now, the impressive rate at which contributions to the ROS ecosystem are made makes it almost unstoppable in terms of growing.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-6775" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-02-23-203927.png" alt="Screenshot from 2017-02-23 20:39:27" width="1003" height="747" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-02-23-203927-300x223.png 300w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-02-23-203927-768x572.png 768w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-02-23-203927-251x187.png 251w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-02-23-203927.png 1003w" sizes="(max-width: 1003px) 100vw, 1003px"></p>
<p>&nbsp;</p>
<h3>What about companies?</h3>
<p>At the beginning, ROS was mostly used by students at Universities. However, as ROS becomes more mature and the number of packages increases, companies are realizing that adopting ROS&nbsp;is also good for them because they will be able to use code developed by others. On top of that, it will be easier for them&nbsp;to hire new engineers who already know the middleware (otherwise they would need to teach the newcomers their own middleware).</p>
<p>As a result, many companies have jumped onto the ROS train, developing from scratch their products to be ROS compatible. Examples include <a href="http://www.robotnik.eu/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Robotnik</a>, <a href="http://fetchrobotics.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Fetch Robotics</a>, <a href="http://www.savioke.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Savioke</a>, <a href="http://www.pal-robotics.com" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Pal Robotics</a>, <a href="http://en.yujinrobot.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Yujin Robots</a>, <a href="http://www.theconstructsim.com" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">The Construct</a>, <a href="https://www.rapyuta-robotics.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Rapyuta Robotics</a>, <a href="http://erlerobotics.com" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Erle Robotics</a>, <a href="https://www.shadowrobot.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Shadow Robot</a> or <a href="https://www.clearpathrobotics.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Clearpath</a>, to name a few of the sponsors of the next <a href="https://roscon.ros.org/2017/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROSCON</a> ? . Creating&nbsp;their ROS-compatible products, they decreased their development time by several orders of magnitude.</p>
<p>To bring things further, two Spanish companies have revolutionised the standardization of robotics products using ROS middleware: on one side, <a href="http://www.robotnik.eu/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Robotnik</a> has created the <a href="https://www.roscomponents.com/en/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS Components</a> shop. A shop where anyone can buy ROS compatible devices, starting from mobile bases to sensors or actuators.&nbsp;On the other side, <a href="http://erlerobotics.com" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Erle Robotics</a> (now Acutronic Robotics) is in the process of developing <a href="https://www.h-ros.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Hardware ROS</a>. The H-ROS is a&nbsp;standardized software and hardware infrastructure&nbsp;to easily create reusable and reconfigurable&nbsp;robot hardware parts<b>. </b>ROS is enabling hardware standarization too, but this time driven by companies, not research! That must mean something…</p>
<p><a href="https://www.youtube.com/watch?v=_ULJrmJ7xOo" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img decoding="async" class="aligncenter size-large wp-image-6770" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-222545-1024x521.png" alt="Screenshot from 2017-08-24 22:25:45" width="1024" height="521" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-222545-300x153.png 300w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-222545-768x391.png 768w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-222545-1024x521.png 1024w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-222545-280x143.png 280w, http://www.theconstructsim.com/wp-content/uploads/2017/08/Screenshot-from-2017-08-24-222545-1170x596.png 1170w" sizes="(max-width: 1024px) 100vw, 1024px"></a></p>
<p>Finally,&nbsp;it looks like industrial robot manufacturers have understood the value that a standard can provide to their business. Even if they do not make their industrial robots ROS-enabled from the start, they are adopting <a href="http://rosindustrial.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS Industrial</a>&nbsp; a flavour of ROS, which allows them to ROSify their industrial robots and re-use all the software created for manipulators in the ROS ecosystem.</p>
<p>But are all companies jumping onto the ROS train? Not all of them!</p>
<p>Some&nbsp;companies like <a href="https://www.jibo.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Jibo</a>, <a href="https://www.ald.softbankrobotics.com/en" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Aldebaran</a> or <a href="http://www.google.com" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Google</a>&nbsp;still do not rely on ROS for their robot programming. Some of them rely on their own middleware created before the existence of ROS &nbsp;(that is the case of Aldebaran). Some others, though, are creating their own middleware from scratch. Their reasons: they do not believe ROS is good, they have already created a&nbsp;middleware, or&nbsp;do not want to develop their products dependent on the middleware of others. Those companies have very fair reasons to go&nbsp;their way. However, will that make them competitive? (if we have to judge from history, mobiles, VCRs, the answer may be no).</p>
<h3>So is ROS the standard for programming robots?</h3>
<p>That question is still too soon to be answered. It looks like it is becoming the standard, but many things can change. It is unlikely that another middleware takes the current title from&nbsp;ROS, but it may happen. There could be a new player that wipes ROS from the map (maybe Google will release its middleware to the public &#8211; like they did with Android &#8211; and take the sector by storm?).</p>
<p>Still, ROS has its problems, like a lack of security or the instability of some important packages. Even if the OSRF group are working hard to build a better ROS system (for instance ROS2 is in beta phase with many root improvements), some hard work is still required for some basic things (like the ROS controllers for real robots).</p>
<p><a href="http://www.theconstructsim.com/barista-the-first-robot-serving-coffee-in-the-world" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img decoding="async" class="aligncenter size-large wp-image-6768" src="http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_3330-1024x683.jpg" alt="IMG_3330" width="1024" height="683" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_3330-300x200.jpg 300w, http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_3330-768x512.jpg 768w, http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_3330-1024x683.jpg 1024w, http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_3330-280x187.jpg 280w, http://www.theconstructsim.com/wp-content/uploads/2017/08/IMG_3330-1170x780.jpg 1170w" sizes="(max-width: 1024px) 100vw, 1024px"></a></p>
<p>Given those numbers, at <a href="http://www.theconstructsim.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The Construct</a> we believe that ROS IS THE STANDARD (that is why we are devoted to creating <a href="http://robotignite.academy" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">the best ROS learning tutorials of the world</a>). Actually, it was thanks to this standardization that two Barcelona students were able to create an autonomous robot product for coffee shops in only three months with zero knowledge of robotics (see <a href="http://www.theconstructsim.com/barista-the-first-robot-serving-coffee-in-the-world" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Barista robot</a>).</p>
<p>This is the future, and it is good. In this future, thanks to standards, almost anyone will be able to build, design and program their own robotics product, similar to how PC stores are building computers today.</p>
<p>So my advice, as I said to the Singapore engineer, is to bet on ROS. Right now, it is the best option for a robotics standard.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</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>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>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>Machine Learning with OpenAI Gym on ROS Development Studio</title>
		<link>https://robohub.org/machine-learning-with-openai-gym-on-ros-development-studio/</link>
		
		<dc:creator><![CDATA[Ricardo Téllez]]></dc:creator>
		<pubDate>Mon, 08 May 2017 08:15:37 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/machine-learning-with-openai-gym-on-ros-development-studio/</guid>

					<description><![CDATA[<p>Imagine how easy it would be to learn skating, if only it doesn&#8217;t&#160;hurt everytime you fall. Unfortunately, we, humans, &#160;don&#8217;t have that option. Robots, however, can now &#8220;learn&#8221; their skills on a simulation platform without being afraid of crashing into a wall. Yes, &#8220;it learns&#8220;! This is possible with the reinforcement learning algorithms provided by</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.theconstructsim.com/machine-learning-openai-gym-ros-development-studio/" data-wpel-link="external" target="_blank">Machine Learning with OpenAI Gym on ROS Development Studio</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-77885" src="http://robohub.org/wp-content/uploads/2017/05/comp.jpg" alt="" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2017/05/comp.jpg 900w, https://robohub.org/wp-content/uploads/2017/05/comp-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/05/comp-768x512.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" />
<p>Imagine how easy it would be to learn skating, if only it doesn’t hurt everytime you fall. Unfortunately, we, humans,  don’t have that option. Robots, however, can now “<strong>learn</strong>” their skills on a simulation platform without being afraid of crashing into a wall. Yes, “<strong>it learns</strong>“! This is possible with the reinforcement learning algorithms provided by <a href="https://gym.openai.com/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">OpenAI Gym</a> and the ROS Development Studio.<span id="more-77736"></span></p>
<p>You can now train your robot to navigate through an environment filled with obstacles just based on the sensor inputs, with the help of OpenAI Gym. In April 2016, OpenAI introduced “Gym”, a platform for developing and comparing reinforcement learning algorithms. Reinforcement learning is an area of machine learning that allows an intelligent agent (for example, robot) to learn the best behaviors in an environment by trial-and-error. The agent takes actions in an environment so as to maximize its rewards. We have deployed the <a href="https://github.com/erlerobot/gym-gazebo" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">gym_gazebo</a> package from <a href="http://erlerobotics.com/" target="_blank" rel="noopener noreferrer follow external" data-wpel-link="external">Erle Robotics</a>. in the ROS Development Studio. It enables the users to test their reinforcement learning for their robots in Gazebo.</p>
<hr class="xh2  ">
<h2>How to Train your Robot</h2>
<div id="attachment_5866" class="wp-caption aligncenter">
<a href="http://www.theconstructsim.com/wp-content/uploads/2017/04/Maze1.png" rel="attachment wp-att-5866 follow external noopener noreferrer" data-wpel-link="external" target="_blank"><img decoding="async" class="size-medium wp-image-5866" src="http://www.theconstructsim.com/wp-content/uploads/2017/04/Maze1-300x127.png" sizes="(max-width: 600px) 100vw, 600px" srcset="http://www.theconstructsim.com/wp-content/uploads/2017/04/Maze1-300x127.png 300w, http://www.theconstructsim.com/wp-content/uploads/2017/04/Maze1-768x324.png 768w, http://www.theconstructsim.com/wp-content/uploads/2017/04/Maze1-280x118.png 280w, http://www.theconstructsim.com/wp-content/uploads/2017/04/Maze1.png 922w" alt="Robot training to navigate through an environment with obstacles" width="600" height="254" /></a>
<p class="wp-caption-text">Robot training to navigate through an environment with obstacles</p>
</div>
<p>In this example we will be seeing how a turtlebot is able to learn navigating through an environment without hitting an obstacle. The turtlebot will use a reinforcement learning method known as Q-learning.</p>
<p>There are four environments already available for the user to test their simulations with. These environments can be launched using the respective launch files:</p>
<ul>
<li>GazeboCircuitTurtlebotLidar_v0.launch</li>
<li>GazeboCircuit2TurtlebotLidar_v0.launch</li>
<li>GazeboRoundTurtlebotLidar_v0.launch</li>
<li>GazeboMazeTurtlebotLidar_v0.launch</li>
</ul>
<p>The images of the different environments are given below:</p>
<table>
<caption>The various environments already available:</caption>
<colgroup>
<col width="20%" />
<col width="20%" /></colgroup>
<tbody>
<tr class="odd">
<td align="center">Circuit<br />
<img decoding="async" src="http://www.theconstructsim.com/wp-content/uploads/2017/04/circuit.png" alt="" /></td>
<td align="center">Circuit2<br />
<img decoding="async" src="http://www.theconstructsim.com/wp-content/uploads/2017/04/circuit2.png" alt="" /></td>
</tr>
<tr class="even">
<td align="center">Round<br />
<img decoding="async" src="http://www.theconstructsim.com/wp-content/uploads/2017/04/round.png" alt="" /></td>
<td align="center">Maze<br />
<img decoding="async" src="http://www.theconstructsim.com/wp-content/uploads/2017/04/maze.png" alt="" /></td>
</tr>
</tbody>
</table>
<p>The user is requested to try out the existing environment before developing their own environments for training the robot. An environment is where the robot’s possible actions and rewards are defined. For example, in the available environments, there are three possible actions for the Turtlebot robot:</p>
<p>– Forward ( with a reward of 5 points)<br />
– Left ( with a reward of 1 point)<br />
– Right ( with a reward of 1 point)</p>
<p>If it collides into the walls, then the training episode ends (with a penalty of 200 points). The turtlebot has to learn to navigate through the environment, based on the rewards obtained from different episodes. This can be achieved using the Q-learning algorithm. Let us see, how it can be done using the ROS Development Studio.</p>
<hr class="xh2  ">
<h2>Using the ROS Development Studio for training the robot</h2>
<p>First, we have to set the path in the jupyter-notebook as given below:</p>
<h4><code>import sys<br />
sys.path.append("/usr/local/lib/python2.7/dist-packages/")<br />
sys.path.append("/home/ubuntu/gym-gazebo")<br />
sys.path.append("/home/user/catkin_ws/src/gym_construct/src")<br />
%matplotlib inline<br />
</code></h4>
<p>The python scripts in the folder <code>gym_construct/src/</code> help us simulate the reinforcement learning techniques for a Turtlebot. Currently, the number of episodes has been set to 20.<br />
Feel free to increase the number of episodes in the python scripts (usually up to 5000) to actually train the robot to navigate the environment completely.Run the  only the script corresponding to the environment:</p>
<p>Run the python corresponding to the environment:</p>
<h4><code>## Circuit-2 Environment --&gt; Q-learning<br />
%run /home/user/catkin_ws/src/gym_construct/src/circuit2_turtlebot_lidar_qlearn.py<br />
</code></h4>
<p>The robot undergoes several training episodes and each of these episodes are rewarded based on the number of steps taken by the robot before hitting the environment. We will be able to see that the robot incrementally increases its rewards over time compared to its previous versions. With a very large number of episodes, the robot will learn to navigate the environment without hitting the obstacle.</p>
<hr class="xh2  ">
<h2>Plotting the learning curve of the robot</h2>
<p>The machine learning algorithm generates the output files in the output directory specified in the python script file. In order to plot the curve, we run the <code>display_plot.py</code>. But before that, don’t forget to restart the kernel and set the path once again.</p>
<img decoding="async" class="aligncenter size-medium wp-image-5904" src="http://www.theconstructsim.com/wp-content/uploads/2017/05/download2-300x207.png" alt="download2" width="450" height="307" />
<p>As the number of episodes increases, we will see that the robot’s mean rewards also increases. The user can choose his own robot, environments, action and rewards for testing his reinforcement learning algorithms in OpenAI Gym and RDS. Watch the video below for more on this.</p>
<hr class="xh2  ">
<h2>Video describing the procedure to run OpenAI Gym on RDS</h2>
<div class="keep-aspect"><iframe title="[ROS tutorial] OpenAI Gym For ROS based Robots 101. Gazebo Simulator" width="500" height="281" src="https://www.youtube-nocookie.com/embed/o9FpZ1QQqcc?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>I hope you were able to follow the tutorial.  So, that’s all folks. It’s now up to you to develop and test reinforcement learning algorithms in OpenAI Gym and RDS.</p>
<p>Have fun training your robot!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS robotics projects</title>
		<link>https://robohub.org/ros-robotics-projects/</link>
		
		<dc:creator><![CDATA[Lentin Joseph]]></dc:creator>
		<pubDate>Tue, 04 Apr 2017 08:00:58 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/ros-robotics-projects/</guid>

					<description><![CDATA[A new book by Lentin Joseph, ROS Robotics Programming, outlines more than 14 robotics projects using ROS that can be engaged with without requiring a lot of hardware. The book starts with an introduction to ROS and its installation procedure. After discussing the basics, you’ll be taken through great projects such as building a self-driving car, an [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-75227" src="http://robohub.org/wp-content/uploads/2017/04/B03525_PrintCover-04_3.png" alt="" width="900" height="525" srcset="https://robohub.org/wp-content/uploads/2017/04/B03525_PrintCover-04_3.png 900w, https://robohub.org/wp-content/uploads/2017/04/B03525_PrintCover-04_3-425x248.png 425w, https://robohub.org/wp-content/uploads/2017/04/B03525_PrintCover-04_3-768x448.png 768w" sizes="(max-width: 900px) 100vw, 900px" />
<p>A new book by Lentin Joseph, <a href="https://www.amazon.com/ROS-Robotic-Projects-Lentin-Joseph/dp/1783554711" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS Robotics Programming</a>, outlines more than 14 robotics projects using ROS that can be engaged with without requiring a lot of hardware. The book starts with an introduction to ROS and its installation procedure. After discussing the basics, you’ll be taken through great projects such as building a self-driving car, an autonomous mobile robot, and image recognition using deep learning and ROS. You can find ROS robotic applications for beginner, intermediate, and expert levels inside.<span id="more-75226"></span></p>
<p>This book is unique in that it focuses on ROS via the lens of robotics projects only. Lentin is the CEO/Founder of Qbotics Labs and the author of Learning Robotics using Python and Mastering ROS for Robotics Programming.</p>
<div class="keep-aspect"><iframe title="#ROSBooks | ROS tutorials | ROS Projects | ROS Robotics Project New book ROS Robotics Projects" width="500" height="281" src="https://www.youtube-nocookie.com/embed/hi-U_XgA2qU?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>Below is an overview of the chapters in the book:</p>
<p><em><strong>Chapter 1</strong></em>, Getting Started with ROS Robotics Application Development, is for absolute beginners to ROS. No need to worry if you don’t have experience in ROS; this chapter will help you give you an idea of the ROS software framework and its concepts.</p>
<p><em><strong>Chapter 2</strong></em>, Face Detection and Tracking Using ROS, OpenCV and Dynamixel Servos, takes you through a cool project that you can do with ROS and the OpenCV library. This project basically creates a face tracker application in which your face will be tracked in such a way that the camera will always train on your face. We will use intelligent servos such as Dynamixel to rotate the robot on its axis.</p>
<p><strong><em>Chapter 3</em></strong>, Building a Siri-Like Chatbot in ROS, is for those of you who want to make your robot interactive and intelligent without much hassle. This project creates a chatterbot in ROS that you can communicate with using text or speech. This project will be useful if you&#8217;re going to create social or service robots.</p>
<p><em><strong>Chapter 4</strong></em>, Controlling Embedded Boards Using ROS, helps you build a robot using Arduino, an embedded compatible board, Raspberry Pi, or Odroid and an interface to ROS. In this chapter, you will see a wide variety of embedded boards and the interfacing projects made with them.</p>
<p><em><strong>Chapter 5</strong></em>, Teleoperate a Robot Using Hand Gestures, will teach you how to build a gesture control device using Arduino and IMU. The gestures are translated into motion commands by ROS nodes.</p>
<p><em><strong>Chapter 6</strong></em>, Object Detection and Recognition, has an interesting project for detecting objects. You will learn both 2D and 3D object recognition using powerful ROS packages.</p>
<p><em><strong>Chapter 7</strong></em>, Deep Learning Using ROS and TensorFlow, is a project made using a trending technology in robotics. Using the TensorFlow library and ROS, we can implement interesting deep-learning applications. You can implement image recognition using deep learning, and an application using SVM can be found in this chapter.</p>
<p><strong><em>Chapter 8</em></strong>, ROS on MATLAB and Android, is intended for building robot applications using ROS, Matlab, and Android.</p>
<p><em><strong>Chapter 9</strong></em>, Building an Autonomous Mobile Robot, is about creating an autonomous mobile robot with the help of ROS. You can see how to use packages such as navigation, gmapping, and AMCL to make a mobile robot autonomous.</p>
<p><em><strong>Chapter 10</strong></em>, Creating a Self-driving Car Using ROS, is one of the more interesting projects in this book. In this chapter, we will build a simulation of the self-driving car using ROS and Gazebo.</p>
<p><em><strong>Chapter 11</strong></em>, Teleoperating Robot Using VR Headset and Leap Motion, shows you how to control a robot&#8217;s actions using a VR headset and Leap Motion sensor. You can play around with virtual reality (a trending technology these days).</p>
<p><em><strong>Chapter 12</strong></em>, Controlling Your Robots over the Web, we will see how to build interactive web applications using rosbridge in ROS.</p>
<p>The book uses ROS Kinetic and Indigo installed on latest Ubuntu L.T.S 16.04.01. The codes are also compatible with <a href="https://github.com/qboticslabs/ros_robotics_projects" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS Jade</a>.</p>
<p>A basic knowledge in R.O.S, GNU/Linux, and C++ programming concepts is recommended.</p>
<p>The book is published by PACKT and can be purchased at <a href="https://www.amazon.com/ROS-Robotic-Projects-Lentin-Joseph/dp/1783554711" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Amazon Global</a> and <a href="https://www.packtpub.com/hardware-and-creative/ros-robotics-projects" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">PACKT Publishing</a>.</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>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>Clearpath Robotics launches &#8220;Warthog UGV&#8221;, the amphibious robot</title>
		<link>https://robohub.org/clearpath-robotics-launches-warthog-ugv-the-amphibious-robot/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Thu, 03 Nov 2016 10:00:48 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[UGV]]></category>
		<guid isPermaLink="false">http://robohub.org/clearpath-robotics-launches-warthog-ugv-the-amphibious-robot/</guid>

					<description><![CDATA[Clearpath Robotics, a leading provider of mobile robotic platforms for research and development, has partnered with ARGO XTR to release Warthog – a large, amphibious, all-terrain mobile robot designed for application development. Warthog enables researchers to reliably test, validate, and advance their robotics research faster than ever before in real-world conditions, whether on land or in [&#8230;]]]></description>
										<content:encoded><![CDATA[<a href="http://robohub.org/wp-content/uploads/2016/11/Warthog_UGV-2_press_1.jpg" data-wpel-link="internal"><img decoding="async" class="aligncenter wp-image-67756 size-full" src="http://robohub.org/wp-content/uploads/2016/11/Warthog_UGV-2_press_1.jpg" alt="warthog-UGV" width="900" height="601" srcset="https://robohub.org/wp-content/uploads/2016/11/Warthog_UGV-2_press_1.jpg 900w, https://robohub.org/wp-content/uploads/2016/11/Warthog_UGV-2_press_1-425x284.jpg 425w, https://robohub.org/wp-content/uploads/2016/11/Warthog_UGV-2_press_1-449x300.jpg 449w" sizes="(max-width: 900px) 100vw, 900px" /></a>
<p><a href="https://www.clearpathrobotics.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Clearpath Robotics</a>, a leading provider of mobile robotic platforms for research and development, has partnered with <a href="http://www.argorobotics.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ARGO XTR</a> to release <a href="https://www.clearpathrobotics.com/warthog-unmanned-ground-vehicle-robot/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Warthog</a> – a large, amphibious, all-terrain mobile robot designed for application development. Warthog enables researchers to reliably test, validate, and advance their robotics research faster than ever before in real-world conditions, whether on land or in water.</p>
<p><span id="more-67754"></span></p>
<p>“ARGO XTR (Xtreme Terrain Robotics) has a terrific record of manufacturing rock-solid outdoor platforms,” says Julian Ware, General Manager for Research Solutions at Clearpath Robotics. “Combined with our expertise in robotics, we’ve developed rugged platform suitable for a wide range of robotics applications in mining, agriculture, forestry, space, and environmental monitoring.”</p>
<p>Warthog’s light-weight aluminum chassis, low ground pressure, passive suspension system, and 24” traction tires allow it to easily traverse a variety of tough terrains including soft soils, thick muds and steep grades, all while carrying up to 272 kg of payload.    With built-in bilge pumps and an IP rating of 67, Warthog is fully weather-proof and amphibious, capable of moving through deep waterways at up to 4 km/h, or travel at speeds of up to 18 km/h while on land. The all-electric, skid steer platform has expandable power allowing for a runtime of 6 hrs and can be outfitted with quad tracks for ultimate traction and maneuverability in snow and sand.</p>
<div class="keep-aspect"><iframe title="Warthog UGV - Outdoor Research Robot" width="500" height="281" src="https://www.youtube-nocookie.com/embed/ilkuWxcwzV8?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>“ARGO XTR is excited to partner with a progressive robotics company like Clearpath with our platform,” says Jason Scheib, ARGO XTR Robotics Program Director.  “The combination of our proven experience in amphibious and extreme terrain environments with our platforms with the progressive software and sensor integration from Clearpath Robotics, has created a second to none solution for a myriad of research and commercial applications.”</p>
<p>Designed for end-to-end integration and customization, Warthog includes an internal computer, IMU, wheel encoders, and mounting racks, as well as accessible user power and communication ports for integrating sensors, manipulators, and other third-party hardware.   Warthog is shipped with the Robot Operating System (ROS) preconfigured and a Gazebo simulation model, allowing researchers to get started quickly with existing research and widely available open-source ROS libraries.</p>
<p><a href="http://www.clearpathrobotics.com/warthog-ugv" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Click here for more information</a>.</p>
<hr class="xh2  ">
<p><i>If you liked this article, you may also be interested in:</i></p>
<ul>
<li><a href="http://robohub.org/interview-international-ground-vehicle-ground-competition-igvc-winner-on-bigfoot-2-husky-ugv/" target="_blank" data-wpel-link="internal">Interview: International Ground Vehicle Ground Competition (IGVC) winner on “Bigfoot 2” Husky UGV</a></li>
<li><a href="http://robohub.org/4-reasons-why-industry-4-0-will-leave-agvs-behind/" target="_blank" data-wpel-link="internal">4 reasons why Industry 4.0 will leave AGVs behind</a></li>
<li><a href="http://robohub.org/5-innovation-challenges-in-materials-transport/" target="_blank" data-wpel-link="internal">5 innovation challenges in materials transport</a></li>
<li><a href="http://robohub.org/clearpath-and-christie-demo-3d-video-game-with-robots/" target="_blank" data-wpel-link="internal">Clearpath and Christie demo 3D video game with robots</a></li>
</ul>
<p><i>See all </i><a href="http://robohub.org/" target="_blank" data-wpel-link="internal"><i>the latest robotics news</i></a><i> on Robohub, or </i><a class="ext-link" title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-wpel-link="external"><i>sign up for our weekly newsletter</i></a><i>.</i></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROSCon 2015 recap and videos – Part 5</title>
		<link>https://robohub.org/roscon-2015-recap-and-videos-part-5/</link>
		
		<dc:creator><![CDATA[Open Source Robotics Foundation]]></dc:creator>
		<pubDate>Tue, 09 Aug 2016 11:29:02 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[BMW]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[Fetch Robotics]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROSCon 2015]]></category>
		<guid isPermaLink="false">http://robohub.org/roscon-2015-recap-and-videos-part-5/</guid>

					<description><![CDATA[Michael Ferguson spent a year as a software engineer at Willow Garage, helping rewrite the ROS calibration system, among other projects. In 2013, he co-founded Unbounded Robotics, and is currently...&#160;<a href="http://www.osrfoundation.org/michael-ferguson-fetch-robotics-accelerating-your-robotics-startup-with-ros/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[Read&#160;More]</a>]]></description>
										<content:encoded><![CDATA[<div id="attachment_65138" style="width: 960px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2016/08/ROS-screenshot-5.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-65138" class="size-full wp-image-65138" src="http://robohub.org/wp-content/uploads/2016/08/ROS-screenshot-5.jpg" alt="Michael Aeberhard: Automated Driving with ROS at BMW. Source: OSRF Blog" width="950" height="579" srcset="https://robohub.org/wp-content/uploads/2016/08/ROS-screenshot-5.jpg 950w, https://robohub.org/wp-content/uploads/2016/08/ROS-screenshot-5-425x259.jpg 425w, https://robohub.org/wp-content/uploads/2016/08/ROS-screenshot-5-492x300.jpg 492w" sizes="(max-width: 950px) 100vw, 950px" /></a><p id="caption-attachment-65138" class="wp-caption-text">Michael Aeberhard: Automated Driving with ROS at BMW. Source: OSRF Blog</p></div>
<p>ROSCon is an annual conference focused on ROS, the Robot Operating System. Every year, hundreds of ROS developers of all skill levels and backgrounds, from industry to academia, come together to teach, learn, and show off their latest projects.</p>
<p>Here is the next set of posts from the <a href="http://www.osrfoundation.org/category/blog/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">OSRF blog</a>, along with videos.<span id="more-64122"></span></p>
<h2>Amit Moran (Intel): Introducing ROS-RealSense: 3D Empowered Robotics Innovation Platform</h2>
<p>While Intel is best known for making computer processors, the company is also interested in how people interact with all of the computing devices that have Intel inside. In other words, Intel makes brains, but they need senses to enable those brains to understand the world around them. Intel has developed two very small and very cheap 3D cameras (one long range and one short range) called RealSense, with the initial intent of putting them into devices like laptops and tablets for applications such as facial recognition and gesture tracking.</p>
<p>Robots are also in dire need of capable and affordable 3D sensors for navigation and object recognition, and fortunately, Intel understands this, and they’ve created the RealSense Robotics Innovation Program to help drive innovation using their hardware. Intel itself isn’t a robotics company, but as Amit explains in his ROSCon talk, they want to be a part of the robotics future, which is why they prioritized ROS integration for their RealSense cameras.</p>
<p>A RealSense ROS package has been available since 2015, and Intel has been listening to feedback from roboticists and steadily adding more features. The package provides access to the RealSense camera data (RGB, depth, IR, and point cloud), and will eventually include basic computer vision functions (including plane analysis and blob detection) as well as more advanced functions like skeleton tracking, object recognition, and localization and mapping tools.</p>
<p>Intel RealSense 3D camera developer kits are <a href="http://click.intel.com/realsense.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">available now</a>, and you can order one for as little as $99.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/142622811" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<hr class="xh2  ">
<h2>Michael Aeberhard (BMW): Automated Driving with ROS at BMW</h2>
<p>BMW has been working on automated driving for the last decade, steadily implementing more advanced features ranging from emergency stop assistance and autonomous highway driving to fully automated valet parking and 360° collision avoidance. Several of these projects were presented at the 2015 Consumer Electronics Show, and as it turns out, the cars were running ROS for both environment detection and planning.</p>
<p>BMW, being BMW, has no problem getting new research hardware. Their latest development platform is the 335I G. This model comes with an advanced driver assistance system based around cameras and radar. The car has been outfitted with four low-profile laser scanners and one long-range radar, but otherwise, it’s pretty close (in terms of hardware) to what’s available in production BMWs.</p>
<p>Why did BMW choose to move from their internally developed software architecture to ROS? Michael explains how ROS’ reputation in the robotics research community prompted his team to give it a try, and they were impressed with its open source nature, distributed architecture, existing selection of software packages, as well as its helpful community. “A large user base means stability and reliability,” Michael says, “because somebody else probably already solved the problem you’re having.” Additionally, using ROS rather than a commercial software platform makes it much easier for BMW to cooperate with universities and research institutions.</p>
<p>Michael discusses the ROS software architecture that BMW is using to do its autonomous car development, and shows how the software interprets the sensor data to identify obstacles and lane markings and do localization and trajectory planning to enable full highway autonomy, based on a combination of lane keeping and dynamic cruise control. BMW also created their own suite of RQT and rviz plugins specifically designed for autonomous vehicle development.</p>
<p>After about two years of experience with ROS, BMW likes a lot of things about it, but Michael and his team do have some constructive criticisms: message transport needs more work (although ROS 2 should help with this), managing configurations for different robots is problematic, and it’s difficult to enforce compliance with industry standards like ISO.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/142622935" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<hr class="xh2  ">
<h2>Jerry Towler (SwRI): Mapviz – An Extensible 2D Visualization Tool for Automated Vehicles</h2>
<p>ROS already comes with a fantastic built-in visualization tool called rviz, so why would you want to use anything else? At <a href="http://www.swri.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Southwest Research Institute</a>, Jerry Towler explains how they’ve created a new visualization tool called Mapviz that’s specifically designed for the kind of large-scale outdoor environments necessary for autonomous vehicle development. Specifically, Mapviz is able to integrate all of the sensor data that you need on top of a variety of two-dimensional maps, such as road maps or satellite imagery.</p>
<p>As an autonomous vehicle visualization tool, Mapviz works just like you’d expect that it would, which Jerry demonstrated with several demos at ROSCon. Mapviz shows you a top-down view of where your vehicle is, and tracks it across a basemap that seamlessly pulls image tiles at multiple resolutions from a wide variety of local or networked map servers, including Open MapQuest and Bing Maps. Mapviz is, of course, very plugin-friendly. You can add things like stereo disparity feeds, GPS fixes, odometry, grids, pathing data, image overlays, projected laser scans, markers (including textured markers) from most sensor types, and more. It can’t really handle three dimensional data (although it’ll do two-and-a-half dimensions via color gradients), but for interactive tracking of your vehicle’s navigation and path planning behavior, Mapviz should offer most of what you need.</p>
<p>For a variety of non-technical reasons, SwRI hasn’t been able to release all of its tools and plugins as open source quite yet, but they’re working on getting approval as fast as they can. They’re also in the process of developing even more enhancements for Mapviz, and <a href="https://github.com/swri-robotics/mapviz" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">you can keep up to date with the latest version of the software on GitHub</a>.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/142623238" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<hr class="xh2  ">
<h2>Matt Vollrath and Wojciech Ziniew (End Point): ROS-Driven User Applications in Idempotent Environments</h2>
<p><a href="https://twitter.com/mdevolving" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Matt Vollrath</a> and <a href="https://www.endpoint.com/team/wojciech_ziniewicz" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Wojciech Ziniew</a> work at an ecommerce consultancy called End Point, where they provide support for Liquid Galaxy; a product that’s almost as cool as it sounds. Originally an open source project begun by Google engineers on their twenty percent time, Liquid Galaxy is a data visualization system consisting of a collection of large vertical displays that wrap around you horizontally. The displays show an immersive (up to 270°) image that’s ideal for data presentations, virtual tours, Google Earth, or anywhere you want a visually engaging environment. Think events, trade shows, offices, museums, galleries, and the like.</p>
<p>Last year, End Point decided to take all of the ad hoc services and protocols that they’d been using to support Liquid Galaxy and move everything over to ROS. The primary reason to do this was ROS support for input devices: you can use just about anything to control a Liquid Galaxy display system, from basic touchscreens to Space Navigator 3D mice to Leap Motions to depth cameras. The modularity of ROS is inherently friendly to all kinds of different hardware.</p>
<p>Check out this week’s ROSCon15 video as Matt and Wojciech take a deep dive into their efforts in bringing ROS to bear for these unique environments.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/142623341" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<hr class="xh2  ">
<h2>Tom Moore: Working with the Robot Localization Package</h2>
<p><a href="https://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Clearpath Robotics</a> is best known for building yellow and black robots that are the research platforms you’d build for yourself; that is, if it wasn’t much easier to just get them from Clearpath Robotics. All of their robots run ROS, and Clearpath has been heavily involved in the ROS community for years. Now with <a href="http://www.locusrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Locus Robotics</a>, Tom Moore spent seven months as an autonomy developer at Clearpath. He is the author and maintainer of the robot_localization ROS package, and gave a presentation about it at ROSCon 2015.</p>
<p>robot_localization is a general purpose state estimation package that’s used to give you (and your robot) an accurate sense of where it is and what it’s doing, based on input from as many sensors as you want. The more sensors that you’re able to use for a state estimate, the better that estimate is going to be, especially if you’re dealing with real-worldish things like unreliable GPS or hardware that flakes out on you from time to time. robot_localization has been specifically designed to be able to handle cases like these, in an easy to use and highly customizable way. It has state estimation in 3D space, gives you per-sensor message control, allows for an unlimited number of sensors (just in case you have 42 IMUs and nothing better to do), and more.</p>
<p>Tom’s ROSCon talk takes us through some typical use cases for robot_localization, describes where the package fits in with the ROS navigation stack, explains how to prepare your sensor data, and how to configure estimation nodes for localization. The talk ends with a live(ish) demo, followed by a quick tutorial on how to convert data from your GPS into your robot’s world frame.</p>
<p>The robot_localization package is up to date and very well documented, and you can learn more about it <a href="http://wiki.ros.org/robot_localization" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">on the ROS Wiki</a>.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/142624091" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<hr class="xh2  ">
<h2>Moritz Tenorth (Magazino): Maru and Toru — Item-Specific Logistics Solutions Based on ROS</h2>
<p>It’s not sexy, but the next big thing for robots is starting to look like warehouse logistics. The potential market is huge, and a number of startups are developing mobile platforms to automate dull and tedious order fulfillment tasks. Transporting products is just one problem worth solving: picking those products off of shelves is another. Magazino is a German startup that’s developing a robot called Toru that can grasp individual objects off of warehouse shelves, a particularly tricky task that Magazino is tackling with ROS.</p>
<p>Moritz Tenorth is Head of Software Development at Magazino. In his ROSCon talk, Moritz describes Magazino’s Toru as “a mobile pick and place robot that works together with humans in a shared environment,” which is exactly what you’d want in an e-commerce warehouse. The reason that picking is a hard problem, as Moritz explains, is perception coupled with dynamic environments and high uncertainty: if you want a robot that can pick a wide range of objects, it needs to be able to flexibly understand and react to its environment; something that robots are notoriously bad at. ROS is particularly well suited to this, since it’s easy to intelligently integrate as much sensing as you need into your platform.</p>
<p>Magazino’s experience building and deploying their robots has given them a unique perspective on warehouse commercialization with ROS. For example, databases and persistent storage are crucial (as opposed to a focus on runtime), and real-time control turns out to be less important than being able to quickly and easily develop planning algorithms and reducing system complexity. Software components in the ROS ecosystem can vary wildly in quality and upkeep, although ROS-Industrial is working hard to develop code quality metrics. Magazino is also working on remote support and analysis tools, and trying to determine how much communication is required in a multi-robot system, which native ROS isn’t very good at.</p>
<p>Even with those (few) constructive criticisms in mind, Magazino says that ROS is a fantastic way to quickly iterate on both software and hardware in parallel, especially when combined with 3D printed prototypes for testing. Most importantly, Magazino feels comfortable with ROS: it has a familiar workflow, versatile build system, flexible development architecture, robust community that makes hiring a cinch, and it’s still (somehow) easy to use.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/142624370" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<hr class="xh2  ">
<h2>Michael Ferguson (Fetch Robotics): Accelerating Your Robotics Startup with ROS</h2>
<p>Michael Ferguson spent a year as a software engineer at Willow Garage, helping rewrite the ROS calibration system, among other projects. In 2013, he co-founded Unbounded Robotics, and is currently the CTO of Fetch Robotics. At Fetch, Michael is one of the primary people responsible for making sure that Fetch’s robots reliably fetch things. Mike’s ROSCon talk is about how to effectively use ROS as an integral part of your robotics business, including best practices, potential issues to avoid, and how you should handle open source and intellectual property.</p>
<p>Because of how ROS works, much of your software development (commercial or otherwise) is dependent on many external packages. These packages are constantly being changed for the better — and sometimes for the worse — at unpredictable intervals that are completely out of your control. Using continuous integration, consisting of systems that can handle automated builds, testing, and deployment, can help you catch new problems as early as possible. Michael also shares that a useful way to avoid new problems is to not immediately switch over to new software as soon as they are available: instead, stick with long-term support releases, such as Ubuntu 14.04 and ROS Indigo.</p>
<p>While the foundation of ROS is built on open source, using ROS doesn’t mean that all of the software magic that you create for your robotics company has to be given away for free. ROS supports many different kinds of licenses, some of which your lawyers will be more happy with than others, but there are enough options with enough flexibility that it doesn’t have to be an issue. Using Fetch Robotics as an example, Mike discusses what components of ROS his company uses in their commercial products, including ROS Navigation and MoveIt. With these established packages as a base, Fetch was able to quickly put together operational demos, and then iterate on an operating platform by developing custom plugins optimized for their specific use cases.</p>
<p>When considering how to use ROS as part of your company, it’s important to look closely at the packages you decide to incorporate, to make sure that they have a friendly license, good documentation, recent updates, built-in tests, and a standardized interface. Keeping track of all of this will make your startup life easier in the long run. As long as you’re careful, relying on ROS can make your company more agile, more productive, and ready to make a whole bunch of money off of the future of robotics.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/142624685" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>&nbsp;</p>
<hr class="xh2  ">
<p><em>If you enjoyed this article, you may also want to read:</em></p>
<ul>
<li><a href="http://robohub.org/roscon-2015-recap-and-videos-part-4/" target="_blank" data-wpel-link="internal">ROSCon 2015 recap and videos – Part 4</a></li>
<li><a href="http://robohub.org/roscon-2015-recap-and-videos-part-3/" target="_blank" data-wpel-link="internal">ROSCon 2015 recap and videos – Part 3</a></li>
<li><a href="http://robohub.org/roscon-2015-recap-and-videos-part-2/" target="_blank" data-wpel-link="internal">ROSCon 2015 recap and videos – Part 2</a></li>
<li><a href="http://robohub.org/roscon-2015-recap-and-videos-part-1/" target="_blank" data-wpel-link="internal">ROSCon 2015 recap and videos – Part 1</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 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>ROSCon 2015 recap and videos &#8211; part 1</title>
		<link>https://robohub.org/roscon-2015-recap-and-videos-part-1/</link>
		
		<dc:creator><![CDATA[Open Source Robotics Foundation]]></dc:creator>
		<pubDate>Sun, 14 Feb 2016 00:53:42 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROSCon]]></category>
		<category><![CDATA[ROSCon 2015]]></category>
		<guid isPermaLink="false">http://robohub.org/roscon-2015-recap-and-videos-part-1/</guid>

					<description><![CDATA[Stefan&#8217;s early research using tiny soccer-playing humanoid robots at Technische Universit&#228;t Darmstadt in Germany prepared him well for software development on much larger humanoid robots that don&#8217;t play soccer at...&#160;<a href="http://www.osrfoundation.org/stefan-kohlbrecher-technische-universitaet-darmstadt-an-introduction-to-team-vigirs-open-source-software-and-drc-post-mortem/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[Read&#160;More]</a>]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-large wp-image-54636" src="http://robohub.org/wp-content/uploads/2015/09/roscon_hamburg_Crop-1024x714.jpg" alt="roscon_hamburg_Crop" width="1024" height="714" srcset="https://robohub.org/wp-content/uploads/2015/09/roscon_hamburg_Crop-1024x714.jpg 1024w, https://robohub.org/wp-content/uploads/2015/09/roscon_hamburg_Crop-425x296.jpg 425w, https://robohub.org/wp-content/uploads/2015/09/roscon_hamburg_Crop-430x300.jpg 430w, https://robohub.org/wp-content/uploads/2015/09/roscon_hamburg_Crop.jpg 1219w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>ROSCon is an annual conference focused on ROS, the <a href="http://ros.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Robot Operating System</a>. Every year, hundreds of ROS developers of all skill levels and backgrounds, from industry to academia, come together to teach, learn, and show off their latest projects. <a href="http://roscon.ros.org/2015/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROSCon 2015</a> was held in Hamburg, Germany. Here&#8217;s a recap of the first videos posted on the <a href="http://www.osrfoundation.org/category/blog/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">OSRF</a> blog. <span id="more-59509"></span></p>
<hr class="xh2  ">
<p><!--more--></p>
<h1>Opening Remarks, with Brian Gerkey</h1>
<p>Brian is the CEO of the Open Source Robotics Foundation, which oversees core ROS development and helps to coordinate the efforts of the ROS community. Brian helped found OSRF in 2012, after directing open source development at Willow Garage.</p>
<p>In the video, Brian provides an overview of ROSCon attendees and ROS user metrics that shows how diverse the ROS community has become. Brian touches on what’s happened with ROS over the last year, along with the future of ROS and OSRF, and what we have to look forward to in 2016. Brian also touches on DARPA’s <a href="https://rft.osrfoundation.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Robotics Fast Track</a> program.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/141807288" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<hr class="xh2  ">
<h2 class="entry-title">An introduction to Team ViGIR’s Open Source Software and DRC Post Mortem, with Stefan Kohlbrecher</h2>
<p>Stefan’s early research using tiny soccer-playing humanoid robots at Technische Universität Darmstadt in Germany prepared him well for software development on much larger humanoid robots that don’t play soccer at all. From the Darmstadt Dribblers RoboCup team to the DARPA Robotics Challenge Team ViGIR, Stefan has years of experience with robots that need to walk on two legs and do things while not falling over (much).</p>
<p>Almost all of the software that Team ViGIR used to control its ATLAS robot (named Florian) was ROS based. Stefan credits both the team’s prior experience with ROS, ROS’s existing software base, and its vibrant community for why Team ViGIR made the choice to go with ROS from the very beginning. Controlling the ATLAS robot is exceedingly complex, and Stefan takes us through the software infrastructure that Team ViGIR used during the DRC; from basic perception to motion planning to manipulation and user interfaces.</p>
<p>With lots of pictures and behind-the-scenes videos, Stefan describes how Team ViGIR planned to tackle the challenging DRC Finals course. The team used both high-level autonomy and low-level control, with an emphasis on dynamic, flexible collaboration between robot and operator. Stefan narrates footage of both of Florian’s runs at the DRC Finals; each was eventful, but we won’t spoil it for you.</p>
<p>To wrap up his talk, Stephan describes some of the lessons that Team ViGIR learned through their DRC experience: about ROS, about ridiculously complex humanoid robots, and about participating in a global robotics competition.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/142149253" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<hr class="xh2  ">
<h2>Commercial models for the robot generation, with Mark Shuttleworth</h2>
<p>In 2004, Canonical released the first version of Ubuntu, a Debian-based open source Linux OS that provides one of the main operational foundations of ROS. Canonical’s founder, Mark Shuttleworth, was CEO of the company until 2009, when he transitioned to a leadership role that lets him focus more on product design and partnerships. In 2002, Mark spent eight days aboard the International Space Station, but that was before the ISS was home to a ROS-powered robot. He currently lives on the Isle of Man with 18 ducks and an occasional sheep. Ubuntu was a platinum co-sponsor of ROSCon 2015, and Mark gave the opening keynote on developing a business in the robot age.</p>
<p>Changes in society and business are both driven by changes in technology, Mark says, encouraging those developing technologies to consider the larger consequences that their work will have, and how those consequences will result in more opportunities. Shuttleworth suggests that robotics developers really need two things at this point: a robust Internet of Things infrastructure, followed by the addition of dynamic mobility that robots represent. However, software is a much more realistic business proposition for a robotics startup, especially if you leverage open source to create a developer community around your product and let others innovate through what you’ve built.</p>
<p>To illustrate this principle, Mark shows a live demo of a hexapod called Erle-Spider, along with a robust, high-level ‘meta’ build and packaging tool called Snapcraft. Snapcraft makes it easy for users to install software and for developers to structure and distribute it without having to worry about conflicts or inter-app security. The immediate future promises opportunities for robotics in entertainment and education, Mark says, especially if hardware, ROS, and an app-like economy can come together to give developers easy, reliable ways to bring their creations to market.</p>
<p><iframe class="youtube-player" src="https://player.vimeo.com/video/141809512" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>The rest of the videos from the conference can be <a href="https://vimeo.com/osrfoundation/videos/page:2/sort:date/format:detail" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">found here.</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mastering ROS for robotics programming</title>
		<link>https://robohub.org/mastering-ros-for-robotics-programming/</link>
		
		<dc:creator><![CDATA[Lentin Joseph]]></dc:creator>
		<pubDate>Tue, 19 Jan 2016 14:46:03 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/mastering-ros-for-robotics-programming/</guid>

					<description><![CDATA[A new book by Lentin Joseph, Mastering ROS for Robotics Programming, discusses advanced concepts in robotics and how to implement them using ROS. Readers will learn how to build models of complex robots, and how to simulate and interface their robots using the ROS MoveIt! and the ROS navigation stack. Just released this past December, this 481-page book is one of [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="aligncenter size-full wp-image-58758" src="http://robohub.org/wp-content/uploads/2016/01/Lentin_Joseph_Mastering_ROS_for_Robotics_Programming.jpg" alt="Lentin_Joseph_Mastering_ROS_for_Robotics_Programming" width="973" height="568" srcset="https://robohub.org/wp-content/uploads/2016/01/Lentin_Joseph_Mastering_ROS_for_Robotics_Programming.jpg 973w, https://robohub.org/wp-content/uploads/2016/01/Lentin_Joseph_Mastering_ROS_for_Robotics_Programming-425x248.jpg 425w, https://robohub.org/wp-content/uploads/2016/01/Lentin_Joseph_Mastering_ROS_for_Robotics_Programming-500x292.jpg 500w" sizes="(max-width: 973px) 100vw, 973px" /><em>A new book by Lentin Joseph, <a href="https://www.packtpub.com/hardware-and-creative/mastering-ros-robotics-programming" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Mastering ROS for Robotics Programming</a>, discusses advanced concepts in robotics and how to implement them using ROS. Readers will learn how to build models of complex robots, and how to simulate and interface their robots using the ROS MoveIt! and the ROS navigation stack. Just released this past December, this 481-page book is one of the most advanced books on ROS currently available. Joseph is the CEO/Founder of <a href="http://www.qboticslabs.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Qbotics Labs</a>, and the author of <i><a href="http://robohub.org/learning-robotics-using-python/" target="_blank" data-wpel-link="internal">Learning Robotics using Python</a></i>.</em><span id="more-58757"></span></p>
<p>This book begins with a deep overview of the ROS framework, discusses robot manipulation and navigation, and covers how ROS interfaces with I/O boards, sensors, and actuators. Vision sensors are essential ingredients in robotics, and so an entire chapter is dedicated to how they interface with ROS. The book also explores hardware interfacing and the simulation of complex robots in ROS and ROS Industrial, and finishes with a chapter on best practices to follow while programming in ROS.</p>
<p>Below is an overview of the chapters in the book:</p>
<ol>
<li>Introduction to ROS and its package management</li>
<li>Working with 3D robot modeling in ROS</li>
<li>Simulating  robots using ROS and Gazebo</li>
<li>Using the ROS MoveIt! and Navigation stack</li>
<li>Working with Pluginlib, Nodelets and Gazebo plugins</li>
<li>Writing ROS controllers and visualization plugin</li>
<li>Interfacing I/O boards, sensors and actuators to ROS</li>
<li>Programming Vision sensors using ROS, Open-CV and PCL</li>
<li>Building  and interfacing differential drive mobile robot hardware in ROS</li>
<li>Exploring the advanced capabilities of ROS MoveIt!</li>
<li>ROS for Industrial Robots</li>
<li>Troubleshooting and best practices in ROS</li>
</ol>
<p>The book uses ROS Indigo installed on latest Ubuntu L.T.S 14.04.03. The codes are also compatible with ROS Jade. <a href="https://github.com/qboticslabs/mastering_ros" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://github.com/<wbr />qboticslabs/mastering_ros</a></p>
<p>A basic knowledge in R.O.S, GNU/Linux, and C++ programming concepts is recommended.</p>
<p>The book is published by PACKT and can be purchased at <a href="http://amzn.com/B0198DXFEW" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Amazon Global </a> and <a href="https://www.packtpub.com/hardware-and-creative/mastering-ros-robotics-programming" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">PACKT Publishing</a>. More information can be found on the <a href="http://mastering-ros.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">book website </a>and<a href="http://wiki.ros.org/Books/MasteringROSforRoboticsProgramming" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"> Wiki page</a>.</p>
<hr class="xh2  ">
<p><i>If you liked this post, you may also be interested in:</i></p>
<ul>
<li><a title="Permanent Link: Learning robotics using Python" href="http://robohub.org/learning-robotics-using-python/" rel="bookmark" data-wpel-link="internal">Learning robotics using Python</a></li>
<li><a title="Book Review: Implementation of Robot Systems, by Mike Wilson" href="http://robohub.org/book-review-implementation-of-robot-systems-by-mike-wilson/" rel="bookmark" data-wpel-link="internal">Book Review: Implementation of Robot Systems, by Mike Wilson</a></li>
<li><a title="Arduino for Makers #2: Deconstructing Arduino programs" href="http://robohub.org/arduino-for-makers-2-deconstructing-arduino-programs/" rel="bookmark" data-wpel-link="internal">Arduino for Makers #2: Deconstructing Arduino programs</a></li>
<li><a title="Arduino for Makers #1: Setting up a development station" href="http://robohub.org/arduino-for-makers-1-setting-up-a-development-station/" rel="bookmark" data-wpel-link="internal">Arduino for Makers #1: Setting up a development station</a></li>
<li><a title="MATLAB Robotics System Toolbox and ROS" href="http://robohub.org/matlab-robotics-system-toolbox-and-ros/" rel="bookmark" data-wpel-link="internal">MATLAB Robotics System Toolbox and ROS</a></li>
</ul>
<p><i>See all </i><a href="http://robohub.org/" data-wpel-link="internal"><i>the latest robotics news</i></a><i> on Robohub, or </i><a class="ext-link" title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-wpel-link="external"><i>sign up for our weekly newsletter</i></a><i>.</i></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Create a ROS sensor plugin for Gazebo</title>
		<link>https://robohub.org/create-a-ros-sensor-plugin-for-gazebo/</link>
		
		<dc:creator><![CDATA[Ricardo Téllez]]></dc:creator>
		<pubDate>Thu, 07 Jan 2016 21:35:34 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[Gazebo]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/create-a-ros-sensor-plugin-for-gazebo/</guid>

					<description><![CDATA[There are magnificent tutorials about how to create plugins for Gazebo in the GazeboSim webpage. There are even some tutorials about how to create plugins for Gazebo + ROS. Those tutorials show that there are several types of plugins (world, model, sensor, system, visual), and indicate how to create a plugin for&#160;a world type plugin. [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-58133" src="http://robohub.org/wp-content/uploads/2015/05/ROS_Plugin_Sensor_Gazebo.jpg" alt="ROS_Plugin_Sensor_Gazebo" width="1000" height="522" srcset="https://robohub.org/wp-content/uploads/2015/05/ROS_Plugin_Sensor_Gazebo.jpg 1000w, https://robohub.org/wp-content/uploads/2015/05/ROS_Plugin_Sensor_Gazebo-425x222.jpg 425w, https://robohub.org/wp-content/uploads/2015/05/ROS_Plugin_Sensor_Gazebo-500x261.jpg 500w" sizes="(max-width: 1000px) 100vw, 1000px" />
<p>There are magnificent <a href="http://gazebosim.org/tutorials?cat=write_plugin" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">tutorials about how to create plugins for Gazebo</a> in the GazeboSim webpage. There are even some tutorials about how to create <a href="http://www.gazebosim.org/tutorials?tut=ros_plugins&amp;cat=connect_ros" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">plugins for Gazebo + ROS,</a> which show that there are several types of plugins (world, model, sensor, system, visual), and indicate how to create a plugin for a world-type plugin. But I recently I needed to create a plugin for a light detector and couldn&#8217;t find a concrete example. Here&#8217;s a how-to post showing you how I did it.<span id="more-56656"></span></p>
<h2>How to: light sensor plugin in Gazebo</h2>
<p>Following the indications provided at the answers forum of <em>Gazebo</em>, I decided to build a very simple light detector sensor based on a camera. Instead of using a <em>raytracing</em> algorithm from lights, the idea is to use a camera to capture an image, then use the image to calculate the illuminance of the image, and then publish that illuminance value through a ROS topic.</p>
<p>Since the plugin is meant to be used with ROS, the whole plugin should be compilable using ROS environment.</p>
<h2>Creating a ROS package for the plugin</h2>
<p>First we need to create the package in our catkin workspace that will allow us to compile the plugin without a problem.</p>
<pre><code class="prettyprint prettyprinted"><span class="pln">cd </span><span class="pun">~/</span><span class="pln">catkin_ws/src
catkin_create</span><span class="pun">-</span><span class="pln">pkg gazebo_light_sensor_plugin gazebo_ros roscpp</span></code></pre>
<h2>Creating the plugin code</h2>
<p>For this purpose, since we are using a camera to capture the light, we are going to create a plugin class that inherits from the CameraPlugin. The code that follows has been created taking as guideline the code of the authentic <a href="https://github.com/ros-simulation/gazebo_ros_pkgs/blob/jade-devel/gazebo_plugins/src/gazebo_ros_camera.cpp" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">gazebo ROS camera plugin</a>.</p>
<p>Create a file called <em>light_sensor_plugin.h</em> inside the <strong>include</strong> directory of your package, including the following code:</p>
<pre><code class="prettyprint prettyprinted"><span class="pln">#ifndef GAZEBO_ROS_LIGHT_SENSOR_HH
#define GAZEBO_ROS_LIGHT_SENSOR_HH

#include &lt;string&gt;

// library for processing camera data for gazebo / ros conversions
#include &lt;gazebo/plugins/CameraPlugin.hh&gt;

#include &lt;gazebo_plugins/gazebo_ros_camera_utils.h&gt;

namespace gazebo
{
class GazeboRosLight : public CameraPlugin, GazeboRosCameraUtils
{
/// brief Constructor
/// param parent The parent entity, must be a Model or a Sensor
public: GazeboRosLight();

/// brief Destructor
public: ~GazeboRosLight();

/// brief Load the plugin
/// param take in SDF root element
public: void Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf);

/// brief Update the controller
protected: virtual void OnNewFrame(const unsigned char *_image,
unsigned int _width, unsigned int _height,
unsigned int _depth, const std::string &amp;_format);

ros::NodeHandle _nh;
ros::Publisher _sensorPublisher;

double _fov;
double _range;
};
}
#endif

</span></code></pre>
<p>As you can see, the code includes a node handler to connect to the <em>roscore</em>. It also defines a publisher that will publish messages containing the illuminance value. Two parameters have been defined: <em>fov</em> (field of view) and <em>range</em>. At present only <em>fov</em> is used to indicate the amount of pixels around the center of the image that will be taken into account to calculate the illuminance.</p>
<p>Then create a file named <em>light_sensor_plugin.cpp</em> containing the following code in the <strong><em>src</em></strong> directory of your package:</p>
<pre><code class="prettyprint prettyprinted"><span class="pln">#include &lt;gazebo/common/Plugin.hh&gt;
#include &lt;ros/ros.h&gt;
#include "/home/rtellez/iri-lab/iri_ws/src/gazebo_light_sensor_plugin/include/light_sensor_plugin.h"

#include "gazebo_plugins/gazebo_ros_camera.h"

#include &lt;string&gt;

#include &lt;gazebo/sensors/Sensor.hh&gt;
#include &lt;gazebo/sensors/CameraSensor.hh&gt;
#include &lt;gazebo/sensors/SensorTypes.hh&gt;

#include &lt;sensor_msgs/Illuminance.h&gt;

namespace gazebo
{
 // Register this plugin with the simulator
 GZ_REGISTER_SENSOR_PLUGIN(GazeboRosLight)

 ////////////////////////////////////////////////////////////////////////////////
 // Constructor
 GazeboRosLight::GazeboRosLight():
 _nh("light_sensor_plugin"),
 _fov(6),
 _range(10)
 {
 _sensorPublisher = _nh.advertise&lt;sensor_msgs::Illuminance&gt;("lightSensor", 1);
 }

 ////////////////////////////////////////////////////////////////////////////////
 // Destructor
 GazeboRosLight::~GazeboRosLight()
 {
 ROS_DEBUG_STREAM_NAMED("camera","Unloaded");
 }

 void GazeboRosLight::Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf)
 {
 // Make sure the ROS node for Gazebo has already been initialized
 if (!ros::isInitialized())
 {
 ROS_FATAL_STREAM("A ROS node for Gazebo has not been initialized, unable to load plugin. "
 &lt;&lt; "Load the Gazebo system plugin 'libgazebo_ros_api_plugin.so' in the gazebo_ros package)");
 return;
 }

 CameraPlugin::Load(_parent, _sdf);
 // copying from CameraPlugin into GazeboRosCameraUtils
 this-&gt;parentSensor_ = this-&gt;parentSensor;
 this-&gt;width_ = this-&gt;width;
 this-&gt;height_ = this-&gt;height;
 this-&gt;depth_ = this-&gt;depth;
 this-&gt;format_ = this-&gt;format;
 this-&gt;camera_ = this-&gt;camera;

 GazeboRosCameraUtils::Load(_parent, _sdf);
 }

 ////////////////////////////////////////////////////////////////////////////////
 // Update the controller
 void GazeboRosLight::OnNewFrame(const unsigned char *_image,
 unsigned int _width, unsigned int _height, unsigned int _depth,
 const std::string &amp;_format)
 {
 static int seq=0;

 this-&gt;sensor_update_time_ = this-&gt;parentSensor_-&gt;GetLastUpdateTime();

 if (!this-&gt;parentSensor-&gt;IsActive())
 {
 if ((*this-&gt;image_connect_count_) &gt; 0)
 // do this first so there's chance for sensor to run once after activated
 this-&gt;parentSensor-&gt;SetActive(true);
 }
 else
 {
 if ((*this-&gt;image_connect_count_) &gt; 0)
 {
 common::Time cur_time = this-&gt;world_-&gt;GetSimTime();
 if (cur_time - this-&gt;last_update_time_ &gt;= this-&gt;update_period_)
 {
 this-&gt;PutCameraData(_image);
 this-&gt;PublishCameraInfo();
 this-&gt;last_update_time_ = cur_time;

 sensor_msgs::Illuminance msg;
 msg.header.stamp = ros::Time::now();
 msg.header.frame_id = "";
 msg.header.seq = seq;

 int startingPix = _width * ( (int)(_height/2) - (int)( _fov/2)) - (int)(_fov/2);

 double illum = 0;
 for (int i=0; i&lt;_fov ; ++i)
 {
 int index = startingPix + i*_width;
 for (int j=0; j&lt;_fov ; ++j)
 illum += _image[index+j];
 }

 msg.illuminance = illum/(_fov*_fov);
 msg.variance = 0.0;

 _sensorPublisher.publish(msg);

 seq++;
 }
 }
 }
 }
}

</span></code></pre>
<p>That is the code that calculates, in a very basic form, the illuminance.</p>
<h2>Create a CMakeLists.txt</h2>
<p>Copy the following code in your <em>CMakeLists.txt</em></p>
<pre><code>cmake_minimum_required(VERSION 2.8.3)
project(gazebo_light_sensor_plugin)

# Load catkin and all dependencies required for this package
find_package(catkin REQUIRED COMPONENTS
roscpp
gazebo_ros
)

# Depend on system install of Gazebo
find_package(gazebo REQUIRED)

link_directories(${GAZEBO_LIBRARY_DIRS})
include_directories(${Boost_INCLUDE_DIR} ${catkin_INCLUDE_DIRS} ${GAZEBO_INCLUDE_DIRS})

add_library(${PROJECT_NAME} src/light_sensor_plugin.cpp)
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${GAZEBO_LIBRARIES} CameraPlugin)

catkin_package(
DEPENDS
roscpp
gazebo_ros
)
</code></pre>
<h2>Update the package.xml</h2>
<p>Now you need to include the following line in your <em>package.xml</em>, between the tags <em>&lt;export&gt;&lt;/export&gt;</em></p>
<p><code class="prettyprint prettyprinted"><span class="tag">&lt;gazebo_ros</span> <span class="atn">plugin_path</span><span class="pun">=</span><span class="atv">"${prefix}/lib"</span> <span class="atn">gazebo_media_path</span><span class="pun">=</span><span class="atv">"${prefix}"</span> <span class="tag">/&gt;</span></code></p>
<p>Now you are ready to <strong>compile the plugin</strong>. Compilation should generate the library containing the plugin inside your building directory.</p>
<h2>Create a world file</h2>
<p>Below is an example of a world file that includes the plugin. Save this code in a file named <em>light.world</em> inside the directory <em>worlds</em> of your package. This world file simply loads the camera with its plugin, so it might be a bit ugly, but it will be good enough for your tests. Feel free to add more elements and models in the world file.</p>
<pre><code>&lt;?xml version="1.0" ?&gt;
&lt;sdf version="1.4"&gt;
 &lt;world name="default"&gt;
 &lt;include&gt;
 &lt;uri&gt;model://ground_plane&lt;/uri&gt;
 &lt;/include&gt;

 &lt;include&gt;
 &lt;uri&gt;model://sun&lt;/uri&gt;
 &lt;/include&gt;

 &lt;!-- reference to your plugin --&gt;
 &lt;model name='camera'&gt;
 &lt;pose&gt;0 -1 0.05 0 -0 0&lt;/pose&gt;
 &lt;link name='link'&gt;
 &lt;inertial&gt;
 &lt;mass&gt;0.1&lt;/mass&gt;
 &lt;inertia&gt;
 &lt;ixx&gt;1&lt;/ixx&gt;
 &lt;ixy&gt;0&lt;/ixy&gt;
 &lt;ixz&gt;0&lt;/ixz&gt;
 &lt;iyy&gt;1&lt;/iyy&gt;
 &lt;iyz&gt;0&lt;/iyz&gt;
 &lt;izz&gt;1&lt;/izz&gt;
 &lt;/inertia&gt;
 &lt;/inertial&gt;
 &lt;collision name='collision'&gt;
 &lt;geometry&gt;
 &lt;box&gt;
 &lt;size&gt;0.1 0.1 0.1&lt;/size&gt;
 &lt;/box&gt;
 &lt;/geometry&gt;
 &lt;max_contacts&gt;10&lt;/max_contacts&gt;
 &lt;surface&gt;
 &lt;contact&gt;
 &lt;ode/&gt;
 &lt;/contact&gt;
 &lt;bounce/&gt;
 &lt;friction&gt;
 &lt;ode/&gt;
 &lt;/friction&gt;
 &lt;/surface&gt;
 &lt;/collision&gt;
 &lt;visual name='visual'&gt;
 &lt;geometry&gt;
 &lt;box&gt;
 &lt;size&gt;0.1 0.1 0.1&lt;/size&gt;
 &lt;/box&gt;
 &lt;/geometry&gt;
 &lt;/visual&gt;
 &lt;sensor name='camera' type='camera'&gt;
 &lt;camera name='__default__'&gt;
 &lt;horizontal_fov&gt;1.047&lt;/horizontal_fov&gt;
 &lt;image&gt;
 &lt;width&gt;320&lt;/width&gt;
 &lt;height&gt;240&lt;/height&gt;
 &lt;/image&gt;
 &lt;clip&gt;
 &lt;near&gt;0.1&lt;/near&gt;
 &lt;far&gt;100&lt;/far&gt;
 &lt;/clip&gt;
 &lt;/camera&gt;
 &lt;plugin name="gazebo_light_sensor_plugin" filename="libgazebo_light_sensor_plugin.so"&gt;
 &lt;cameraName&gt;camera&lt;/cameraName&gt;
 &lt;alwaysOn&gt;true&lt;/alwaysOn&gt;
 &lt;updateRate&gt;10&lt;/updateRate&gt;
 &lt;imageTopicName&gt;rgb/image_raw&lt;/imageTopicName&gt;
 &lt;depthImageTopicName&gt;depth/image_raw&lt;/depthImageTopicName&gt;
 &lt;pointCloudTopicName&gt;depth/points&lt;/pointCloudTopicName&gt;
 &lt;cameraInfoTopicName&gt;rgb/camera_info&lt;/cameraInfoTopicName&gt;
 &lt;depthImageCameraInfoTopicName&gt;depth/camera_info&lt;/depthImageCameraInfoTopicName&gt;
 &lt;frameName&gt;camera_depth_optical_frame&lt;/frameName&gt;
 &lt;baseline&gt;0.1&lt;/baseline&gt;
 &lt;distortion_k1&gt;0.0&lt;/distortion_k1&gt;
 &lt;distortion_k2&gt;0.0&lt;/distortion_k2&gt;
 &lt;distortion_k3&gt;0.0&lt;/distortion_k3&gt;
 &lt;distortion_t1&gt;0.0&lt;/distortion_t1&gt;
 &lt;distortion_t2&gt;0.0&lt;/distortion_t2&gt;
 &lt;pointCloudCutoff&gt;0.4&lt;/pointCloudCutoff&gt;
 &lt;robotNamespace&gt;/&lt;/robotNamespace&gt;
 &lt;/plugin&gt;
 &lt;/sensor&gt;
 &lt;self_collide&gt;0&lt;/self_collide&gt;
 &lt;kinematic&gt;0&lt;/kinematic&gt;
 &lt;gravity&gt;1&lt;/gravity&gt;
 &lt;/link&gt;
 &lt;/model&gt;
 &lt;/world&gt;
&lt;/sdf&gt;

</code></pre>
<h2>Create a launch file</h2>
<p>Now comes the final step: to create a launch that will upload everything for you. Save the following code as <em>main.launch</em> inside the <em>launch</em> directory of your package.</p>
<pre><code>&lt;launch&gt;
 &lt;!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched --&gt;
 &lt;include file="$(find gazebo_ros)/launch/empty_world.launch"&gt;
 &lt;arg name="verbose" value="true"/&gt;
 &lt;arg name="world_name" value="$(find gazebo_light_sensor_plugin)/worlds/light.world"/&gt;
 &lt;!-- more default parameters can be changed here --&gt;
 &lt;/include&gt;
 &lt;/launch&gt;</code></pre>
<h2>Ready to run!</h2>
<p>Now launch the world. Be sure that a roscore is running or your machine, and that the GAZEBO_PLUGIN_PATH environment var includes the path to the new plugin.</p>
<p>Now execute the following command:</p>
<pre><code>roslaunch gazebo_light_sensor_plugin main.launch</code></pre>
<p>You can see what the camera is observing by running the following command:</p>
<pre><code>rosrun image_view image_view image:=/camera/rgb/image_raw</code></pre>
<img decoding="async" class="aligncenter size-full wp-image-58136" src="http://robohub.org/wp-content/uploads/2015/05/Screenshot-from-2015-05-20-173457.png" alt="Screenshot-from-2015-05-20-173457" width="319" height="273" />
<div style="clear:both"></div>
<p>You can also have the value of luminance by watching the published topic:</p>
<pre><code>rostopic echo /gazebo_light_sensor_plugin/lightSensor</code></pre>
<p>&nbsp;</p>
<h2><img decoding="async" class="aligncenter size-full wp-image-58135" src="http://robohub.org/wp-content/uploads/2015/05/Screenshot-from-2015-05-20-173532.png" alt="Screenshot-from-2015-05-20-173532" width="205" height="165" /></h2>
<div style="clear:both"></div>
<h2>Conclusion</h2>
<p>Now you have a plugin for your Gazebo simulations that can measure (very roughly) the light detected. You can use it in you local copy of Gazebo or even inside The Construct.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>$150M in VC funding (2015) for businesses that use ROS</title>
		<link>https://robohub.org/ros-turns-8/</link>
		
		<dc:creator><![CDATA[Brian Gerkey]]></dc:creator>
		<pubDate>Tue, 08 Dec 2015 21:04:17 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROSCon]]></category>
		<guid isPermaLink="false">http://robohub.org/ros-turns-8/</guid>

					<description><![CDATA[[Cross-posted from the ROS blog.] Eight years ago, Morgan Quigley, Eric Berger and Andrew Ng published a paper that was not about ROS. It was about STAIR, the STanford Artificial...&#160;<a href="http://www.osrfoundation.org/ros-turns-8/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[Read&#160;More]</a>]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-57464" src="http://robohub.org/wp-content/uploads/2015/12/ROS-8-years-birthday.jpg" alt="ROS-8-years-birthday" width="1000" height="611" srcset="https://robohub.org/wp-content/uploads/2015/12/ROS-8-years-birthday.jpg 1000w, https://robohub.org/wp-content/uploads/2015/12/ROS-8-years-birthday-425x260.jpg 425w, https://robohub.org/wp-content/uploads/2015/12/ROS-8-years-birthday-491x300.jpg 491w" sizes="(max-width: 1000px) 100vw, 1000px" />
<p>Eight years ago, Morgan Quigley, Eric Berger and Andrew Ng published <a href="http://www.aaai.org/Papers/Workshops/2007/WS-07-15/WS07-15-008.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">a paper</a> that was not about ROS. It was about STAIR, the STanford Artificial Intelligence Robot, which used a library called Switchyard to pass messages between software modules to perform complex manipulation tasks like stapler grasping. Switchyard was a purpose-built framework that was designed to be modular and robot-independent, and it was such a good idea that in 2009, “<a href="https://www.willowgarage.com/sites/default/files/icraoss09-ROS.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS: An Open-Source Robot Operating System</a>” was presented at the IEEE International Conference on Robotics and Automation (ICRA) in Japan. As of this month, the paper introducing ROS has been cited 2,020 times, an increase of more than 50% over last year.<span id="more-57442"></span></p>
<p>The popularity of one single paper is only a minor indicator of the popularity of the robot operating system that it introduced. At eight years old, ROS is growing faster than ever, and helping the robotics community to grow along with it. We’re especially excited to see how brand new startups have been taking advantage of the open source nature of ROS to help them develop useful, reliable robots that are creating entirely new markets. In 2015 alone, more than $150 million in VC funding (that we know of) was invested in businesses that use ROS.</p>
<p>Large, established companies have been taking more and more notice of ROS as well. <a href="http://roscon.ros.org/2015/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">At ROSCon this year</a>, Fetch Robotics was joined as a platinum sponsor by Ubuntu, and a record number of gold sponsors included NVIDIA, Bosch, and Qualcomm and attendees from companies such as BMW, DJI, Intel and more. ROSCon 2015 was by far the largest conference we’ve ever had: it sold out weeks in advance. Clearly next year we’re going to have to find a much bigger venue to make room for more attendees, more speakers, and more exhibitors.</p>
<p>Taking a look at <a href="http://download.ros.org/downloads/metrics/metrics-report-2015-07.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">how much our community has grown this year</a>, it’s easy to see why ROSCon has become so popular: it’s a reflection of the enthusiasm and engagement of the ROS user base. In May 2015 alone, nearly nine million ROS packages were downloaded from over 70,000 unique IP addresses, and these numbers don’t even count mirrors. This suggests that ROS probably has hundreds of thousands of active users. We also have a very robust developer community: 1,840 people have contributed to ROS’ 10 million lines of code, averaging 20 commits per day. The ROS wiki has gotten 10% bigger since last year, and there are over 11,000 users on ROS Answers, a 32% increase over last year, with a total of more than 5,000 questions answered. It’s numbers like these that make us so confident in the long term future of ROS.</p>
<blockquote><br />
<strong>Counting ROS</strong></p>
<p>Because of the nature of the ROS license, we actually don’t know how many users, robots, and developers there are utilizing ROS. Many of the numbers that we are citing throughout are likely to be much larger. For example, we specifically know of approximately 80 types of robots using ROS, but almost every day we hear about new ones. And not every company using ROS discloses so publicly, so our estimates on venture capital investment can be better characterized as lower bounds than estimates.</blockquote>
<p>If you’re not part of the ROS community yet, there’s never been a better time to get involved. Even if you don’t have experience with robots or programming, there’s a wide variety of low-cost robots and helpful online tutorials that can get you started, and we’re also delighted to announce (just in time for the holidays!) that O’Reilly Media has published “<a href="http://shop.oreilly.com/product/0636920024736.do" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Programming Robots with ROS: A Practical Introduction to the Robot Operating System</a>,” by Morgan Quigley, Brian Gerkey, and Bill Smart, which will take you from zero to ROS expert in just 448 pages.</p>
<p>Learning ROS will allow you to do all kinds of cool stuff with more than 80 robotic platforms. You can choose from the capable, affordable TurtleBot, one of the many sophisticated humanoid robots that competed in the DARPA Robotics Challenge, or even NASA’s Robonaut, currently undergoing testing on the International Space Station. Robots powered by ROS are everywhere, and here are just a few of them:</p>
<p><iframe src="https://player.vimeo.com/video/146183080" width="500" height="281" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>For full frame clips see the <a href="https://vimeo.com/146183095" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">long version</a> of the montage.</p>
<p>Of course, we have no idea how many robots are actually running ROS, or how many people or companies are using it, because ROS is open source and completely free. We’re often surprised to learn that cutting edge robots that we’re already familiar with are powered by ROS, as when BMW announced at ROSCon that they’ve been using ROS in their autonomous cars for the past few years. We weren’t at all surprised to hear why BMW chose ROS for its autonomous driving research though: they appreciate its popularity, its stability and reliability based on a large user base, the fact that it makes it easy to collaborate, and its open source nature.</p>
<p>As the ROS community has grown, various special interest groups have organized to promote ROS for specific application domains. The ROS Industrial Consortium is one such group. ROS-I is a software library that builds on ROS and leverages its power and flexibility to control manufacturing automation equipment including industrial robot arms. It is supported by the 36-member organizations comprised of companies such as 3M, ABB, Boeing, Ford, Boeing, Siemens and more. Representatives from Boeing, Caterpillar, Yaskawa and more speak on behalf of ROS and ROS-I in <a href="https://youtu.be/GoAS9bmlenA" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">this video</a>.</p>
<p>2016 is poised to be the biggest year ever for ROS, and we’d like to highlight two things that are worth getting particularly excited about. The first is <a href="http://design.ros2.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS 2.0</a>, which we’ve been developing for the past few years. ROS 2 will support the growth of the ROS community by making it much easier to work with small embedded systems, teams of multiple robots, and robots that require real-time control. We’d also like to make sure you’re familiar with <a href="https://rft.osrfoundation.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Robotics Fast Track (RFT)</a>, which is  a program that we’re working on with DARPA. It’s an easy way for you to get government funding for your awesome robotics ideas without having to give up any of your IP, and absolutely anyone can apply.</p>
<p>We write these <a href="http://www.ros.org/news/2012/12/ros-five-years.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">anniversary posts</a> to help give you a sense of how ROS has a whole has been doing over the past year, but we’d certainly encourage you to find out for yourself, by getting involved. 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. OSRF is doing great, but the long-term success of ROS depends on all of the incredibly awesome ROS users themselves. If you’re already an active part of the ROS community, we can’t thank you enough, and if you’re not, think about it: you can help ROS grow and thrive for eight more years, and beyond.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Liatris: looking to change how robots see the world</title>
		<link>https://robohub.org/liatris-looking-to-change-how-robots-see-the-world/</link>
		
		<dc:creator><![CDATA[Mark Silliman]]></dc:creator>
		<pubDate>Tue, 20 Oct 2015 17:14:58 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/liatris-looking-to-change-how-robots-see-the-world/</guid>

					<description><![CDATA[Fully autonomous robotics could be developed today if objects could tell a robot what they are, their purpose and how to utilize them. Liatris is a new open source project built with ROS. Its objective is to reliably read an object’s pose and identity without relying on vision. It presents an opportunity to rip down [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="alignnone size-large wp-image-55397" src="http://robohub.org/wp-content/uploads/2015/10/Liatris-1024x784.png" alt="Liatris" width="1024" height="784" srcset="https://robohub.org/wp-content/uploads/2015/10/Liatris-1024x784.png 1024w, https://robohub.org/wp-content/uploads/2015/10/Liatris-425x325.png 425w, https://robohub.org/wp-content/uploads/2015/10/Liatris-392x300.png 392w, https://robohub.org/wp-content/uploads/2015/10/Liatris.png 1041w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>Fully autonomous robotics could be developed <i>today</i> if objects could tell a robot what they are, their purpose and how to utilize them. <a href="http://liatris.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Liatris</a> is a new open source project built with <a href="http://www.ros.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS</a>. Its objective is to reliably read an object’s pose and identity without relying on vision. It presents an opportunity to rip down the barriers that prevent robotics from being present in our everyday lives.</p>
<p><span id="more-55396"></span></p>
<p>Traditionally, a robot would be required to identify and locate every object in its workspace. Liatris, which is built primarily using ROS, <a href="http://kivy.org/#home" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Kivy</a> and <a href="https://www.python.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Python</a>, instead determines any object’s pose and identity using a touch screen and RFID reader.</p>
<div class="keep-aspect"><iframe title="Liatris.org - determines any object’s exact pose and identity using a touch screen and RFID reader" width="500" height="281" src="https://www.youtube-nocookie.com/embed/d_4yvNPyZpg?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 robot in the video is programmed to identify and grasp any object placed on the touch screen, regardless of the object’s shape, size or positioning. It perceives the object by utilizing the CAD model downloaded from Liatris’ API.</p>
<p>This also tells the robot how to grasp an object while avoiding collisions with other objects (thanks to <a href="http://moveit.ros.org" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MoveIt</a>).</p>
<p>The result is an accurate 3D perception and mobile manipulation solution. Liatris can even work simultaneously with multiple objects and touch screens.</p>
<p>Learn more at  <a href="http://Liatris.org" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Liatris.org</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Robots in Depth: OSRF&#8217;s Tully Foote on open source, ROS, and standardization</title>
		<link>https://robohub.org/robots-in-depth-osrfs-tully-foote-on-open-source-ros-and-standardization/</link>
		
		<dc:creator><![CDATA[Per Sjöborg]]></dc:creator>
		<pubDate>Wed, 14 Oct 2015 21:23:47 +0000</pubDate>
				<category><![CDATA[talk]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[OSRF]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[robohub focus on standardization]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Tully Foote]]></category>
		<guid isPermaLink="false">http://robohub.org/robots-in-depth-osrfs-tully-foote-on-open-source-ros-and-standardization/</guid>

					<description><![CDATA[Robots in Depth is a new video series featuring interviews with researchers, entrepreneurs, VC investors, and policy makers in robotics, hosted by Per Sjöborg. In this interview, Tully Foote &#8212; ROS Platform Manager at the Open Source Robotics Foundation (OSRF) &#8212; explains the benefits of open source in robotics and how ROS came to be an open standard. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="aligncenter size-full wp-image-55118" src="http://robohub.org/wp-content/uploads/2015/10/Tully-Foote-on-Robots-in-Depth-YouTube.jpg" alt="Tully-Foote-on-Robots-in-Depth---YouTube" width="1000" height="567" srcset="https://robohub.org/wp-content/uploads/2015/10/Tully-Foote-on-Robots-in-Depth-YouTube.jpg 1000w, https://robohub.org/wp-content/uploads/2015/10/Tully-Foote-on-Robots-in-Depth-YouTube-425x241.jpg 425w, https://robohub.org/wp-content/uploads/2015/10/Tully-Foote-on-Robots-in-Depth-YouTube-175x100.jpg 175w, https://robohub.org/wp-content/uploads/2015/10/Tully-Foote-on-Robots-in-Depth-YouTube-500x284.jpg 500w" sizes="(max-width: 1000px) 100vw, 1000px" />Robots in Depth is a new video series featuring interviews with researchers, entrepreneurs, VC investors, and policy makers in robotics, hosted by Per Sjöborg. In this interview, <span class="s1"><a href="http://www.osrfoundation.org/team/tully-foote/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Tully Foote</a> &#8212; ROS Platform Manager at the Open Source Robotics Foundation (OSRF) &#8212; explains the benefits of open source in robotics and how ROS came to be an open standard.</span><span id="more-55115"></span></p>
<p class="p1"><span class="s1"><div class="sprfocus12"><a class="sprfocusl" href="/tag/robohub-focus-on-standardization/" data-wpel-link="internal"> </a></div></span></p>
<p class="p1"><span class="s1">Foote explains the benefits of open source and how it helps make research and development more efficient when both researchers and start-ups can focus on their added value, rather than starting from scratch. This is an advantage for the whole robotics community, enabling it to move forward much faster. </span></p>
<p class="p1"><span class="s1">Foote also describes how developers can contribute directly to further developing the ROS standard, for the benefit of the robotics community.</span><span class="s1"> </span></p>
<div class="keep-aspect"><iframe title="Tully Foote on Robots in Depth" width="500" height="281" src="https://www.youtube-nocookie.com/embed/hNFMU2lPTHo?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><em>You can support Robots in Depth on <a class="ext-link" title="" href="http://www.patreon.com/RobotsinDepth" target="_blank" rel="external follow noopener noreferrer" data-wpel-link="external">Patreon.</a> Check out all the Robots in Depth videos <a href="http://robohub.org/archives/authors/robots-in-depth/" data-wpel-link="internal">here</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fifty planes in the air running ROS &#038; Gazebo</title>
		<link>https://robohub.org/fifty-planes-in-the-air-running-ros-gazebo/</link>
		
		<dc:creator><![CDATA[Open Source Robotics Foundation]]></dc:creator>
		<pubDate>Wed, 23 Sep 2015 14:21:52 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[Gazebo]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<guid isPermaLink="false">http://robohub.org/fifty-planes-in-the-air-running-ros-gazebo/</guid>

					<description><![CDATA[The Advanced Robotic Systems Engineering Lab at the Naval Postgraduate School in&#160;Monterey, CA recently flew fifty small autonomous planes together using ROS. Each plane &#8211; a styrofoam wing with a...&#160;<a href="http://www.osrfoundation.org/fifty-planes-in-the-air-running-ros-gazebo/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[Read&#160;More]</a>]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="aligncenter size-full wp-image-54263" src="http://robohub.org/wp-content/uploads/2015/09/ARSENL50.jpg" alt="ARSENL50" width="1000" height="516" srcset="https://robohub.org/wp-content/uploads/2015/09/ARSENL50.jpg 1000w, https://robohub.org/wp-content/uploads/2015/09/ARSENL50-425x219.jpg 425w, https://robohub.org/wp-content/uploads/2015/09/ARSENL50-500x258.jpg 500w" sizes="(max-width: 1000px) 100vw, 1000px" />The <a href="https://wiki.nps.edu/display/~thchung/ARSENL" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Advanced Robotic Systems Engineering Lab</a> at the Naval Postgraduate School in Monterey, CA recently flew fifty small autonomous planes together using ROS.<span id="more-54251"></span></p>
<div class="keep-aspect"><iframe title="ARSENL 50" width="500" height="281" src="https://www.youtube-nocookie.com/embed/9I8pUnUVRRI?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>Each plane – a styrofoam wing with a 56” wingspan – was equipped with a Pixhawk autopilot running a modified version of the open-source <a href="http://ardupilot.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Ardupilot</a> firmware and an ODroid u3 “payload” computer running ROS Indigo. The payload used <a href="https://github.com/mikeclement/autopilot_bridge" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">autopilot_bridge</a> (similar to <a href="http://wiki.ros.org/mavros" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">mavros</a>) to bridge between serial communications with the autopilot and ROS messages and services. A network node bridged ROS communications with a lightweight UDP-based protocol that allowed aircraft to share their pose and status with one another and to receive commands from the ground.</p>
<p>Also residing on the payload was a set of controller nodes that could “drive” the plane by sending updated target latitude-longitude-altitude commands to the autopilot. Controllers were individually activated by a state machine, based on commands from the ground. The controller used during the fifty-plane flight was a follower controller. A single ground operator commanded two sets of 25 planes each to configure themselves into leader-follower formations; planes would determine a leader based on highest altitude (which was deconflicted at the start of the flight). The leader would then proceed along a predefined racetrack, and all followers, listening to the broadcast position of the leader, would track its path while remaining at their designated altitudes.</p>
<p>https://youtu.be/-zKDdAw609Y</p>
<p>A detailed writeup of the flight test is posted at <a href="http://diydrones.com/profiles/blogs/from-zero-to-fifty-planes-in-twenty-seven-minutes" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">DIY Drones</a> and more information on the research project can be found at the <a href="http://arsenl.nps.edu/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ARSENL website</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Erle-Spider, the Ubuntu drone with legs</title>
		<link>https://robohub.org/erle-spider-the-ubuntu-drone-with-legs/</link>
		
		<dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator>
		<pubDate>Tue, 15 Sep 2015 18:44:12 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[crowdfunding]]></category>
		<category><![CDATA[Erle Robotics]]></category>
		<category><![CDATA[Robohub Crowdfunding Partner]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/erle-spider-the-ubuntu-drone-with-legs/</guid>

					<description><![CDATA[Erle-Spider is a drone with legs powered by Canonical’s new distribution for robots and IoT devices: Snappy Ubuntu Core. This computer with legs uses the Robot Operating System (ROS), and has been unleashed by Erle Robotics, a spanish startup focused on creating artificial brains for robots and drones. Now crowdfunding on Indiegogo, the Spider is powered [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-53939" src="http://robohub.org/wp-content/uploads/2015/09/erle-spider.jpg" alt="erle-spider" width="1000" height="598" srcset="https://robohub.org/wp-content/uploads/2015/09/erle-spider.jpg 1000w, https://robohub.org/wp-content/uploads/2015/09/erle-spider-425x254.jpg 425w, https://robohub.org/wp-content/uploads/2015/09/erle-spider-500x300.jpg 500w" sizes="(max-width: 1000px) 100vw, 1000px" />
<p>Erle-Spider is a drone with legs powered by Canonical’s new distribution for robots and IoT devices: Snappy Ubuntu Core. This computer with legs uses the Robot Operating System (ROS), and has been unleashed by Erle Robotics, a spanish startup focused on creating artificial brains for robots and drones. Now <a href="https://www.indiegogo.com/projects/erle-spider-the-ubuntu-drone-with-legs" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">crowdfunding on Indiegogo</a>, the Spider is powered by a 900MHz quad-core ARM Cortex-A7 microprocessor that includes 1GB of RAM and exposes several connection interfaces including Ethernet, USB, I2C, UART and HDMI. It also includes several sensors such as gyroscopes, a digital compass, a pressure sensor, gravity sensors or temperature sensors and can be further extended with any sensor that is already supported by ROS.</p>
<p><span id="more-53914"></span></p>
<img decoding="async" class="alignnone size-full wp-image-53919" src="http://robohub.org/wp-content/uploads/2015/09/Erle-Spider2.jpg" alt="Erle-Spider2" width="900" height="500" srcset="https://robohub.org/wp-content/uploads/2015/09/Erle-Spider2.jpg 900w, https://robohub.org/wp-content/uploads/2015/09/Erle-Spider2-425x236.jpg 425w, https://robohub.org/wp-content/uploads/2015/09/Erle-Spider2-500x278.jpg 500w" sizes="(max-width: 900px) 100vw, 900px" />
<p>The robot has been created to meet the increasing demand for low cost robot and drone platforms that help in the process of learning, research and development of new ideas. The spider is subject to low levels of regulation when compared to other drones and will provide support for existing tools already adopted by the Dronecode Foundation. Erle Robotics has announced that the Spider will be opened (both in hardware and software once the campaign is successfully funded).</p>
<p>“We’ve always believed that the future of robotics wouldn’t be about humanoids costing thousands of euros, but about Linux-based, open and affordable robots that allow people to put their creativity into real applications. With Erle-Spider using Ubuntu, millions of developers will have access to a robot that can be programmed using the same tools that they use everyday” &#8211; Víctor Mayoral Vilches, CTO at Erle Robotics.</p>
<div class="keep-aspect"><iframe title="Erle-Spider, an Ubuntu drone with legs" width="500" height="281" src="https://www.youtube-nocookie.com/embed/ybo-BuKfM2c?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>
<blockquote><iframe src="https://www.indiegogo.com/project/erle-spider-the-ubuntu-drone-with-legs/embedded" width="222px" height="445px" frameborder="0" scrolling="no"></iframe></blockquote>
<p>&nbsp;</p>
<p>Erle-Spider’s capabilities can be extended using “apps”. Developers can easily create these applications for the drone and sell them through the cloud-based app store. The apps can be as simple as a line follower algorithm or as complicated as a behavior that using SLAM helps the spider explore pipes and provide measurements. Creating these applications for the robot doesn’t require any developer licenses (when compared to existing cloud marketplaces for smartphones) and it’s as simple creating a zip file. Furthermore, ROS is integrated within the store thereby it can be used to develop these applications.</p>
<p>“Erle-Spider has literally been designed to explore terrain that other robots and drones haven’t seen yet.” &#8211; Alejandro Hernández Cordero, CRO at Erle Robotics.</p>
<img decoding="async" class="alignnone size-full wp-image-53920" src="http://robohub.org/wp-content/uploads/2015/09/Erle-Spider3.jpg" alt="Erle-Spider3" width="900" height="800" srcset="https://robohub.org/wp-content/uploads/2015/09/Erle-Spider3.jpg 900w, https://robohub.org/wp-content/uploads/2015/09/Erle-Spider3-425x378.jpg 425w, https://robohub.org/wp-content/uploads/2015/09/Erle-Spider3-338x300.jpg 338w" sizes="(max-width: 900px) 100vw, 900px" />
<p>Erle-Spider will be delivered this Christmas and is <a href="https://www.indiegogo.com/projects/erle-spider-the-ubuntu-drone-with-legs" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">available on Indiegogo</a> for 399$ .</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Coming of age: Clearpath&#8217;s Ryan Gariepy on growing a robotics startup</title>
		<link>https://robohub.org/coming-of-age-clearpaths-ryan-gariepy-on-growing-a-robotics-startup/</link>
		
		<dc:creator><![CDATA[Hallie Siegel]]></dc:creator>
		<pubDate>Tue, 01 Sep 2015 19:19:28 +0000</pubDate>
				<category><![CDATA[interviews]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Clearpath]]></category>
		<category><![CDATA[field robotics]]></category>
		<category><![CDATA[FSR]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Robot Launch]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Ryan Gariepy]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">http://robohub.org/coming-of-age-clearpaths-ryan-gariepy-on-growing-a-robotics-startup/</guid>

					<description><![CDATA[Launched in 2009 by a group of Waterloo engineering students, Clearpath&#8216;s unmistakeable bright yellow and black robots have become synonymous with unmanned vehicle research in university research labs around the world. Now, as the field of robotics matures, Clearpath is forging into industrial applications, too. We caught up with CTO Ryan Gariepy at the 2015 Field and Service Robotics conference [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em><img decoding="async" class="aligncenter wp-image-36405 size-full" src="http://robohub.org/wp-content/uploads/2014/08/gariepy-ryan_Clearpath.jpg" alt="gariepy-ryan_Clearpath" width="850" height="561" srcset="https://robohub.org/wp-content/uploads/2014/08/gariepy-ryan_Clearpath.jpg 850w, https://robohub.org/wp-content/uploads/2014/08/gariepy-ryan_Clearpath-425x280.jpg 425w, https://robohub.org/wp-content/uploads/2014/08/gariepy-ryan_Clearpath-454x300.jpg 454w" sizes="(max-width: 850px) 100vw, 850px" /></em></p>
<p><em>Launched in 2009 by a group of Waterloo engineering students, <a href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Clearpath</a>&#8216;s unmistakeable bright yellow and black robots have become synonymous with unmanned vehicle research in university research labs around the world. Now, as the field of robotics matures, Clearpath is forging into industrial applications, too. We caught up with CTO Ryan Gariepy at the 2015 <a href="http://robohub.org/tag/fsr/" data-wpel-link="internal">Field and Service Robotics conference (FSR)</a>, to talk about their roots in research, the role of ROS and open source in their business model, and the challenges and opportunities of launching a robotics startup in Canada.</em></p>
<p><span id="more-53408"></span></p>
<p><strong>[HS] You got your start in the business of robotics while you were still a student at Waterloo. What made you decide to launch a robotics company at that time? Did you have a specific project or technology you were developing that made you think, “Hey, this could actually be useful out there!” …? Or was it that you saw the potential in the field more generally? </strong></p>
<p><img decoding="async" class="alignleft size-medium wp-image-53448" src="http://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-425x425.jpg" alt="Ryan_Gariepy_Clearpath" width="425" height="425" srcset="https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-425x425.jpg 425w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-290x290.jpg 290w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-100x100.jpg 100w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-220x220.jpg 220w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-300x300.jpg 300w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-32x32.jpg 32w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-64x64.jpg 64w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-96x96.jpg 96w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath-128x128.jpg 128w, https://robohub.org/wp-content/uploads/2015/09/Ryan_Gariepy_Clearpath.jpg 900w" sizes="(max-width: 425px) 100vw, 425px" />[RG] We started Clearpath right out of university in 2009 as we finished our undergraduate degrees – I did my Masters at the same time as we were getting off the ground, which is generally regarded to be a bad idea in terms of stress levels. It’s hard to believe that we just celebrated our sixth anniversary this year.</p>
<p>Starting the company was less about the technology and more about the potential … we just looked at everything around us and said, “Why do we have to shovel snow? This can be automated. Why do we have to do any work that does not require human creativity?” There are a lot of dangerous jobs out there that most people don’t realize are performed on a daily basis by tens of thousands of people in order to keep society going, like mining, farming, construction, stocking warehouses. And yet we need fuel and food and buildings, and we want our same-day deliveries from the Internet. There is a demand for this kind of work to take place.</p>
<p>Around the time we were starting out, Google Maps was getting off the ground. The concept of having information available at your fingertips was also becoming compelling and valuable to people, and the best way to get information about the world on a constant basis is to involve robotics or automation in some form. At the same time, sensors and the cost of sensing were improving due to the rapid uptake in smart phones; we were seeing advances in laptops, smartphones, and electric and hybrid vehicles driving down costs and improving battery density.</p>
<blockquote><em>People now accept that robotics, automation, and intelligent systems can actually solve some of their problems.</em></blockquote>
<p>All of this was coming together and we felt that autonomous robotics was possible at a relatively high reliability and low cost, especially when compared with what had been done before.</p>
<p><strong>What would you say have been the biggest changes that you’ve seen in the field of robotics since then?</strong></p>
<p>I think one of the biggest changes is simply that people now accept that robotics, automation, and intelligent systems can actually solve some of their problems.</p>
<p>This recognition means that there are a lot of opportunities out there, both in terms of hardware and software. In some industries – ones that have been around for a long time – they already know how to build solid hardware that could be made robotic, but they need the right parts and the right software to automate it. Then there are other industries that need full solutions. There are a lot of pieces starting to come together now.</p>
<p><strong>Your early customer base was made up of mainly universities and research labs. Do you find yourself getting pulled into a different direction now that you’re expanding more into industry?</strong></p>
<p>The research market is definitely maturing and our product development cycle within that side of the business is very well understood. We’ve released two completely different platforms in the last eight months alone.</p>
<p>Now we are in a position where we can leverage the experience we gained from the R&amp;D market to address challenges in industry. We are actively pushing the development of full robotic solutions (including software), and will soon be releasing a new platform along these lines.</p>
<p><strong>How do you manage the problem of building in more than one direction at the same time?</strong></p>
<p>One of our biggest challenges is that there is no one single clear challenge, especially at the scale we’re at right now. At this stage there are many things that need to be focused on: sales, operations, quality assurance, new features, understanding where the market’s going, product management, marketing … so the challenge is more about managing the priorities of any given department.</p>
<p>How do I provide guidance to the team so that they can spend their time on the right tasks? How do we remain dynamic as a startup? How do we remain flexible enough to change direction quickly if we need to, but still be stable enough to stick to our core values? These are the kinds of questions we are dealing with.</p>
<p><strong>Speaking of core values, Clearpath took a chance from the beginning by focusing on open source and ROS. Does open source make for a good business model?</strong></p>
<blockquote><em>Why open source? No matter how large a company we become, there will always be more smart people who can build and program robots outside our company than within it.</em></blockquote>
<p>One of the reasons we looked at open source was the philosophy that no matter how large a company we become, there will always be more smart people who can build and program robots <em>outside</em> our company than <em>within</em> it. So it’s only logical that we work with whatever the community ends up creating around open source robotics, both to reinforce the community, and to hire from it.</p>
<p>That said, from a business model perspective it is more complicated. There are many companies that succeed with open source, but there is still no clear-cut model for building an open source company – and that tends to make people nervous. And yet by now we’ve seen several companies build on open source, including Google and Facebook, and it’s the same thing as building a startup on a LAMP stack: yes, you use open source and you may push back some code to open source, but you still have value you’re bringing on your own.</p>
<p>Earlier on we sold only hardware, which is easier to protect. Now that we’re getting into software sales, open source creates additional considerations for us, but it still hasn’t been an issue. Building on open source makes us more effective, and it certainly helps us engage much more with the robotics community.</p>
<p><strong>Now that you’ve done all the legwork of developing the product and proving the market, do you have any concerns that another company with more resources could just come along and say, “We know who their buyers are, and we know what their markets are, and we can imitate their products …”? </strong></p>
<blockquote><a href="http://robohub.org/tag/robot-launch/" data-wpel-link="internal"><img decoding="async" class="alignnone" src="http://robohub.org/wp-content/uploads/2015/05/Robot-Launch-Hero-Slide-425x239.jpg" alt="" width="425" height="239" /></a></p>
<p><a href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="alignnone" src="http://robohub.org/wp-content/uploads/2014/01/Clearpath_Robotics_Logo.gif" alt="Clearpath_Robotics_Logo" width="250" height="305" /></a>Clearpath is sponsoring the <a href="http://robohub.org/tag/robot-launch/" data-wpel-link="internal">2015 Robot Launch</a> &#8220;Open Source Robotics&#8221; Award, offering 10 hours of ROS consulting services to the winner.</blockquote>
<p>ROS is open source and we contribute a lot back to it. We test a lot, we support people, we contribute drivers, and we contribute utilities back. However, the work that we do on autonomy and in controls –planning, mapping localization, interfacing, vehicle management – is not open source. We may open source parts of it in the future as we advance our state of the art, but the ‘secret sauce’ is still closed, even though it’s built on ROS middleware.</p>
<p>Could it make life easier for our competitors in some cases? Yes, but by the same token nobody makes money on having a better robot-logging framework, for example, and everybody saves money by having a good free robot-logging framework. If a better logging framework is your only competitive advantage, it’s not really an advantage, is it? Personally, I’d rather not spend money on a logging framework, and spend more to compete on the actual value that we bring to our clients.</p>
<p><strong>You mentioned snow shoveling as one of your inspirations, which is a stereotypically Canadian problem. Did the Canadian climate and landscape figure into your business plan from the beginning? Is that why you wound up in field and service robotics, as opposed to some other application area?</strong></p>
<p>Of course our robots can survive the winter – we’re Canadian!</p>
<p>One of our competitive advantages is the terrible weather we have in Canada. We have harsh winters, we have a lot of forestry, a lot of primary resources to mine and harvest, and we have a lot of space that is sparsely populated, which makes it easier to do testing. We also happen to have a very well developed technology ecosystem here. When you put those things together, it’s natural to lean towards field robotics.</p>
<p>When we started there were very few platforms out there that could actually do field robotics, and so we set that as our first niche.</p>
<p><strong>How is the Canadian business landscape for robotics?</strong></p>
<p>Many of our first customers were Canadian universities, some of which are leading the way in robotics integration and research. Meanwhile, Industry Canada is looking at how robotics technology can be adapted to existing manufacturing clusters in Southwestern Ontario, like the auto sector, which took a hit when the North American auto industry had a downturn. Canada also has strengths such as communications and optics, which naturally extend into robotics. It also helps when we can do business with Canadian suppliers; we get our GPS’ from NovAtel, which is based in Calgary, for example.</p>
<p>That said, as a Canadian company you’re forced to go multinational almost instantly because there isn’t enough of a robotics market in Canada to stay Canadian for long. We recently announced that we’ll be expanding office space into Silicon Valley and a primary reason for that is because of the opportunity that is available in the US market. Regardless, the Waterloo Region will continue to be Clearpath’s ‘home base’ for the foreseeable future.</p>
<p><strong>People now refer to Waterloo as ‘Silicon Valley North’. What’s changed in the incubation space where Clearpath grew up since you launched?</strong></p>
<blockquote><em>It used to be that investors would demand that you move to the area where their office was, which was typically Boston or New York City or Silicon Valley, but that’s not always the case anymore.</em></blockquote>
<p>It used to be that investors and venture capitalists would demand that you move to the area where their office was, which was typically Boston or New York City or Silicon Valley, but that’s not always the case anymore. Investors are starting to recognize that there are also benefits to being in other locations, especially for startups. Waterloo has a very dynamic tech community. It’s also a quarter of the price to buy a house here than in some of those larger US cities, and the time it takes me to get to work is 10 minutes, which makes it pretty livable and affordable compared to Silicon Valley. We found that VCs are now willing to accept that good ideas and businesses can grow and thrive in other areas as long as these areas have the right attitude &#8211; and Waterloo certainly has that.</p>
<p>Take the displacement of BlackBerry employees for instance &#8211; quite a few very smart people who were working at Blackberry have moved on to bring their skills and experience to other industries. We’ve hired a number of them, and a number of them have gone off to launch their own startups.</p>
<p>On top that is the continual increase in the brand of the Waterloo Region, and specifically the University of Waterloo (UW), as the place to go for getting a great education and practical experience that can lead to entrepreneurship. YCombinator’s Paul Graham has noted that UW has a fantastic record for turning out very strong companies, specifically hardware companies.</p>
<p>The other change worth mentioning is that Clearpath isn’t alone. The first group of startups that came out of UW includes Pebble, Vidyard, and more recently Thalmic Labs. These are all people who have graduated from UW’s engineering program within a few years of each other.</p>
<p><strong>Does that help, too? Having a cluster that’s grown up together?</strong></p>
<p>It certainly does.</p>
<p>Take recruiting, for example. When you’re hiring someone it helps prospective employees to know that there are other options. Clearpath has hired quite a few people from outside the region and if you’re taking a risk and moving a few thousand kilometers to join us, it’s good to know that there are other companies around, whether it’s for future growth opportunities, shared interests, or participating in knowledge transfer. For prospective employees, knowing that you can get back on your feet if you need to, or that your partner can find a job in the region, is very useful.</p>
<p>There is also something to be said for being part of a startup community. We all know each other, and we try to mentor each other. Even if you’re not working in exactly the same market, you can look at other startups and see them succeeding – and this is evidence that you can do it too.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Learning robotics using Python</title>
		<link>https://robohub.org/learning-robotics-using-python/</link>
		
		<dc:creator><![CDATA[Lentin Joseph]]></dc:creator>
		<pubDate>Tue, 09 Jun 2015 15:00:45 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/learning-robotics-using-python/</guid>

					<description><![CDATA[A new book, Learning Robotics using Python, takes a different approach to teaching the Robotics Operating System (ROS). Written by Lentin Joseph, founder and CEO of Indian robotics startup Qbotics Labs, it enables you to learn by building an interactive, autonomous, mobile robot, and is the result of his research while designing the company&#8217;s autonomous robot prototype, Chefbot. It [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/1783287535/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1783287535&amp;linkCode=as2&amp;tag=therobpod-20&amp;linkId=5LQPGDBLFXRV3NZN" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="aligncenter wp-image-50725 size-full" src="http://robohub.org/wp-content/uploads/2015/06/final_cover-01-thumb-640x380-1176.png" alt="final_cover-01-thumb-640x380-1176" width="640" height="380" srcset="https://robohub.org/wp-content/uploads/2015/06/final_cover-01-thumb-640x380-1176.png 640w, https://robohub.org/wp-content/uploads/2015/06/final_cover-01-thumb-640x380-1176-425x252.png 425w, https://robohub.org/wp-content/uploads/2015/06/final_cover-01-thumb-640x380-1176-500x297.png 500w" sizes="(max-width: 640px) 100vw, 640px" /></a><div style="clear:both"></div></p>
<p><em>A new book, <a href="http://www.amazon.com/gp/product/1783287535/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1783287535&amp;linkCode=as2&amp;tag=therobpod-20&amp;linkId=5LQPGDBLFXRV3NZN" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Learning Robotics using Python</a>, takes a different approach to teaching the Robotics Operating System (ROS). Written by <a href="https://in.linkedin.com/pub/lentin-joseph/26/8a1/572" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Lentin Joseph</a>, founder and CEO of Indian robotics startup <a href="http://www.qboticslabs.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Qbotics Labs</a>, it enables you to learn by building an interactive, autonomous, mobile robot, and is the result of his research while designing the company&#8217;s autonomous robot prototype, Chefbot. It features Artificial Intelligence, vision capabilities, speech recognition and synthesis.</em></p>
<p><span id="more-50721"></span></p>
<p>Chefbot is designed primarily to serve food in hotels and restaurants and Qbotics plans to release the robot as open hardware to develop a community focussed on improving the design. The company also provides assistance for clients autonomous machines.</p>
<p>Learning Robotics Using Python uses ROS Indigo, a stable version of ROS, installed on the latest Ubuntu L.T.S 14.04.02. The code is also compatible with ROS Jade. After a basic introduction, it looks at the mechanical design of robots using open source tools. ROS is introduced following the building of 2D and 3D models, and Chefbot is simulated using ROS and Gazebo. The Chefbot simulation is adapted from a Turtlebot simulator.</p>
<p>With a successful simulation in Gazebo, the book turns to the hardware element, the selection of the electronic components needed to build the robot. The sensor and actuator interfacing is explored and interfacing embedded boards to ROS using Python.</p>
<p>The Chefbot has (Kinect) sensors, ultrasonics and sound sensors, as well as motor encoders. The book looks at the detailed interfacing of each sensor with ROS and Kinect, and how to work with depth to pointcloud package.</p>
<p>In addition, it examines speech recognition and synthesis in robots, using ROS and Python, and implementing a version of Artificial Intelligence using ROS and Python.</p>
<p>After all this interfacing, the final integration is possible, both in hardware and software, resulting in the complete robot.</p>
<p>It needs a GUI controller, built using PyQt. Debugging is enabled via ROS rqt. Once the GUI has been constructed, it goes into the calibration and testing of the robot before its deployment.</p>
<p>Learning robotics using Python is available on the <a href="https://www.packtpub.com/application-development/learning-robotics-using-python" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PACKT </a>website and also<a href="http://www.amazon.com/gp/product/1783287535/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1783287535&amp;linkCode=as2&amp;tag=therobpod-20&amp;linkId=5LQPGDBLFXRV3NZN" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"> Amazon.com</a>.</p>
<hr class="xh2  ">
<p><i>If you liked this article, you may also be interested in:</i></p>
<ul>
<li><a title="Book Review: Implementation of Robot Systems, by Mike Wilson" href="http://robohub.org/book-review-implementation-of-robot-systems-by-mike-wilson/" rel="bookmark" data-wpel-link="internal">Book Review: Implementation of Robot Systems, by Mike Wilson</a></li>
<li><a title="Arduino for Makers #2: Deconstructing Arduino programs" href="http://robohub.org/arduino-for-makers-2-deconstructing-arduino-programs/" rel="bookmark" data-wpel-link="internal">Arduino for Makers #2: Deconstructing Arduino programs</a></li>
<li><a title="Arduino for Makers #1: Setting up a development station" href="http://robohub.org/arduino-for-makers-1-setting-up-a-development-station/" rel="bookmark" data-wpel-link="internal">Arduino for Makers #1: Setting up a development station</a></li>
<li><a title="MATLAB Robotics System Toolbox and ROS" href="http://robohub.org/matlab-robotics-system-toolbox-and-ros/" rel="bookmark" data-wpel-link="internal">MATLAB Robotics System Toolbox and ROS</a></li>
</ul>
<p><i>See all </i><a href="http://robohub.org/" data-wpel-link="internal"><i>the latest robotics news</i></a><i> on Robohub, or </i><a href="http://eepurl.com/t-UEf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><i>sign up for our weekly newsletter</i></a><i>.</i></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS101: Creating your own RQT Dashboard</title>
		<link>https://robohub.org/ros101-creating-your-own-rqt-dashboard/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Wed, 18 Mar 2015 11:54:23 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS101 Tutorial]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/ros101-creating-your-own-rqt-dashboard/</guid>

					<description><![CDATA[<p>By Martin Cote After working in the terminal, gazebo and RViz, it&#8217;s time for a change of pace. For this ROS101 tutorial we&#8217;ll be detailing the basics of creating your own rqt dashboard!&#160;A dashboard is a single rqt window with one or more plugins displayed in movable, re-sizable frames. Dashboards generally consist of a number [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/ros101-creating-rqt-dashboard/" data-wpel-link="external" target="_blank">ROS101: Creating your own RQT Dashboard</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics Inc.</a>.</p>]]></description>
										<content:encoded><![CDATA[<a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal"><img decoding="async" class="size-full wp-image-26299" src="http://robohub.org/wp-content/uploads/2014/01/ROS101.jpg" alt="ROS101_Clearpath" width="520" height="260" srcset="https://robohub.org/wp-content/uploads/2014/01/ROS101.jpg 520w, https://robohub.org/wp-content/uploads/2014/01/ROS101-300x150.jpg 300w, https://robohub.org/wp-content/uploads/2014/01/ROS101-500x250.jpg 500w" sizes="(max-width: 520px) 100vw, 520px" /></a>
<p><em>By Martin Cote</em></p>
<p>After working in the terminal, gazebo and RViz, it’s time for a change of pace. For this <a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal">ROS101 tutorial</a> we’ll be detailing the basics of creating your own rqt dashboard! A dashboard is a single rqt window with one or more plugins displayed in movable, re-sizable frames. Dashboards generally consist of a number of plugins that, in combination, provide a suite of UI capabilities for working with robots and robot data.<span id="more-47342"></span></p>
<p>Dashboards can be populated and configured interactively in an rqt session. A preferred configuration can be saved as a “Perspective,” which saves the plugins loaded, their layout, where they are supported, their settings, and last-saved initial parameters (such as what topic we were last plotting). In this tutorial we’ll be working with the Husky simulation in ROS Indigo. To install ROS Indigo, please see <a title="ROS Wiki" href="http://wiki.ros.org/indigo/Installation/Ubuntu" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">these</a> instructions, and visit our <a title="Husky" href="http://wiki.ros.org/husky_gazebo/Tutorials/Simulating%20Husky" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Husky simulation page</a> to install the Husky simulation.</p>
<h2><strong>Getting Started</strong></h2>
<p>The first step is to install rqt! We’ll also be installing some common plugins to create our dashboard:</p>
<pre>sudo apt-get install ros-indigo-rqt ros-indigo-rqt-common-plugins ros-indigo-rqt-robot-plugins</pre>
<p>We can then launch RQT by simply using:</p>
<pre>rqt</pre>
<p>In the Plugins menu, select each plugin you want to load. You can change the layout by dragging and rescaling each plugin by its title bar or edges.</p>
<img decoding="async" src="http://robohub.org/wp-content/uploads/2015/03/1-Blank-1024x576.png" alt="1-Blank-1024x576" width="1024" height="576" class="alignnone size-full wp-image-47382" srcset="https://robohub.org/wp-content/uploads/2015/03/1-Blank-1024x576.png 1024w, https://robohub.org/wp-content/uploads/2015/03/1-Blank-1024x576-425x239.png 425w, https://robohub.org/wp-content/uploads/2015/03/1-Blank-1024x576-500x281.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />
<h2><strong>A practical example</strong></h2>
<p>We’ll now create a rqt dashboard with a few useful plugins and demonstrate a potential use case for this particular dashboard. For this tutorial we’ll be using our virtual Husky to simulate sensor data. Open Husky up in Gazebo using:</p>
<pre>roslaunch husky_gazebo husky_playpen.launch</pre>
<p>You can minimize Gazebo for now as we set up our rqt dashboard. Begin by opening the following plugin from the plugins drop down menu, and re size them as you like,</p>
<p><em>Rviz<br />
Plot x2<br />
Bag<br />
Robot Steering</em></p>
<img decoding="async" src="http://robohub.org/wp-content/uploads/2015/03/1-With-Plugins-1024x576.png" alt="1-With-Plugins-1024x576" width="1024" height="576" class="alignnone size-full wp-image-47383" srcset="https://robohub.org/wp-content/uploads/2015/03/1-With-Plugins-1024x576.png 1024w, https://robohub.org/wp-content/uploads/2015/03/1-With-Plugins-1024x576-425x239.png 425w, https://robohub.org/wp-content/uploads/2015/03/1-With-Plugins-1024x576-500x281.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>Each plugin has their own uses and settings, for more information about a particular plugin, visit the <a href="http://wiki.ros.org/rqt/Plugins" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">rqt plugins</a> page of the ROS wiki</p>
<p>When you’re happy with a dashboard configuration, you can save the perspective by selecting Perspectives, Create Perspective, giving it a name, and asking it to clone the current perspective. These perspectives are saved locally and persist between sessions.</p>
<p>To export a perspective for closer management such as sharing or persisting to a repository, select Perspectives, Export and give it a name with the filename extension, .perspective</p>
<h2><strong>Loading a Perspective</strong></h2>
<p>A perspective can be loaded interactively in RQT by selecting Perspectives, import. However a more useful way is to launch them from the command-line, which allows us to wrap them in a script that can be rosrun or roslaunched:</p>
<pre>rqt --perspective-file "$(rospack find my_ros_rqt_package)/config/my_dashboard.perspective"</pre>
<p>Some plugins allow you to configure options that impact its installation and behavior. For example, the Python Console plugin allows you to choose which console implementation to use. You can access these options for any plugin by selecting the gear icon in its title bar. If no gear icon is present, the plugin has not been configured to provide an options menu.</p>
<p><span style="text-decoration: underline;">Rviz:</span> To load Husky into your Rviz plugin, select “open config” from the drop down menu, and navigate to /opt/ros/indigo/share/husky_viz/rviz/view_robot.rviz. You should now see a model of Husky loaded in Rviz! By default, this config file will include the simulated laser, and you can see the object in Husky’s path in the Gazebo environment.</p>
<p>&nbsp;</p>
<img decoding="async" src="http://robohub.org/wp-content/uploads/2015/03/3-load-config-rqt-1024x576.png" alt="3-load-config-rqt-1024x576" width="1024" height="576" class="alignnone size-full wp-image-47384" srcset="https://robohub.org/wp-content/uploads/2015/03/3-load-config-rqt-1024x576.png 1024w, https://robohub.org/wp-content/uploads/2015/03/3-load-config-rqt-1024x576-425x239.png 425w, https://robohub.org/wp-content/uploads/2015/03/3-load-config-rqt-1024x576-500x281.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />
<img decoding="async" src="http://robohub.org/wp-content/uploads/2015/03/3-with-plugins-Gazebo-1024x576.png" alt="3-with-plugins-Gazebo-1024x576" width="1024" height="576" class="alignnone size-large wp-image-47385" srcset="https://robohub.org/wp-content/uploads/2015/03/3-with-plugins-Gazebo-1024x576.png 1024w, https://robohub.org/wp-content/uploads/2015/03/3-with-plugins-Gazebo-1024x576-425x239.png 425w, https://robohub.org/wp-content/uploads/2015/03/3-with-plugins-Gazebo-1024x576-500x281.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p><span style="text-decoration: underline;"><strong>Plot</strong>:</span> The Plot tool is very useful to plot a particular topic in real time, for this example we will be plotting the commanded odometery topic versus the simulated odometrey. In the input window on the top right of the plot plugin, add the follow topic in each plot.</p>
<p>/odometry/filtered/twist/twist/angular/z</p>
<p>and</p>
<p>/husky_velocity_controller/odom/twist/twist/angular/z</p>
<p><span style="text-decoration: underline;"><span class="wysiwyg-underline"><strong>Robot Steering</strong>:</span></span> The robot steering plugin provides us with a simple way to manually drive Husky, all that is required is to specify  the  topic which accepts the velocity commands to move your Robot, for virtual Husky, that topic is /cmd_vel.</p>
<p>It’s time to put it together! Try commanding Husky to turn in place using the robot steering plugin, and watch your Husky is RViz turn in place while it’s updating the laser scan! You should also see the commanded odometry in one of your plots, while the actual odometry lags slightly behind as it catches up to the desired value.</p>
<img decoding="async" src="http://robohub.org/wp-content/uploads/2015/03/4-graph-topics-1024x576.png" alt="4-graph-topics-1024x576" width="1024" height="576" class="alignnone size-full wp-image-47386" srcset="https://robohub.org/wp-content/uploads/2015/03/4-graph-topics-1024x576.png 1024w, https://robohub.org/wp-content/uploads/2015/03/4-graph-topics-1024x576-425x239.png 425w, https://robohub.org/wp-content/uploads/2015/03/4-graph-topics-1024x576-500x281.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p><span style="text-decoration: underline;"><span class="wysiwyg-underline"><strong>Rqt bag</strong>:</span></span> Rosbag is an extremely useful tool  for logging, and our support team may often ask for a bag file to take a closer look at your system. It’s possible to record a bag through the terminal, but using rqt is much simpler and more intuitive. Let’s record  a bag file of Husky driving around by clicking the record button, and selecting the topics you want to record. Once you’re happy with the data recorded, stop the recording.</p>
<p>Playing a bag file back is just as simple. Let’s go ahead and close rqt and Gazebo so ROS is no longer running, then start ROS again with just roscore:</p>
<pre>roscore</pre>
<p>And open rqt back up and load the ROS bag plugin again:</p>
<pre>rqt</pre>
<p>This time we are going to open up the bag file we just recorded by clicking the 2nd button. You’ll now see all the topics that were recorded, and when messages were sent over that topic. You can take a closer look at a particular ticket by right clicking and selecting to view either the values or plot a particular topic.</p>
<p>&nbsp;</p>
<img decoding="async" src="http://robohub.org/wp-content/uploads/2015/03/5-Bag-reply-1024x576.png" alt="5-Bag-reply-1024x576" width="1024" height="576" class="alignnone size-full wp-image-47387" srcset="https://robohub.org/wp-content/uploads/2015/03/5-Bag-reply-1024x576.png 1024w, https://robohub.org/wp-content/uploads/2015/03/5-Bag-reply-1024x576-425x239.png 425w, https://robohub.org/wp-content/uploads/2015/03/5-Bag-reply-1024x576-500x281.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>For more information regarding rqt, please visit the<a href="http://wiki.ros.org/rqt" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"> ROS Wiki </a>page, if you have any questions regarding this particular tutorial, please don’t hesitate to contact us!</p>
<p>Looking for other Clearpath tutorials? <a title="Do more with Udev" href="http://robohub.org/do-more-with-udev/" data-wpel-link="internal">Here’s one</a> you might like! See all the ROS101 tutorials <a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal">here</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>New open source Turtlebot tutorial aims to bring robotic development to the masses</title>
		<link>https://robohub.org/new-open-source-turtlebot-tutorial-aims-to-bring-robotic-development-to-the-masses/</link>
		
		<dc:creator><![CDATA[Mark Silliman]]></dc:creator>
		<pubDate>Thu, 05 Mar 2015 20:48:48 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/new-open-source-turtlebot-tutorial-aims-to-bring-robotic-development-to-the-masses/</guid>

					<description><![CDATA[Critical mass is required to start any revolution and robotics will be no different. The newly published open-source project learn.turtlebot.com is designed to introduce high school students and the web development community to ROS, and allow them a fast track to experiencing its uses. The tutorials take developers from the initial setup of TurtleBot through [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="aligncenter size-full wp-image-46883" src="http://robohub.org/wp-content/uploads/2015/03/turtlebot-tutorial.jpeg" alt="turtlebot-tutorial" width="929" height="509" srcset="https://robohub.org/wp-content/uploads/2015/03/turtlebot-tutorial.jpeg 929w, https://robohub.org/wp-content/uploads/2015/03/turtlebot-tutorial-425x232.jpeg 425w, https://robohub.org/wp-content/uploads/2015/03/turtlebot-tutorial-500x273.jpeg 500w" sizes="(max-width: 929px) 100vw, 929px" />Critical mass is required to start any revolution and robotics will be no different. The newly published open-source project <a href="http://learn.turtlebot.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">learn.turtlebot.com</a> is designed to introduce high school students and the web development community to ROS, and allow them a fast track to experiencing its uses.<span id="more-46882"></span></p>
<p>The tutorials take developers from the initial setup of TurtleBot through programming a web app to control it. The final demo is to bring coffee to people around an office, but my ultimate goal is for creative new users to learn from this simple idea and modify at their whim to generate inventive uses and expansions.</p>
<p>I produced this free series in hopes of bringing robotics technology to the web development community. As we recently saw with 3D printers, web developers have a long tradition of embracing emerging technologies. My goal, as a member of both the open-source robotics and web development communities, is to encourage web developers to start learning robotics so that we can see the same sort of creativity and popularity take off.</p>
<div class="keep-aspect"><iframe title="Robot delivers fresh coffee when you tap your phone" width="500" height="281" src="https://www.youtube-nocookie.com/embed/ni49uYq4cF4?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 way I see it, if we can give developers a taste of ROS’ power, they will invest the time to learn ROS properly. Today robotics stands on the foundation built by many brilliant people and engaged, innovative communities; now it is time to mine the untapped potential of developers not previously involved with robotics. By sparking developers’ interest and teaching them the basics of ROS, I hope to break down even more barriers and put us that much closer to making the robot revolution a reality.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS, Arduino, and a Husky simulation</title>
		<link>https://robohub.org/ros-arduino-and-a-husky-simulation/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Fri, 23 Jan 2015 18:21:54 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[Husky]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/ros-arduino-and-a-husky-simulation/</guid>

					<description><![CDATA[<p>By Martin Cote The Arduino family of micro controllers has quickly become a go-to board for hobbyists due to its ease of use. Often times roboticists must create communication protocols to allow their embedded hardware to communicate with a computer. One of the most powerful aspects of ROS is that it can communicate with a [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/arduino-ros/" data-wpel-link="external" target="_blank">ROS, Arduino, and a Husky Simulation</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics Inc.</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><em>By Martin Cote</em></p>
<p>The Arduino family of micro controllers has quickly become a go-to board for hobbyists due to its ease of use. Often times roboticists must create communication protocols to allow their embedded hardware to communicate with a computer. One of the most powerful aspects of ROS is that it can communicate with a large variety of hardware. That’s where rosserial comes in! Rosserial is a general protocol for sending ROS messages over a serial interface, such as the UART on Arduino. This allows you to easily interface any sensors attached to Arduino into your ROS environment. Read on to learn more!<span id="more-45252"></span></p>
<p>This tutorial will get you started  by setting up the Arduino IDE and installing the rosserial libraries. Then, we’ll test it out by driving the Husky simulation using a neat trick with the Arduino board. It should goes without saying you’ll need an Arduino to complete this tutorial. We’ll also be using a Husky simulator, so make sure to run through our “Drive a Husky” tutorial if you haven’t done so yet.</p>
<h2><span class="wysiwyg-font-size-large">Setup</span></h2>
<p>The first step is to set up your Arduino environment, begin by installing the Arduino IDE and rosserial using:</p>
<pre>sudo apt-get install arduino arduino-core ros-hydro-rosserial ros-hydro-rosserial-arduino</pre>
<p>Once you open up the Arduino IDE for the first time, a directory named “sketchbook” will be created in your home directory. Now we need to import the rosserial library into your arduino IDE. If your sketchbook directory is empty, you may need to create a directory named “libraries” inside of it.</p>
<pre>mkdir ~/sketchbook/libraries
cd ~/sketchbook/libraries
rosrun rosserial_arduino make_libraries.py .</pre>
<p>Restart your Arduino IDE and you should see the ros_lib part of your libraries!</p>
<img decoding="async" class="aligncenter size-full wp-image-45325" src="http://robohub.org/wp-content/uploads/2015/01/ros_lib-check.png" alt="ros_lib-check" width="645" height="774" srcset="https://robohub.org/wp-content/uploads/2015/01/ros_lib-check.png 645w, https://robohub.org/wp-content/uploads/2015/01/ros_lib-check-354x425.png 354w, https://robohub.org/wp-content/uploads/2015/01/ros_lib-check-250x300.png 250w" sizes="(max-width: 645px) 100vw, 645px" />
<p>&nbsp;</p>
<p>You’ll want to ensure that your Ubuntu user is part of the “Dailout” group, which grants you access to serial ports. You can check by using</p>
<pre>groups "username”</pre>
<p>If you don’t see “dailout”, you can easily add yourself using</p>
<pre>sudo gpasswd --add "username" dialout</pre>
<p>One last step to make our lives easier will be to create udev rules so your Arduino is  recognized when plugged in and the correct permissions are set. For more information on udev rules check out ou<a href="https://support.clearpathrobotics.com/hc/en-us/articles/203252569-Udev-Rules" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">r udev article </a>. Begin by plugging in your Arduino.</p>
<p><strong><strong>NOTE:</strong></strong>If you are using a virtual machine, you will have to connect Arduino to the virtual machine after plugging it in.</p>
<img decoding="async" class="aligncenter size-full wp-image-45324" src="http://robohub.org/wp-content/uploads/2015/01/attaching-device-1024x571.jpg" alt="attaching-device-1024x571" width="1024" height="571" srcset="https://robohub.org/wp-content/uploads/2015/01/attaching-device-1024x571.jpg 1024w, https://robohub.org/wp-content/uploads/2015/01/attaching-device-1024x571-425x236.jpg 425w, https://robohub.org/wp-content/uploads/2015/01/attaching-device-1024x571-500x278.jpg 500w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>You can confirm your system is actually connected to Arduino by running</p>
<pre>ls -l /dev</pre>
<p>Depending on your specific Arduino board, you should either see a line with ttyAMC# or ttyUSB#, where # is a number. This will also tell you the current <a href="https://help.ubuntu.com/community/FilePermissions" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">permissions</a> for your Arduino. Chances are you wouldn’t be able to upload code to your Arduino at the moment because you don’t sufficient permissions, but we will soon solve that by creating a new udev rule!</p>
<p>The udev rule will require the product and vendor ID to be able to identify when our arduino is connected which you can easily find using</p>
<pre>lsusb</pre>
<p>You should see a line similar to</p>
<pre>Bus 002 Device 005: ID 2341:0043</pre>
<p>To confirm this is indeed your Arduino, disconnect it and run the command again, taking note which entry has disappeared. Remember the ID numbers, in this case, 2341 is the vendor ID and 0043 is the product ID. Now venture over to your udev rules at:</p>
<pre>cd /etc/udev/rules.d/</pre>
<p>and create our new rules file, the naming conventions for rules files follows “##-name.rules”. Chose a number that isn’t in use!</p>
<pre>sudo gedit 97-arduino.rules</pre>
<p>Copy the following into your new rules file, replacing #### with your product ID and vendor ID. For more information about what these tags mean, check out our <a href="https://support.clearpathrobotics.com/hc/en-us/articles/203252569-Udev-Rules" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">article</a> on udev rules.</p>
<pre>SUBSYSTEMS=="usb", ATTRS{idProduct}=="###", ATTRS{idVendor}=="####", SYMLINK+="arduino",MODE="0777",</pre>
<p>All that is left is to update your udev rules and reboot your system</p>
<pre>udevadm trigger
sudo reboot</pre>
<p>You should now see “arduino” as an entry in <code class="western">ls -l /dev</code> with full permissions! (rwxrwxrwx)</p>
<h2><strong><span class="wysiwyg-font-size-large">Code</span></strong></h2>
<p>We’re now set to upload our code to Arduino! The code is fairly straight forward, however if you have any difficulties following along, check out our <a href="https://support.clearpathrobotics.com/hc/en-us/articles/201644249-Creating-a-workspace-package-and-publisher" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">“Creating a publisher” tutorial.</a> Copy the following code into the Arduino IDE and click upload. If your udev rules were set correctly you should be able to upload without any errors.</p>
<p><em>If you encounter any errors, verify your arduino is coming up as “arduino” in a ls -l /dev and proper permissions are set. You may also have to point the Arduino IDE towards the correct USB port in tools -&gt; serial port.</em></p>
<pre>#include &lt;ArduinoHardware.h&gt;
#include &lt;ros.h&gt;
#include &lt;geometry_msgs/Twist.h&gt;

ros::NodeHandle nh;

geometry_msgs::Twist msg;

ros::Publisher pub("husky/cmd_vel", &amp;msg);

void setup()
{
 nh.initNode();
 nh.advertise(pub);
} void loop()
{
 if(digitalRead(8)==1)
 msg.linear.x=-0.25;
 
 else if (digitalRead(4)==1)
 msg.linear.x=0.25;
 
 else if (digitalRead(8)==0 &amp;&amp; digitalRead(4)==0)
 msg.linear.x=0;
 
 pub.publish(&amp;msg);
 nh.spinOnce();
 }</pre>
<h2><span class="wysiwyg-font-size-medium">Driving Husky</span></h2>
<p>Now that Arduino is loaded with our code and publishing velocity commands, we can pass these messages along into our ROS environment. We’ll start by launching a Husky simulation:</p>
<pre>roslaunch husky_gazebo husky_empty_world.launch</pre>
<p>All that’s left is to attach the Arduino into our ROS environment using:</p>
<pre>rosrun rosserial_python serial_node.py _port:=/dev/arduino</pre>
<p>We’re ready to try it out! Go ahead and touch the digital pin 8 and you should see Husky drive forward! Similarly if you touch digital pin 4 Husky will drive backwards.</p>
<img decoding="async" class="aligncenter size-full wp-image-45323" src="http://robohub.org/wp-content/uploads/2015/01/ArduinoUno_r2_front450px.jpg" alt="ArduinoUno_r2_front450px" width="450" height="315" srcset="https://robohub.org/wp-content/uploads/2015/01/ArduinoUno_r2_front450px.jpg 450w, https://robohub.org/wp-content/uploads/2015/01/ArduinoUno_r2_front450px-425x297.jpg 425w, https://robohub.org/wp-content/uploads/2015/01/ArduinoUno_r2_front450px-428x300.jpg 428w" sizes="(max-width: 450px) 100vw, 450px" />
<p>This trick is made possible by a phenomenon known as <a href="http://en.wikipedia.org/wiki/Parasitic_capacitance" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">parasitic capacitance</a>, which is usually an unwanted effect in electronics design, but serves nicely for the purpose of our example. That being said, this isn’t the most reliable method, and is intended to provide a simple example with minimal equipment.  If you are having difficulties moving your simulated Husky, try using <code class="western">rostopic echo /husky/cmd_vel</code> to verify some commands are in fact being sent to Husky when you touch the pins.</p>
<p>Be sure to go through the rest of our ROS tutorials on our <a href="http://support.clearpathrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">knowledge base</a>. If you want to learn more about rosserial, be sure to visit the rosserial page of the <a href="http://wiki.ros.org/rosserial" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS wiki</a>.</p>
<p>Looking for other Clearpath tutorials? You might like <a href="http://robohub.org/archives/authors/clearpath-robotics/" data-wpel-link="internal">these ones</a>! Or visit <a title="support" href="http://www.support.clearpathrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">www.support.clearpathrobotics.com</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Do more with Udev</title>
		<link>https://robohub.org/do-more-with-udev/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Thu, 22 Jan 2015 00:40:49 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS101 Tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/do-more-with-udev/</guid>

					<description><![CDATA[<p>By Paul Bovbel Udev is a device manager for Linux that dynamically creates and removes nodes&#160;for hardware&#160;devices. In short, it helps your computer find your robot easily. By default, hardware devices attached to your Linux (Ubuntu) PC will belong to the root user. This means that any programs (e.g. ROS nodes) running as an unpriveleged [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/udev/" data-wpel-link="external" target="_blank">Do More with Udev</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics Inc.</a>.</p>]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="alignnone size-full wp-image-45301" src="http://robohub.org/wp-content/uploads/2015/01/udev_blog.jpg" alt="udev_blog" width="520" height="260" srcset="https://robohub.org/wp-content/uploads/2015/01/udev_blog.jpg 520w, https://robohub.org/wp-content/uploads/2015/01/udev_blog-425x212.jpg 425w, https://robohub.org/wp-content/uploads/2015/01/udev_blog-500x250.jpg 500w" sizes="(max-width: 520px) 100vw, 520px" />
<p><em>By Paul Bovbel</em></p>
<p>Udev is a device manager for Linux that dynamically creates and removes nodes for hardware devices. In short, it helps your computer find your robot easily. By default, hardware devices attached to your Linux (Ubuntu) PC will belong to the root user. This means that any programs (e.g. ROS nodes) running as an unpriveleged (i.e. not root) user will not be able to access them. On top of that, devices will receive names such as ttyACMx and ttyUSBx arbitrarily based on the order in which they were plugged in. Luckily, you can solve this, and more, with <strong>udev</strong> rules.<span id="more-44952"></span><span id="more-3808"></span></p>
<p>You probably already have at least one udev rule on your system that solves the naming problem for network devices, and you can take a peek at it in the <code><strong>/etc/udev/rules.d/</strong></code> folder – it&#8217;s probably named <code><strong>70-persistent-net.rules</strong></code>.</p>
<p>Some driver/software packages will already provide udev rules you can use. Check the <strong><code>/etc/udev/rules.d/</code></strong> folder to see if there’s anything installed already. If the package is lazy and gives you a udev rule to install yourself, you can do this using:</p>
<pre>sudo cp &lt;rule file&gt; /etc/udev/rules.d/</pre>
<h2><strong>Writing a new udev rule:</strong></h2>
<p>If you still need to write your own rule to setup naming and permissions for your device, read on. Rules can get extremely complex, but the one below should cover 99% of use cases for ROS applications. If you’re looking for 99.9%, I suggest you start <a title="Udev Rules" href="http://www.reactivated.net/writing_udev_rules.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">here</a>. As an example, we will examine the udev rule provided by the <strong>urg_node</strong> driver in ROS:</p>
<pre>SUBSYSTEMS==”usb”, KERNEL==”ttyACM[0-9]*”, ACTION==”add”, ATTRS{idVendor}==”15d1″, ATTRS{idProduct}==”0000″, MODE=”666″, PROGRAM=”/opt/ros/hydro/lib/urg_node/getID /dev/%k q”, SYMLINK+=”sensors/hokuyo_%c”, GROUP=”dialout”</pre>
<p>A udev rule is made up of a bunch of comma separated tags, as above. The tags are divided into two parts: <strong>matching</strong> and <strong>configuration</strong>, however they can be written into the rule in any order (confusingly enough).</p>
<h2><strong>Matching:</strong></h2>
<p>The matching part lets the udev device manager match the rule to the device you want. The manager will try to match all new devices as they get plugged in, so it’s important that the rule be specific enough to capture only the device you’re looking for, otherwise you’ll end up with a <strong><code>/dev/hokuyo</code></strong> symlink to an IMU. There are many potential matching tags, and the best way to pick the useful ones is to get all the device attributes straight from udev.</p>
<p>Run the following command, inserting the <strong>&lt;devpath&gt;</strong> such as <strong><code>/dev/ttyACM0</code></strong>:</p>
<pre>udevadm info -a -p $(udevadm info -q path -n &lt;devpath&gt;)</pre>
<p>You will get a list of all <strong>device attributes</strong> visible to udev. looking at device ‘…/ttyACM0′:</p>
<pre>KERNEL=="ttyACM0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '...':
KERNELS=="3-3:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="cdc_acm"
ATTRS{bInterfaceClass}=="02"
ATTRS{bInterfaceNumber}=="00"
looking at parent device '...':
...
ATTRS{idVendor}=="0483"
ATTRS{idProduct}=="5740"
...</pre>
<p>Each of the device attributes is a potential tag. You can use any of the tags in the first section to filter, along with tags from a parent device. Use regex to make matching more flexible (e.g. [0-9] to match any number, * to match anything at all).</p>
<p>Example:</p>
<pre>SUBSYSTEM=="tty", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ...</pre>
<p>Due to the way udev is designed, you can only pull in the tags from <strong>one parent device</strong>. So in the above example you can always use the KERNEL and the SUBSYSTEM tag in your udev rule, but you cannot use both DRIVERS and ATTRS{idVendor} to do matching. Usually this is not a problem, since idVendor and idProduct are always present, and identify the majority of device types uniquely.</p>
<p>You should also add the ACTION tag, which is usually “add”, sometimes “remove” if you want to do something when the device is unplugged.</p>
<pre>..., ACTION=="add", ...</pre>
<h2><strong>Configuration:</strong></h2>
<p>Now that you have a rule that matches the device you want, you can add several configuration tags:</p>
<table class="confluenceTable tablesorter" width="100%">
<tbody>
<tr>
<td class="confluenceTd" width="40%"><strong><span class="tablesorter-header-inner">Tag</span></strong></td>
<td class="confluenceTd" width="60%"><strong><span class="tablesorter-header-inner">Usage</span></strong></td>
</tr>
<tr>
<td class="confluenceTd" width="40%">
<pre>MODE="0666"</pre>
</td>
<td class="confluenceTd" width="60%">Set permissions to allow any user read/write access to the device.</td>
</tr>
<tr>
<td class="confluenceTd" width="40%">
<pre>SYMLINK+=”hokuyo”</pre>
</td>
<td class="confluenceTd" width="60%">Create a symlink in /dev/ for this device.</td>
</tr>
<tr>
<td class="confluenceTd" width="40%">
<pre>RUN+=”/bin/echo ‘hello world’”</pre>
</td>
<td class="confluenceTd" width="60%">Execute an arbitrary command. (<a class="external-link" style="color: #3b73af;" href="http://www.reactivated.net/writing_udev_rules.html#external-run" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">Advanced usage, more here</a>)</td>
</tr>
</tbody>
</table>
<p>It is good practice to make sure symlinks are unique for each device, so the above is actually poor practice! If you have multiple devices of the same type (e.g. 2 Hokuyos), or if you have multiple devices using a generic USB-to-Serial converter (e.g. FTDI), a basic idVendor and idProduct rule will not properly discriminate between these devices, since udev will map all matching devices to the same symlink. There are several approaches:</p>
<h2><strong>Directly through device attributes:</strong></h2>
<p>If your device has a unique identifier, such as a serial number, encoded in its attributes, you can painlessly create a unique symlink:</p>
<pre>…, SYMLINK+=”device_$attr{serial}”, …</pre>
<p>&nbsp;</p>
<p>This will usually not be the case. If a parent device has a serial number, you can use the following trick using environment variables. Create a udev rule for the parent device to store an environment variable:</p>
<pre>…, &lt;match parent device&gt;…, ENV{SERIAL_NUMBER}=”$attr{serial_number}”</pre>
<p>And a rule for the child device that uses the variable in the symlink:</p>
<pre>..., &lt;match child device&gt;..., SYMLINK+="device_$env{SERIAL_NUMBER}"</pre>
<h2><strong>External Program:</strong></h2>
<p>If the manufacturer does not expose a unique identifier through the device attributes, you can execute an external command using the PROGRAM tag:</p>
<pre>PROGRAM="/bin/device_namer %k", SYMLINK+="%c"</pre>
<p>Unlike the RUN tag which spins off, this command will be executed before the rule is fully processed, so it must return quickly. The <strong>urg_node</strong> driver above uses this tag to execute a ROS binary:</p>
<pre>PROGRAM="/opt/ros/hydro/lib/urg_node/getID /dev/%k q", SYMLINK+="sensors/hokuyo_%c"</pre>
<p>Substitution argument <strong>%k</strong> refers to the device path relative to <strong>/dev/</strong>, and <strong>%c</strong> refers to the output of the PROGRAM tag.</p>
<h2><strong>Running a new udev rule:</strong></h2>
<p>Once you have sudo cp’ed your rule into the <code>/etc/udev/rules.d/</code> folder, you can test it with your device. To get udev to recognize your rule, run the following command:</p>
<pre>sudo udevadm control --reload-rules &amp;&amp; sudo service udev restart &amp;&amp; sudo udevadm trigger</pre>
<p>You should be able to find a symlink in<strong> /dev/</strong> that links to the full device path (e.g. <strong>/dev/ttyACM0</strong>), and the permissions on the device path should be read/write for all users.</p>
<p>If your permissions aren’t being set, and you symlink is not being created in <strong>/dev/</strong> as expected, you can try simulating udev’s processing of the rule by running the following with the appropriate device path:</p>
<pre>udevadm test $(udevadm info -q path -n /dev/ttyACM0)</pre>
<h2><strong>Things to keep in mind</strong></h2>
<p>Check that your rule follows the naming convention – &lt;priority&gt;-&lt;device name&gt;.rules. Technically you can have multiple rules for the same device, and the number determines what order they’d get executed in. Since we’re writing addon rules, a priority of 99 is safest.</p>
<p>You can have multiple rules in a file separated by newlines. Make sure that each individual rule is on one line.</p>
<p>Check that all tags (matching and configuration) are comma separated.</p>
<p>Check that your rule file has a trailing newline.</p>
<p>Check that your rule is owned by the root user – ll /etc/udev/rules.d/ should say ‘root root’ for the rule file.</p>
<p><em>The post <a href="http://www.clearpathrobotics.com/blog/udev/" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">Do More with Udev</a> appeared first on <a href="http://www.clearpathrobotics.com/" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">Clearpath Robotics Inc.</a>.</em></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS101: Creating a subscriber using GitHub</title>
		<link>https://robohub.org/ros101-creating-a-subscriber-using-git-hub/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Fri, 12 Dec 2014 17:44:55 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS101 Tutorial]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/ros101-creating-a-subscriber-using-git-hub/</guid>

					<description><![CDATA[<p>By Martin Cote We previously learned how to write&#160;a publisher node to move Husky randomly. BUT! What good is publishing all these messages if no one is there to read it? In this tutorial we&#8217;ll write a subscriber that reads Husky&#8217;s position from the odom topic, and graph its movements. Instead of just copy-pasting code [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/ros101-subscriber-using-github/" data-wpel-link="external" target="_blank">ROS101: Creating a Subscriber Using Git Hub</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics Inc.</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><em><img decoding="async" class="aligncenter wp-image-26319 size-full" src="http://robohub.org/wp-content/uploads/2014/01/ROS101_logo.gif" alt="ROS101_logo" width="701" height="417" />By Martin Cote</em></p>
<p>We previously learned how to write a <a title="ROS 101 Publisher Node" href="http://robohub.org/ros-101-creating-a-publisher-node/" data-wpel-link="internal">publisher node to move Husky randomly</a>. BUT: what good is publishing all these messages if no one is there to read it? In this tutorial we’ll write a subscriber that reads Husky’s position from the odom topic, and graph its movements. Instead of just copy-pasting code into a text file, we’ll pull the required packages from <a title="GitHub" href="https://github.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">GitHub</a>, a very common practice among developers.<span id="more-43693"></span><span id="more-3714"></span></p>
<p>Before we begin, install Git to pull packages from GitHub, and pygame, to provide us with the tools to map out Husky’s movements:</p>
<pre>sudo apt-get install git
sudo apt-get install python-pygame</pre>
<h2><strong>Pulling from GitHub</strong></h2>
<p>GitHub is a popular tool among developers due to its use of version control – most ROS software has an associated GitHub repository. Users are able to “pull” files from the GitHub servers, make changes, then “push” these changes back to the server. In this tutorial we will be using GitHub to pull the ROS packages that we’ll be using. The first step is to make a new directory to pull the packages:</p>
<pre>mkdir ~/catkin_ws/src/ros101
cd ~/catkin_ws/src/ros101
git init</pre>
<p>Since we now know the URL that hosts the repositories, we’ll easily be able to pull the packages from GitHub. Access the repositories using the following command:</p>
<pre>git pull https://github.com/mcoteCPR/ROS101.git</pre>
<p>That’s it! You should see an src and launch folder, as well as a CMakelist.txt and package.xml in your ros101 folder. You now have the package “ros101″, which includes the nodes “random_driver.cpp” and “odom_graph.py”.</p>
<h2><strong>Writing the subscriber</strong></h2>
<p>We’ve already gone through the random_driver C++ code in the last tutorial, so this time we’ll go over the python code for odom_graph.py. This node uses the Pygame library to track Husky’s movement. Pygame is a set of modules intended to create video games in python; however, we’ll focus on the ROS portion of this code. More information on Pygame can be found on <a title="Pygame">their website</a>. The code for the odom_graph node can be found at:</p>
<pre>gedit -p ~/catkin_ws/src/ros101/src/odom_graph.py</pre>
<p>Let’s take a look at this code line by line:</p>
<pre>import rospy
from nav_msgs.msg import Odometry</pre>
<p>Much like the C++ publisher code, this includes the rospy library and imports the Odometry message type from nav_msgs.msg. To learn more about a specific message type, you can visit <a href="http://docs.ros.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><span style="color: #551a8b;">http://docs.ros.org</span></a> to see it’s definition, for example, we are using <a href="http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><span style="color: #551a8b;">http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html</span></a> . The next block of code imports the pygame libraries and sets up the initial conditions for our display.</p>
<pre>def odomCB(msg)</pre>
<p>This is the odometry call back function, which is called every time our subscriber receives a message. The content of this function simply draws a line on our display between the last coordinates read from the odometry position message. This function will continually be called in our main loop.</p>
<pre>def listener():</pre>
<p>The following line starts the ROS node, anonymous=True means multiples of the same node can run at the same time:</p>
<pre>rospy.init_node('odom_graph', anonymous=True)</pre>
<p>Subscriber sets up the node to read messages from the “odom” topic, which are of the type Odometry, and calls the odomCB functions when it receives a message:</p>
<pre>rospy.Subscriber("odom", Odometry, odomCB)</pre>
<p>The last line of this function keeps the node active until it’s shut down:</p>
<pre>rospy.spin()</pre>
<h2><strong>Putting it all together</strong></h2>
<p>Now it’s time to test it out! Go ahead and close the odom_graph.py file and build your workspace using the catkin_make function in your workspace directory.</p>
<pre>cd ~/catkin_ws
catkin_make</pre>
<p>The next step is to launch our Husky simulation to start up ROS and all the Husky related nodes</p>
<pre>roslaunch husky_gazebo husky_emepty_world.launch</pre>
<p>In this tutorial we have provided a launch file that will start the random_driver and odom_graph node. The launch file is located in ~/ros101/src/launch and is called odom_graph_test.launch. If you want to learn more about launch files, check out our launch file article on our <a href="https://support.clearpathrobotics.com/hc/en-us/categories/200165835-ROS" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><span style="color: #551a8b;">support knowledge base</span></a>. We will now source our workspace and launch both nodes with the launch file in a new terminal window.</p>
<pre>source ~/catkin_ws/devel/setup.bash
roslaunch ros101 odom_graph_test.launch</pre>
<img decoding="async" class="aligncenter wp-image-43752 size-full" src="http://robohub.org/wp-content/uploads/2014/12/ROS101-GitHub1-1024x767.png" alt="ROS101-GitHub1-1024x767" width="1024" height="767" srcset="https://robohub.org/wp-content/uploads/2014/12/ROS101-GitHub1-1024x767.png 1024w, https://robohub.org/wp-content/uploads/2014/12/ROS101-GitHub1-1024x767-425x318.png 425w, https://robohub.org/wp-content/uploads/2014/12/ROS101-GitHub1-1024x767-400x300.png 400w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>There you have it! Our subscriber is now listening to messages on the odom topic, and graphing out Husky’s path.</p>
<p>&nbsp;</p>
<p><em>See all the ROS101 tutorials <a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal">here</a>. </em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROSCon 2014 videos and slides available</title>
		<link>https://robohub.org/roscon-2014-videos-and-slides-available/</link>
		
		<dc:creator><![CDATA[Open Source Robotics Foundation]]></dc:creator>
		<pubDate>Mon, 20 Oct 2014 19:57:33 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/roscon-2014-videos-and-slides-available/</guid>

					<description><![CDATA[We&#8217;re happy to announce that videos and speakers&#8217; slides from ROSCon 2014 have been posted, and are linked from the program page.
The videos can also be browsed here
Enjoy!

]]></description>
										<content:encoded><![CDATA[<p><a href="http://roscon.ros.org/2014/program/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" class="alignleft size-full wp-image-40185" alt="ROSConChicago_Layered" src="http://robohub.org/wp-content/uploads/2014/09/ROSConChicago_Layered.png" width="400" height="598" srcset="https://robohub.org/wp-content/uploads/2014/09/ROSConChicago_Layered.png 400w, https://robohub.org/wp-content/uploads/2014/09/ROSConChicago_Layered-284x425.png 284w, https://robohub.org/wp-content/uploads/2014/09/ROSConChicago_Layered-200x300.png 200w" sizes="(max-width: 400px) 100vw, 400px" /></a>We’re happy to announce that videos and speakers’ slides from ROSCon 2014 have been posted.<span id="more-40173"></span><br />
<iframe src="//player.vimeo.com/video/107503400" height="281" width="500" allowfullscreen="" frameborder="0"></iframe></p>
<p><a href="http://vimeo.com/107503400" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[ROSCon 2014] Brian Gerkey: Opening Remarks (HD)</a> from <a href="http://vimeo.com/osrfoundation" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">OSRF</a> on <a href="https://vimeo.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Vimeo</a>.</p>
<p><iframe src="//player.vimeo.com/video/106995929" height="281" width="500" allowfullscreen="" frameborder="0"></iframe></p>
<p><a href="http://vimeo.com/106995929" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[ROSCon 2014] Ryan Gariepy: Closing remarks</a> from <a href="http://vimeo.com/osrfoundation" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">OSRF</a> on <a href="https://vimeo.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Vimeo</a>.</p>
<p>See links to all the presentations and slides on the <a href="http://roscon.ros.org/2014/program/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">program page</a>. The videos can also be browsed <a href="https://vimeo.com/album/3053172" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">here</a> on Vimeo.</p>
<p>Enjoy!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS 101: Creating a publisher node</title>
		<link>https://robohub.org/ros-101-creating-a-publisher-node/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Tue, 23 Sep 2014 17:02:08 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS101 Tutorial]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/ros-101-creating-a-publisher-node/</guid>

					<description><![CDATA[By Martin Cote
In our previous post, we graduated from driving a Husky, to taking on a Grizzly! Now it&#8217;s time to get down and dirty with what ROS is really made of, nodes! We will first be creating a workspace to work from, then we will write ...]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="size-full wp-image-26319" alt="ROS101_logo" src="http://robohub.org/wp-content/uploads/2014/01/ROS101_logo.gif" width="701" height="417" />
<p><em>By Martin Cote</em></p>
<p>In our <a title="ROS 101: DRIVE A GRIZZLY" href="http:///http://www.clearpathrobotics.com/blog/ros-101-drive-grizzly/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">previous post</a>, we graduated from driving a Husky to taking on a Grizzly! Now it’s time to get down and dirty with what ROS is really made of: nodes! We will first be creating a workspace to work from, then we will write a simple publisher that will make our virtual Husky drive around randomly. If this is your first time visiting a Clearpath Robotics ROS 101 blog, get started <a href="http://robohub.org/ros-101-intro-to-the-robot-operating-system/" data-wpel-link="internal">here</a>.<span id="more-38292"></span></p>
<h2>Creating a workspace and package</h2>
<p>Before we begin writing a node, we need to create a workspace and a package. Workspaces are simply directories to store all of your packages. First we will need to create a new directory.</p>
<pre><code class="sh">mkdir ~/ros101</code></pre>
<p>This created a directory in your home folder, which we will use as a workspace directory. We now need to create a subdirectory in your workspace directory to store all your source code for your packages.</p>
<pre><code class="sh">mkdir ~/ros101/src</code></pre>
<p>The last step to creating the workspace will be to initialize the workspace with catkin_init_workspace.</p>
<pre><code class="sh">cd ~/ros101/src
catkin_init_workspace</code></pre>
<p>Now that our workspace has been created, we will create a package in the src directory we just created. This can be done by navigating to the ~/ros101/src directory, which you should have already done in the last step, and using the catkin_create_pkg command  followed by what we want the package to be named, and then followed by what other packages our package will be dependent on; this command creates another directory for your new package, and two new configuration files inside that directory with some default settings.</p>
<pre><code class="sh">catkin_create_pkg random_husky_driver roscpp std_msgs</code></pre>
<p>You can see that this created CMakeLists.txt and package.xml inside the random_husky_driver directory; this is also where you will store all your source code for your packages. The roscpp and std_msgs  dependencies were added into the CMakeLIst.txt and package.xml.</p>
<h2>Writing the publisher</h2>
<p>As mentioned in our <a href="http://robohub.org/ros-101-drive-a-grizzly-2/" data-wpel-link="internal">previous post</a>, a publisher publishes messages to a particular topic. For this tutorial, we will be publishing random commands to the /husky/cmd_vel topic to make your Husky visualization drive itself. Start by creating a file in your ~/ros101/src/random_husky_driver directory called random_driver.cpp, and copy the following code.</p>
<pre><code class="sh">#include &lt;ros/ros.h&gt;
#include &lt;geometry_msgs/Twist.h&gt; 
#include &lt;stdlib.h&gt; 

int main(int argc, char **argv) {
     //Initializes ROS, and sets up a node
     ros::init(argc, argv, "random_husky_commands");
     ros::NodeHandle nh;

     //Ceates the publisher, and tells it to publish
     //to the husky/cmd_vel topic, with a queue size of 100
     ros::Publisher pub=nh.advertise&lt;geometry_msgs::Twist&gt;("husky/cmd_vel", 100);

     //Sets up the random number generator
     srand(time(0));

     //Sets the loop to publish at a rate of 10Hz
     ros::Rate rate(10);

       while(ros::ok()) {
            //Declares the message to be sent
            geometry_msgs::Twist msg;
           //Random x value between -2 and 2
           msg.linear.x=4*double(rand())/double(RAND_MAX)-2;
           //Random y value between -3 and 3
           msg.angular.z=6*double(rand())/double(RAND_MAX)-3;
           //Publish the message
           pub.publish(msg);

          //Delays untill it is time to send another message
          rate.sleep();
         }
}
</code></pre>
<p>Let’s break down this code line by line:</p>
<pre><code class="sh">#include &lt;ros/ros.h&gt;
#include &lt;geometry_msgs/Twist.h&gt; </code></pre>
<p>These lines includes the headers that we are going to need. The &lt;ros/ros.h&gt; header is required for ROS functionality and the &lt;geometry_msgs/Twist.h&gt; is added so that we can create a message of that type.</p>
<pre><code class="sh">ros::init(argc, argv, "random_husky_commands");
ros::NodeHandle nh;</code></pre>
<p>The first line, ros::init,  is used to initialize the ROS node, and name it “random_husky_commands”, while ros:NodeHandle starts the node.</p>
<pre><code class="sh">ros::Publisher pub=nh.advertise&lt;geometry_msgs::Twist&gt;("husky/cmd_vel", 100);</code></pre>
<p>Publishing a message is done using ros:Publisher pub=nh.advertise, followed by the message type that we are going to be sending, in this case it is a geometry_msga::Twist, and the topic that we are going to be sending it too, which for us is husky/cmd_vel.</p>
<p>The 100 is the message queue size; that is, if you are publishing message faster than what roscpp can send, 100 messages will be saved in the queue to be sent. The larger the queue, the more delay in robot movement in case of buffering.</p>
<p>Therefore in a real life example, you will want to have a smaller queue in the case of robot movement, where delay in movement commands are undesirable and even dangerous, but dropped messages are acceptable. In the case of sensors, it is recommended to use a larger queue, since delay is acceptable to ensure no data is lost.</p>
<pre><code class="sh">ros::Rate rate(10)
...
rate.sleep()</code></pre>
<p>ROS is able to control the loop frequency  using ros:Rate to dictate how rapidly the loop will run in Hz. rate.sleep will delay a variable amount of time such that your loop cycles at the desired frequency. This accounts for time consumed by other parts of the loop. All Clearpath robots require a minimum loop rate of 10Hz.</p>
<pre><code class="sh">while(ros::ok())</code></pre>
<p>The ros::ok function will return true unless it receives a command to shut down, either by using the rosnode kill command, or by the user pusing Ctrl-C in a terminal.</p>
<pre><code class="sh">geometry_msgs::Twist msg;</code></pre>
<p>This creates the message we are going to send, msg, of the type geometry_msgs:Twist<br />
msg.linear.x=4*double(rand())/double(RAND_MAX)-2;<br />
msg.angular.z=6*double(rand())/double(RAND_MAX)-3;</p>
<img decoding="async" class="size-full wp-image-38297 " alt="Screen-Shot-2014-09-19-at-10.16.36-AM-300x151" src="http://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-09-19-at-10.16.36-AM-300x151.png" width="300" height="151" />
<p>These lines calculate the random linear x and angular z values that will be sent to Husky.</p>
<pre><code class="sh">pub.publish(msg)</code></pre>
<p>We are finally ready to publish the message! The pub.publish adds msg to the publisher queue to be sent.</p>
<h2>Compiling the random Husky driver</h2>
<p>Compilation in ROS in handled by the catkin build system. The first step would usually be to set up our package dependencies in the CMakeLists.txt and package.xml. However this has already been done for us when we created the package and specified our dependencies. The next step is then to declare our new node as a executable, this is done by adding the following two lines to the CMakeLists.txt files in ~/ros101/src/random_husky_driver</p>
<pre><code class="sh">add_executable(random_driver random_driver.cpp)
target_link_libraries(random_driver ${catkin_LIBRARIES})</code></pre>
<p>The first line creates the executable called random_driver, and directs ROS to its source files. The second lines specifies what libraries will be used. Now we need to build our workspace using the catkin_make command in the workspace directory</p>
<pre>cd ~/ros101
catkin_make</pre>
<p>Let’s bring up the husky visualization as we did in a previous blog post.</p>
<pre>roslaunch husky_gazebo husky_empty_world.launch</pre>
<p>The final step is to source your setup.bash file in the workspace you have created. This script allows ROS to find the packages that are contained in your workspace. <strong>Don&#8217;t forget this process will have to be done on every new terminal instance!</strong></p>
<pre>source ~/ros101/devel/setup.bash</pre>
<p>It’s now time to test it out! Make sure you have a instance of roscore running in a separate terminal, then start the node.</p>
<pre>rosrun random_husky_driver random_driver</pre>
<p>You should now see Husky drive around! In a new terminal window, we can make sure that our node is publishing to the /husky/cmd_vel topic by echoing all messages on this topic.</p>
<pre>rostopic echo /husky/cmd_vel

<img decoding="async" class="size-full wp-image-38298 " alt="Screen-Shot-2014-08-27-at-1.11.36-PM-300x300" src="http://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300.png" width="300" height="300" srcset="https://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300.png 300w, https://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300-290x290.png 290w, https://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300-100x100.png 100w, https://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300-220x220.png 220w, https://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300-32x32.png 32w, https://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300-64x64.png 64w, https://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300-96x96.png 96w, https://robohub.org/wp-content/uploads/2014/09/Screen-Shot-2014-08-27-at-1.11.36-PM-300x300-128x128.png 128w" sizes="(max-width: 300px) 100vw, 300px" /></pre>
<p>You should now see a stream of random linear x and angular z values.</p>
<p><em>See all the ROS101 tutorials <a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal">here</a>. </em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS 101: Drive a Grizzly!</title>
		<link>https://robohub.org/ros-101-drive-a-grizzly-2/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Thu, 03 Jul 2014 19:42:42 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS101 Tutorial]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=34048</guid>

					<description><![CDATA[So you have had a taste of driving a virtual Husky in our previous tutorial, but now want to try something a little bigger? How about 2000 lbs bigger? Read on to learn how to drive a (virtual) Grizzly, Clearpath Robotic’s largest and meanest platform. If you are totally new to ROS, be sure to check [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="size-full wp-image-26319" alt="ROS101_logo" src="http://robohub.org/wp-content/uploads/2014/01/ROS101_logo.gif" width="701" height="417" />
<p>So you have had a taste of driving a virtual Husky in our <a title="ROS 101: Drive a Husky!" href="http://robohub.org/ros-101-drive-a-husky/" target="_blank" data-wpel-link="internal">previous tutorial</a>, but now want to try something a little bigger? How about 2000 lbs bigger?</p>
<p><span id="more-34048"></span>Read on to learn how to drive a (virtual) Grizzly, Clearpath Robotic’s largest and meanest platform. If you are totally new to ROS, be sure to check out our tutorial series starting <a title="ROS 101: Intro to the Robot Operating System" href="http://robohub.org/ros-101-intro-to-the-robot-operating-system/" target="_blank" data-wpel-link="internal">here</a> and the <a title="ROS Cheat Sheet" href="http://www.clearpathrobotics.com/ros-cheat-sheet" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS Cheat Sheet</a>. Here is your next ROS 101 dose.</p>
<p>An updated version of the Learn_ROS disk is available here:</p>
<p><a title="Public Learn ROS Disk" href="https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS-disk1.vmdk.gz" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS-disk1.vmdk</a><br />
<a title="Public Learn ROS ovf" href="https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS.ovf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS.ovf</a></p>
<p>Login (username): user<br />
Password: learn</p>
<h2><strong>Updating the Virtual Machine</strong></h2>
<p>Open a terminal window (Ctrl + Alt + T), and enter the following:</p>
<pre><code>sudo apt-get update
sudo apt-get install ros-hydro-grizzly-simulator 
</code><code>sudo apt-get install </code>ros-hydro-grizzly-desktop 
<code>sudo apt-get install </code>ros-hydro-grizzly-navigation</pre>
<h2><strong>Running a virtual Grizzly</strong></h2>
<p>Open a terminal window, and enter:</p>
<pre>roslaunch grizzly_gazebo grizzly_empty_world.launch</pre>
<p>Open another terminal window, and enter:</p>
<pre>roslaunch grizzly_viz view_robot.launch</pre>
<p>You should be given two windows, both showing a yellow, rugged robot (the Grizzly!). The left one shown is Gazebo. This is where we get a realistic simulation of our robot, including wheel slippage, skidding, and inertia. We can add objects to this simulation, or even entire maps of real places.</p>
<img decoding="async" class="size-full wp-image-34055" alt="Grizzly_gazebo-2" src="http://robohub.org/wp-content/uploads/2014/07/Grizzly_gazebo-2.png" width="1275" height="776" srcset="https://robohub.org/wp-content/uploads/2014/07/Grizzly_gazebo-2.png 1275w, https://robohub.org/wp-content/uploads/2014/07/Grizzly_gazebo-2-425x258.png 425w, https://robohub.org/wp-content/uploads/2014/07/Grizzly_gazebo-2-1024x623.png 1024w, https://robohub.org/wp-content/uploads/2014/07/Grizzly_gazebo-2-492x300.png 492w" sizes="(max-width: 1275px) 100vw, 1275px" />
<div class="minitext">Grizzly RUV in simulation</div>
<div style="clear: both;"></div>
<p>The right window is RViz. This tool allows us to see sensor data from a robot, and give it commands (in a future post). RViz is a more simplified simulation in the interest of speed.</p>
<img decoding="async" class="size-full wp-image-34056" alt="Grizzly_rviz" src="http://robohub.org/wp-content/uploads/2014/07/Grizzly_rviz.png" width="1300" height="689" srcset="https://robohub.org/wp-content/uploads/2014/07/Grizzly_rviz.png 1300w, https://robohub.org/wp-content/uploads/2014/07/Grizzly_rviz-425x225.png 425w, https://robohub.org/wp-content/uploads/2014/07/Grizzly_rviz-1024x542.png 1024w, https://robohub.org/wp-content/uploads/2014/07/Grizzly_rviz-500x265.png 500w" sizes="(max-width: 1300px) 100vw, 1300px" />
<div class="minitext">RViz – sensor data</div>
<div style="clear: both;"></div>
<p>We can now command the robot to go forwards. Open a terminal window, and enter:</p>
<pre><code>rostopic pub /cmd_vel geometry_msgs/Twist -r 100 '[0.5,0,0]' '[0,0,0]'</code></pre>
<p>In the above command, we publish to the cmd_vel topic, of topic type geometry_msgs/Twist, at a rate of 100Hz. The data we publish tells the simulated Grizzly to go forwards at 0.5m/s, without any rotation. You should see your Grizzly move forwards. In the gazebo window, you might also notice simulated wheel slip, and skidding. Enjoy and stay tuned for more soon!</p>
<p>&nbsp;</p>
<div class="divideronpost"></div>
<p><em>See all the ROS101 tutorials <a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal">here</a>. If you liked this article, you may also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-getting-started/" data-wpel-link="internal">Up and flying with the AR.Drone and ROS: Getting started</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 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>
</ul>
<p><em>See all <a href="http://robohub.org/" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external nofollow noopener noreferrer" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS meets precision agriculture at Blue River Technology</title>
		<link>https://robohub.org/ros-meets-precision-agriculture-at-blue-river-technology/</link>
		
		<dc:creator><![CDATA[Open Source Robotics Foundation]]></dc:creator>
		<pubDate>Thu, 05 Jun 2014 17:52:47 +0000</pubDate>
				<category><![CDATA[views]]></category>
		<category><![CDATA[environment & agriculture]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[OSRF]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://osrfoundation.org/blog/ros-meets-precision-agriculture-at-blue-river-technology.html</guid>

					<description><![CDATA[   


  


If you were to design the worst possible environment for software engineering, the cramped jump seat of a John Deere tractor would be a contender. The sound and vibration of the engine makes conversation and concentration difficult. I...]]></description>
										<content:encoded><![CDATA[<p style="text-align: center;"><img decoding="async" class=" wp-image-32551 aligncenter" alt="blueriver-1" src="http://robohub.org/wp-content/uploads/2014/06/blueriver-1.jpg" width="640" height="480" srcset="https://robohub.org/wp-content/uploads/2014/06/blueriver-1.jpg 640w, https://robohub.org/wp-content/uploads/2014/06/blueriver-1-425x318.jpg 425w, https://robohub.org/wp-content/uploads/2014/06/blueriver-1-400x300.jpg 400w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<div style="clear: both;"></div>
<p>If you were to design the worst possible environment for software engineering, the cramped jump seat of a John Deere tractor would be a contender. The sound and vibration of the engine makes conversation and concentration difficult. If the sun isn&#8217;t making it impossible to see the monitor, the blowing dust is.<span id="more-32546"></span></p>
<p>This is a common scenario at Blue River Technology because the company is in the agriculture business. <a href="http://www.bluerivert.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Blue River</a> combines computer vision and robotics to deliver precision thinning to lettuce growers.</p>
<p style="text-align: center;"><img decoding="async" class=" wp-image-32550 aligncenter" alt="blueriver-2" src="http://robohub.org/wp-content/uploads/2014/06/blueriver-2.jpg" width="640" height="480" srcset="https://robohub.org/wp-content/uploads/2014/06/blueriver-2.jpg 640w, https://robohub.org/wp-content/uploads/2014/06/blueriver-2-425x318.jpg 425w, https://robohub.org/wp-content/uploads/2014/06/blueriver-2-400x300.jpg 400w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<div style="clear: both;"></div>
<p>Blue River has been using ROS since late 2012. According to Willy Pell, Blue River&#8217;s Sr. Systems Engineer: &#8220;We love ROS because it makes it easy to find and correct errors in the worst possible circumstances. Any time something is wrong we know within a few dozen lines of code where the problem is presenting itself. It allows us to build systems <a href="http://en.wikipedia.org/wiki/Unix_philosophy" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The UNIX Way</a>. In other words, we make simple, open source programs that communicate well with other programs.&#8221;</p>
<p>Blue River makes machines called lettuce thinners. Lettuce growers plant too many seeds because only 80% of seeds actually turn into plants. Since a lettuce head needs 10 inches on either side to get the resources it needs, growers must then thin the field of excess lettuce. Blue River&#8217;s machine is pulled behind a tractor and takes pictures of the plant seedlings. It identifies the ones to keep and the ones to kill and toggles a sprayer to render its verdict. There is finality to this machine. If it messes up it doesn’t just waste time, it impacts the grower’s yield.</p>
<p style="text-align: center;">Added Pell, &#8220;ROS has been a fantastic tool for us. I love how you can gut one node and not have it affect the rest of the system. I love how you can break the system apart and test subcomponents. Being able to confidently refactor, test and debug large parts of the system allows us to evolve extremely quickly.&#8221;<br />
<img decoding="async" class=" wp-image-32549 aligncenter" alt="blueriver-3" src="http://robohub.org/wp-content/uploads/2014/06/blueriver-3.jpg" width="640" height="480" srcset="https://robohub.org/wp-content/uploads/2014/06/blueriver-3.jpg 640w, https://robohub.org/wp-content/uploads/2014/06/blueriver-3-425x318.jpg 425w, https://robohub.org/wp-content/uploads/2014/06/blueriver-3-400x300.jpg 400w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<div style="clear: both;"></div>
<p>It never ceases to amaze and delight us when we learn of new and innovative uses of ROS. Just recently, <a href="http://robohub.org/ros-goes-to-space/" data-wpel-link="internal">ROS celebrated a celestial milestone</a> when it arrived at the International Space Station as part of Robonaut 2. While Blue River&#8217;s solution is certainly more terrestrial it is no less innovative and impactful. Being able to deliver a precision agricultural solution to farmers means higher yield and fewer chemicals.</p>
<p>Because of the permissive open source license of ROS, we aren&#8217;t always aware of who is using ROS and for what purposes. In this case, we are very grateful to the team at Blue River for sharing their story with us.</p>
<p>If you are using ROS and have a story to share, please drop us a line at <a href="mailto:info@osrfoundation.org">info@osrfoundation.org</a>.</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/robots-podcast-blue-river-technology/" data-wpel-link="internal">Robots Podcast: Blue River Technology</a></li>
<li><a href="http://robohub.org/robots-zero-tillage-robotics/" data-wpel-link="internal">Robots Podcast: Zero Tillage Robotics</a></li>
<li><a href="http://robohub.org/agricultural-robot-market-anticipated-to-reach-16-3-billion-by-2020/" data-wpel-link="internal">Agricultural robot market anticipated to reach $16.3 billion by 2020</a></li>
<li><a href="http://robohub.org/uav-innovation-is-in-the-cloud-3-precision-ag-innovations-to-watch-for-in-2014/" data-wpel-link="internal">UAV innovation is in the Cloud; 3 precision Ag innovations to watch for in 2014 </a></li>
<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>
</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>Meet your (ROS-based) cleaning team from Avidbots</title>
		<link>https://robohub.org/meet-your-ros-based-cleaning-team/</link>
		
		<dc:creator><![CDATA[Open Source Robotics Foundation]]></dc:creator>
		<pubDate>Mon, 26 May 2014 19:56:49 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[competitions]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[Robot Launch 2014]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">http://www.osrfoundation.org/blog/meet-your-ros-based-cleaning-team.html</guid>

					<description><![CDATA[    


We learned recently from the folks at Avidbots that they're developing ROS-based commercial cleaning robots.  Here's their story:



Billions of square feet of commercial floor space are cleaned nightly in the US.  Avidbots automates the...]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignleft size-full wp-image-31955" alt="Avidbot" src="http://robohub.org/wp-content/uploads/2014/05/Avidbot.jpg" width="854" height="394" srcset="https://robohub.org/wp-content/uploads/2014/05/Avidbot.jpg 854w, https://robohub.org/wp-content/uploads/2014/05/Avidbot-425x196.jpg 425w, https://robohub.org/wp-content/uploads/2014/05/Avidbot-500x230.jpg 500w" sizes="(max-width: 854px) 100vw, 854px" />The folks at <a href="http://www.avidbots.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Avidbots</a> — who won an honourable mention in the <a href="http://robohub.org/tag/robot-launch-2014/" data-wpel-link="internal">Robot Launch 2014 </a>competition — are developing ROS-based commercial cleaning robots. <span id="more-31925"></span>Billions of square feet of commercial floor space are cleaned nightly in the US. Avidbots automates the most time-intensive tasks of retail and storehouse cleaning: sweeping and scrubbing of floors. Powered by <a href="http://www.ros.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS</a>, these robots automatically clean floors in grocery stores, airports, and malls, enabling cleaning staff to concentrate on higher value tasks such as window cleaning, dusting, and polishing. The end result? Staff who are better-paid and more productive — a clean win for everyone.</p>
<p>While developing these robots, Avidbots must iterate rapidly through designs. Two key facilitators of this fast development cycle are ROS and <a href="http://gazebosim.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Gazebo</a>. ROS’s communication system promotes a simple modular design, while Gazebo provides for accurate simulation testing. Modular software design and thorough simulation testing enable Avidbots to achieve its rapid development goals. This strategic use of ROS and Gazebo is significantly accelerating Avidbots’ entry into the robotic services space.</p>
<p>Here&#8217;s their story:</p>
<p>http://youtu.be/ioGui_OSAKg</p>
<p>&nbsp;</p>
<div id="fstxfloat">
<div></div>
<p><em>If you liked this article, you may also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/no-drone-experts-were-harmed-in-the-making-of-this-video-or-were-they/" data-wpel-link="internal"> </a><a title="Permalink to Robot Launch Finals" href="http://robohub.org/livestream-robot-launch-finals-are-here/" rel="bookmark" data-wpel-link="internal">Robot Launch Finals</a></li>
<li><a href="http://robohub.org/shanghai-lectures-louis-philippe-demers-embodiment-and-robotic-arts/" data-wpel-link="internal"> </a><a title="Permalink to Robots begin to attack waste and dirt" href="http://robohub.org/robots-begin-to-attack-waste-and-dirt/" rel="bookmark" data-wpel-link="internal">Robots begin to attack waste and dirt</a></li>
<li><a href="http://robohub.org/robot-tourism-coming-soon-to-korea-masan-robot-land-project-finally-breaks-ground/" data-wpel-link="internal"> </a><a href="http://robohub.org/irobots-single-pass-floor-mopping-robots-vs-ocedars-cheap-duster/" data-wpel-link="internal">iRobot’s single-pass floor-mopping robots vs O’Cedar’s cheap duster</a></li>
<li><a href="http://robohub.org/robotic-bartender-assembles-personalized-drinks-monitors-alcohol-consumption-and-takes-social-mixing-to-a-whole-new-level/" data-wpel-link="internal"> </a><a href="http://robohub.org/korean-company-to-produce-20000-window-cleaning-robots/" data-wpel-link="internal">Korean company to produce 20,000 window-cleaning robots</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 title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external nofollow noopener noreferrer" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
<p><em> </em></p>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS 101: Drive a Husky!</title>
		<link>https://robohub.org/ros-101-drive-a-husky/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Fri, 21 Mar 2014 15:08:00 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<category><![CDATA[Husky]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS101 Tutorial]]></category>
		<category><![CDATA[Simulation]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=29235</guid>

					<description><![CDATA[In the previous ROS 101 post, we showed how easy it is to get ROS going inside a virtual machine, publish topics and subscribe to them. If you haven’t had a chance to check the out all the previous ROS 101 tutorials, you may want to do so before we go on. In this post, we’re [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" src="http://robohub.org/wp-content/uploads/2014/01/ROS101.jpg" alt="ROS101_Clearpath" width="520" height="260" class="alignnone size-full wp-image-26299" srcset="https://robohub.org/wp-content/uploads/2014/01/ROS101.jpg 520w, https://robohub.org/wp-content/uploads/2014/01/ROS101-300x150.jpg 300w, https://robohub.org/wp-content/uploads/2014/01/ROS101-500x250.jpg 500w" sizes="(max-width: 520px) 100vw, 520px" />
<p>In<a href="http://robohub.org/ros-101-a-practical-example/" target="_blank" data-wpel-link="internal"> the previous ROS 101 post</a>, we showed how easy it is to get ROS going inside a virtual machine, publish topics and subscribe to them. If you haven’t had a chance to check the out all the previous <a href="http://robohub.org/tag/ros101-tutorial/" target="_blank" data-wpel-link="internal">ROS 101</a> tutorials, you may want to do so before we go on. In this post, we’re going to drive a Husky in a virtual environment, and examine how ROS passes topics around.<br />
<span id="more-29235"></span></p>
<p>An updated version of the Learn_ROS disk is available here:</p>
<p><a title="Public Learn ROS Disk" href="https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS-disk1.vmdk.gz" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS-disk1.vmdk</a><br />
<a title="Public Learn ROS ovf" href="https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS.ovf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS.ovf</a></p>
<p>Login (username): user<br />
Password: learn</p>
<p>If you just downloaded the updated version above, please skip the next section. If you have already downloaded it, or are starting from a base install of ROS, please follow the next section.</p>
<h2><strong>Updating the Virtual Machine</strong></h2>
<p>Open a terminal window (Ctrl + Alt + T), and enter the following:</p>
<pre><code>sudo apt-get update
sudo apt-get install ros-hydro-husky-desktop</code></pre>
<h2><strong>Running a virtual Husky</strong></h2>
<p>Open a terminal window, and enter:</p>
<pre><code>roslaunch husky_gazebo husky_empty_world.launch</code></pre>
<p>Open another terminal window, and enter:</p>
<pre><code>roslaunch husky_viz view_robot.launch</code></pre>
<p>You should be given two windows, both showing a yellow, rugged robot (the Husky!)</p>
<a href="http://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_34_30.png" data-wpel-link="internal"><img decoding="async" class="wp-image-29240" alt="Screenshot-from-2014-03-14-07_34_30" src="http://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_34_30.png" width="1534" height="797" srcset="https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_34_30.png 1534w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_34_30-425x220.png 425w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_34_30-1024x532.png 1024w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_34_30-500x259.png 500w" sizes="(max-width: 1534px) 100vw, 1534px" /><br /></a>
<p>&nbsp;</p>
<p>The first window shown is Gazebo. This is where we get a realistic simulation of our robot, including wheel slippage, skidding, and inertia. We can add objects to this simulation, such as the cube above, or even entire maps of real places.</p>
<a href="http://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_35_36.png" data-wpel-link="internal"><img decoding="async" class="wp-image-29239" alt="Screenshot-from-2014-03-14-07_35_36" src="http://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_35_36.png" width="1537" height="905" srcset="https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_35_36.png 1537w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_35_36-425x250.png 425w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_35_36-1024x602.png 1024w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-07_35_36-500x294.png 500w" sizes="(max-width: 1537px) 100vw, 1537px" />
<p></a></p>
<p>The second window is RViz. This tool allows us to see sensor data from a robot, and give it commands (We&#8217;ll talk about how to do this in a future post). RViz is a more simplified simulation in the interest of speed.</p>
<p>We can now command the robot to go forwards. Open a terminal window, and enter:</p>
<pre><code>rostopic pub /husky/cmd_vel geometry_msgs/Twist -r 100 '[0.5,0,0]' '[0,0,0]'</code></pre>
<p>In the above command, we publish to the /husky/cmd_vel topic, of topic type geometry_msgs/Twist, at a rate of 100Hz. The data we publish tells the simulated Husky to go forwards at 0.5m/s, without any rotation. You should see your Husky move forwards. In the gazebo window, you might notice simulated wheel slip, and skidding.</p>
<h2><strong>Using rqt_graph</strong></h2>
<p>We can also see the structure of how topics are passed around the system. Leave the publishing window running, and open a terminal window. Type in:</p>
<pre><code>rosrun rqt_graph rqt_graph</code></pre>
<p>This command generates a representation of how the nodes and topics running on the current ROS Master are related. You should get something similar to the following:</p>
<a href="http://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-08_10_25.png" data-wpel-link="internal"><img decoding="async" class="wp-image-29238" alt="Screenshot-from-2014-03-14-08_10_25" src="http://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-08_10_25.png" width="1426" height="645" srcset="https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-08_10_25.png 1426w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-08_10_25-425x192.png 425w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-08_10_25-1024x463.png 1024w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-14-08_10_25-500x226.png 500w" sizes="(max-width: 1426px) 100vw, 1426px" />
<p></a></p>
<p>&nbsp;</p>
<p>The highlighted node and arrow show the topic that you are publishing to the simulated Husky. This Husky then goes on to update the gazebo virtual environment, which takes care of movement of the joints (wheels) and the physics of the robot. The rqt_graph command is very handy to use, when you are unsure who is publishing to what in ROS. Once you figure out what topic you are interested in, you can see the content of the topic using rostopic echo.</p>
<h2><strong>Using tf</strong></h2>
<p>In Ros, tf is a special topic that keeps track of coordinate frames, and how they relate to each other. So, our simulated Husky starts at (0,0,0) in the world coordinate frame. When the Husky moves, it’s own coordinate frame changes. Each wheel has a coordinate frame that tracks how it is rotating, and where it is. Generally, anything on the robot that is not fixed in space, will have a tf describing it. In the rqt_graph section, you can see that the /tf topic is published to and subscribed from by many different nodes.</p>
<p>One intuitive way to see how the tf topic is structured for a robot is to use the view_frames tool provided by ROS. Open a terminal window. Type in:</p>
<pre><code>rosrun tf2_tools view_frames.py
</code></pre>
<p>Wait for this to complete, and then type in:</p>
<pre><code>evince frames.pdf</code></pre>
<p>This will bring up the following image.</p>
<p><a href="http://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-18-12_20_59.png" data-wpel-link="internal"><img decoding="async" class="wp-image-29237" alt="Screenshot-from-2014-03-18-12_20_59" src="http://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-18-12_20_59.png" width="1664" height="571" srcset="https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-18-12_20_59.png 1664w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-18-12_20_59-425x145.png 425w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-18-12_20_59-1024x351.png 1024w, https://robohub.org/wp-content/uploads/2014/03/Screenshot-from-2014-03-18-12_20_59-500x171.png 500w" sizes="(max-width: 1664px) 100vw, 1664px" /></a>Here we can see that all four wheel are referenced to the base_link, which is referenced from the base_frootprint. (Toe bone connected to the foot bone, the foot bone….). We also see that the odom topic is driving the reference of the whole robot. This means that if you write to the odom topic (IE, when you publish to the /cmd_vel topic) then the whole robot will move.</p>
<div>
<div></div>
<p><em>See all the ROS101 tutorials <a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal">here</a>. If you liked this article, you may also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-getting-started/" data-wpel-link="internal">Up and flying with the AR.Drone and ROS: Getting started</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 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>
</ul>
<p><em>See all <a href="http://robohub.org/" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external nofollow noopener noreferrer" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS goes to space!</title>
		<link>https://robohub.org/ros-goes-to-space/</link>
		
		<dc:creator><![CDATA[Robohub Editors]]></dc:creator>
		<pubDate>Thu, 13 Mar 2014 18:24:21 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[OSRF]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[space]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=28431</guid>

					<description><![CDATA[As part of a resupply mission to the International Space Station, ROS will board a SpaceX Rocket on March 16 and, barring inclement weather, will launch into space. According to a blogpost by Brian Gerkey at the OSRF, SpaceX will deliver a set of robotic legs for the Robonaut 2 (R2) humanoid torso that is currently aboard the [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class=" wp-image-28432 alignleft" alt="Robonaut_2_legs_demo" src="http://robohub.org/wp-content/uploads/2014/03/Robonaut_2_legs_demo.jpg" width="240" height="354" srcset="https://robohub.org/wp-content/uploads/2014/03/Robonaut_2_legs_demo.jpg 400w, https://robohub.org/wp-content/uploads/2014/03/Robonaut_2_legs_demo-203x300.jpg 203w" sizes="(max-width: 240px) 100vw, 240px" />
<p>As part of a resupply mission to the International Space Station, ROS will board a SpaceX Rocket on March 16 and, barring inclement weather, will launch into space. According to a <a href="http://osrfoundation.org/blog/ros...launch!.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">blogpost by Brian Gerkey</a> at the OSRF, SpaceX will deliver a set of robotic legs for the <a href="http://robonaut.jsc.nasa.gov" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Robonaut 2 </a>(R2) humanoid torso that is currently aboard the ISS: &#8220;Once those legs are attached to R2, ROS will officially be running in space.&#8221;<span id="more-28431"></span></p>
<p>This is a big milestone for ROS. According to Gerkey: &#8220;ROS has already powered robots in the air, on the ground, on and under the water, and on every continent, but we at OSRF couldn&#8217;t be more excited about ROS journeying to outer space.&#8221;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROS 101: A practical example</title>
		<link>https://robohub.org/ros-101-a-practical-example/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Wed, 05 Feb 2014 21:30:20 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS101 Tutorial]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=26465</guid>

					<description><![CDATA[In the previous ROS 101 post, we provided a quick introduction to ROS to answer questions like What is ROS? and How do I get started? Now that you understand the basics, here’s how they can apply to a practical example. Follow along to see how we actually ‘do’ all of these things … First, you will need to run Ubuntu, [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" src="http://robohub.org/wp-content/uploads/2014/01/ROS101.jpg" alt="ROS101_Clearpath" width="520" height="260" class="alignnone size-full wp-image-26299" srcset="https://robohub.org/wp-content/uploads/2014/01/ROS101.jpg 520w, https://robohub.org/wp-content/uploads/2014/01/ROS101-300x150.jpg 300w, https://robohub.org/wp-content/uploads/2014/01/ROS101-500x250.jpg 500w" sizes="(max-width: 520px) 100vw, 520px" />
<p>In the previous <a title="ROS 101: How to Guide" href="http://robohub.org/ros-101-intro-to-the-robot-operating-system/" target="_blank" data-wpel-link="internal">ROS 101 post</a>, we provided a quick introduction to ROS to answer questions like <em>What is ROS? </em>and <em>How do I get started? </em>Now that you understand the basics, here’s how they can apply to a practical example. Follow along to see how we actually ‘do’ all of these things …<span id="more-26465"></span></p>
<p>First, you will need to run Ubuntu, and have ROS installed on it. For your convenience, you can download our easy-to-use image here:</p>
<p><a title="Public Learn ROS Disk" href="https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS-disk1.vmdk.gz" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS-disk1.vmdk</a><br />
<a title="Public Learn ROS ovf" href="https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS.ovf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://s3.amazonaws.com/CPR_PUBLIC/LEARN_ROS/Learn_ROS.ovf</a></p>
<p>Login (username): user<br />
Password: learn</p>
<p>Get VMWare Player, and use the virtual disk above. If you don’t want to use the provided image, follow the tutorial here (after installing Ubuntu 12.04):</p>
<p><a title="Ubunto Installation" href="http://wiki.ros.org/hydro/Installation/Ubuntu" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://wiki.ros.org/hydro/Installation/Ubuntu</a></p>
<p>Throughout the rest of the tutorials, we will be referencing the <a title="ROS Cheat Sheet" href="http://www.clearpathrobotics.com/ros-cheat-sheet" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS cheatsheet available here</a>.<em><br />
</em></p>
<p>Open a new Terminal Window (Ctrl + Alt + T).<br />
In the new terminal, type roscore (And press enter).<br />
This should produce something similar to the below.</p>
<img decoding="async" class="size-full wp-image-26466" alt="ROSpic1" src="http://robohub.org/wp-content/uploads/2014/02/ROSpic1.png" width="724" height="553" srcset="https://robohub.org/wp-content/uploads/2014/02/ROSpic1.png 724w, https://robohub.org/wp-content/uploads/2014/02/ROSpic1-300x229.png 300w, https://robohub.org/wp-content/uploads/2014/02/ROSpic1-392x300.png 392w" sizes="(max-width: 724px) 100vw, 724px" />
<div style="clear: both;"></div>
<div class="minitext">ROS Figure 1</div>
<p>What you have just done is started the ROS Master as we described above. We can now experiment with some ROS commands.<br />
Open a new Terminal, and type in rostopic. This will give you a list of all the options that the rostopic command can do. For now, we are interested in rostopic list<br />
Type in rostopic list. (And press enter). This should give you a window like the following:</p>
<img decoding="async" class="size-full wp-image-26467" alt="rospic2" src="http://robohub.org/wp-content/uploads/2014/02/rospic2.png" width="553" height="337" srcset="https://robohub.org/wp-content/uploads/2014/02/rospic2.png 553w, https://robohub.org/wp-content/uploads/2014/02/rospic2-300x182.png 300w, https://robohub.org/wp-content/uploads/2014/02/rospic2-492x300.png 492w" sizes="(max-width: 553px) 100vw, 553px" />
<div style="clear: both;"></div>
<div class="minitext">ROS Figure 2</div>
<p>The two entries listed above are ROS’s built in way of reporting and aggregating debug messages in the system. What we want to do is publish and subscribe to a message.<br />
You can open a new Terminal again, or open a new tab on the same terminal window (Ctrl + Shift + T).<br />
In the new Terminal, type in: rostopic pub /hello std_msgs/String “Hello Robot”</p>
<img decoding="async" class="size-full wp-image-26468" alt="ROSpic3" src="http://robohub.org/wp-content/uploads/2014/02/ROSpic3.png" width="642" height="369" srcset="https://robohub.org/wp-content/uploads/2014/02/ROSpic3.png 642w, https://robohub.org/wp-content/uploads/2014/02/ROSpic3-300x172.png 300w, https://robohub.org/wp-content/uploads/2014/02/ROSpic3-500x287.png 500w" sizes="(max-width: 642px) 100vw, 642px" />
<div style="clear: both;"></div>
<div class="minitext">ROS Figure 3</div>
<p>Let’s break down the parts of that command.<br />
rostopic pub – This commands ROS to publish a new topic.<br />
/hello – This is the name of the new topic. (Can be whatever you want)<br />
std_msgs/String – This is the topic type. We want to publish a string topic. In our overview examples above, it was an image data type.<br />
“Hello Robot” – This is the actual data contained by the topic. I.E. the message itself.<br />
Going back to the previous Terminal, we can execute rostopic list again.<br />
We now have a new topic listed! We can also echo the topic to see the message. rostopic echo /hello</p>
<img decoding="async" class="size-full wp-image-26469" alt="rospic4" src="http://robohub.org/wp-content/uploads/2014/02/rospic4.png" width="642" height="369" srcset="https://robohub.org/wp-content/uploads/2014/02/rospic4.png 642w, https://robohub.org/wp-content/uploads/2014/02/rospic4-300x172.png 300w, https://robohub.org/wp-content/uploads/2014/02/rospic4-500x287.png 500w" sizes="(max-width: 642px) 100vw, 642px" />
<div style="clear: both;"></div>
<div class="minitext">ROS Figure 4</div>
<p>We have now successfully published a topic with a message, and received that message.<br />
Type Ctrl + C to stop echoing the /hello topic.<br />
We can also look into the node that is publishing the message. Type in rosnode list. You will get a list similar to the one below. (The exact numbers beside the rostopic node may be different)</p>
<img decoding="async" class="size-full wp-image-26470" alt="rospic5" src="http://robohub.org/wp-content/uploads/2014/02/rospic5.png" width="642" height="477" srcset="https://robohub.org/wp-content/uploads/2014/02/rospic5.png 642w, https://robohub.org/wp-content/uploads/2014/02/rospic5-300x222.png 300w, https://robohub.org/wp-content/uploads/2014/02/rospic5-403x300.png 403w" sizes="(max-width: 642px) 100vw, 642px" />
<div style="clear: both;"></div>
<div class="minitext">ROS Figure 5</div>
<p>Because we asked rostopic to publish the /hello topic for us, ROS went ahead and created a node to do so. We can look into details of by typing rosnode info /rostopic_…..(whatever numbers)<br />
TIP: In ROS, and in Linux in general, whenever you start typing something, you can press the Tab key to auto-complete it. If there is more than one entry, double tap Tab to get the list. In the above example, all I typed was rosnode info /rost(TAB)</p>
<img decoding="async" class=" size-full wp-image-26471" alt="rospic6" src="http://robohub.org/wp-content/uploads/2014/02/orspic6.png" width="642" height="477" srcset="https://robohub.org/wp-content/uploads/2014/02/orspic6.png 642w, https://robohub.org/wp-content/uploads/2014/02/orspic6-300x222.png 300w, https://robohub.org/wp-content/uploads/2014/02/orspic6-403x300.png 403w" sizes="(max-width: 642px) 100vw, 642px" />
<div style="clear: both;"></div>
<div class="minitext">ROS Figure 6</div>
<p>We can get info on our topic the same way, by typing rostopic info /hello.</p>
<img decoding="async" class="size-full wp-image-26472" alt="rospic7" src="http://robohub.org/wp-content/uploads/2014/02/rospic7.png" width="642" height="477" srcset="https://robohub.org/wp-content/uploads/2014/02/rospic7.png 642w, https://robohub.org/wp-content/uploads/2014/02/rospic7-300x222.png 300w, https://robohub.org/wp-content/uploads/2014/02/rospic7-403x300.png 403w" sizes="(max-width: 642px) 100vw, 642px" />
<div style="clear: both;"></div>
<div class="minitext">ROS Figure 7</div>
<p>You will notice that the node listed under “Publishers:” is the same node we requested info about.</p>
<p>Up till now, we have covered the fundamentals of ROS, how to use rostopic, rosnode.</p>
<p>Next time, we will compile a short example program, and try it out.</p>
<p>&nbsp;</p>
<div class="divideronpost"></div>
<p><em>See all the ROS101 tutorials <a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal">here</a>. If you liked this article, you may also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-getting-started/" data-wpel-link="internal">Up and flying with the AR.Drone and ROS: Getting started</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 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>
</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>ROS 101: Intro to the Robot Operating System</title>
		<link>https://robohub.org/ros-101-intro-to-the-robot-operating-system/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Wed, 29 Jan 2014 16:15:22 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS101 Tutorial]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=26290</guid>

					<description><![CDATA[Clearpath Robotics brings us a new tutorial series on ROS! Since we practically live in the Robot Operating System (ROS), we thought it was time to share some tips on how to get started with ROS. We’ll answer questions like where do I begin? How do I get started? What terminology should I brush up on? Keep [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" src="http://robohub.org/wp-content/uploads/2014/01/ROS101.jpg" alt="ROS101_Clearpath" width="520" height="260" class="alignnone size-full wp-image-26299" srcset="https://robohub.org/wp-content/uploads/2014/01/ROS101.jpg 520w, https://robohub.org/wp-content/uploads/2014/01/ROS101-300x150.jpg 300w, https://robohub.org/wp-content/uploads/2014/01/ROS101-500x250.jpg 500w" sizes="(max-width: 520px) 100vw, 520px" />
<p><em><a href="http://www.clearpathrobotics.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Clearpath Robotics</a> brings us a new tutorial series on ROS!</em></p>
<p>Since we practically live in the Robot Operating System (ROS), we thought it was time to share some tips on how to get started with ROS. We’ll answer questions like <em>where do I begin? How do I get started? What terminology should I brush up on?</em> Keep an eye out for this ongoing ROS 101 blog series that will provide you with a top to bottom view of ROS that will focus on introducing basic concepts simply, cleanly and at a reasonable pace. This guide is meant as a groundwork for new users, which can then be used to jump into in-depth data at <a title="ROS Wiki" href="http://wiki.ros.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">wiki.ros.org</a>. If you are totally unfamiliar with ROS, Linux, or both, this is the place for you!<span id="more-26290"></span></p>
<h2><strong>The ROS Cheat Sheet</strong></h2>
<p>This ROS Cheat Sheet is filled with tips and tricks to help you get started and to continue using once you’re a true ROS user. This version is written for ROS Hydro Medusa. <a title="ROS Cheat Sheet-Hydrov1" href="http://www.clearpathrobotics.com/ros-cheat-sheet" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Download the ROS Cheat Sheet here</a>.</p>
<h2><strong>What is ROS?</strong></h2>
<p><a title="ROS.org" href="http://www.ros.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS (Robot Operating System)</a> is a BSD-licensed system for controlling robotic components from a PC. A ROS system is comprised of a number of independent nodes, each of which communicates with the other nodes using a publish/subscribe messaging model. For example, a particular sensor’s driver might be implemented as a node, which publishes sensor data in a stream of messages. These messages could be consumed by any number of other nodes, including filters, loggers, and also higher-level systems such as guidance, pathfinding, etc.</p>
<h2><strong>Why ROS?</strong></h2>
<p>Note that nodes in ROS do not have to be on the same system (multiple computers) or even of the same architecture! You could have a Arduino publishing messages, a laptop subscribing to them, and an Android phone driving motors. This makes ROS really flexible and adaptable to the needs of the user. ROS is also open source, maintained by many people.</p>
<h2><strong>General Concepts</strong></h2>
<p>Let’s look at the ROS system from a very high level view. No need to worry how any of the following works, we will cover that later.</p>
<p>ROS starts with the ROS Master. The Master allows all other ROS pieces of software (Nodes) to find and talk to each other. That way, we do not have to ever specifically state “Send this sensor data to that computer at 127.0.0.1. We can simply tell Node 1 to send messages to Node 2.</p>
<img decoding="async" class="size-full wp-image-26294" alt="ros101-1" src="http://robohub.org/wp-content/uploads/2014/01/ros101-1.png" width="853" height="534" srcset="https://robohub.org/wp-content/uploads/2014/01/ros101-1.png 853w, https://robohub.org/wp-content/uploads/2014/01/ros101-1-300x187.png 300w, https://robohub.org/wp-content/uploads/2014/01/ros101-1-479x300.png 479w" sizes="(max-width: 853px) 100vw, 853px" />
<div class="minitext">Figure 1</div>
<p>How do Nodes do this? By publishing and subscribing to Topics.</p>
<p>Let’s say we have a camera on our Robot. We want to be able to see the images from the camera, both on the Robot itself, and on another laptop.</p>
<p>In our example, we have a Camera Node that takes care of communication with the camera, a Image Processing Node on the robot that process image data, and a Image Display Node that displays images on a screen. To start with, all Nodes have registered with the Master. Think of the Master as a lookup table where all the nodes go to find where exactly to send messages.</p>
<img decoding="async" class="size-full wp-image-26295" alt="ros101-2" src="http://robohub.org/wp-content/uploads/2014/01/ros101-2.png" width="965" height="673" srcset="https://robohub.org/wp-content/uploads/2014/01/ros101-2.png 965w, https://robohub.org/wp-content/uploads/2014/01/ros101-2-300x209.png 300w, https://robohub.org/wp-content/uploads/2014/01/ros101-2-430x300.png 430w" sizes="(max-width: 965px) 100vw, 965px" />
<div class="minitext">Figure 2</div>
<p>In registering with the ROS Master, the Camera Node states that it will Publish a Topic called /image_data (for example). Both of the other Nodes register that they are Subscribed to the Topic /image_data.</p>
<p>Thus, once the Camera Node receives some data from the Camera, it sends the /image_data message directly to the other two nodes. (Through what is essentially TCP/IP)</p>
<img decoding="async" class="size-full wp-image-26296" alt="ros101-3" src="http://robohub.org/wp-content/uploads/2014/01/ros101-3.png" width="965" height="693" srcset="https://robohub.org/wp-content/uploads/2014/01/ros101-3.png 965w, https://robohub.org/wp-content/uploads/2014/01/ros101-3-300x215.png 300w, https://robohub.org/wp-content/uploads/2014/01/ros101-3-417x300.png 417w" sizes="(max-width: 965px) 100vw, 965px" />
<div class="minitext">Figure 3</div>
<p>Now you may be thinking, what if I want the Image Processing Node to request data from the Camera Node at a specific time? To do this, ROS implements Services.</p>
<p>A Node can register a specific service with the ROS Master, just as it registers its messages. In the below example, the Image Processing Node first requests /image_data, the Camera Node gathers data from the Camera, and then sends the reply.</p>
<img decoding="async" class="size-full wp-image-26297" alt="ros101-4" src="http://robohub.org/wp-content/uploads/2014/01/ros101-4.png" width="927" height="658" srcset="https://robohub.org/wp-content/uploads/2014/01/ros101-4.png 927w, https://robohub.org/wp-content/uploads/2014/01/ros101-4-300x212.png 300w, https://robohub.org/wp-content/uploads/2014/01/ros101-4-422x300.png 422w" sizes="(max-width: 927px) 100vw, 927px" />
<div class="minitext">Figure 4</div>
<p>We will have another tutorial &#8220;ROS 101 &#8211; Practical Example&#8221; next week.</p>
<p>&nbsp;</p>
<div class="divideronpost"></div>
<p><em>See all the ROS101 tutorials <a href="http://robohub.org/tag/ros101-tutorial/" data-wpel-link="internal">here</a>. If you liked this article, you may also be interested in:</em></p>
<ul>
<li><a href="http://robohub.org/up-and-flying-with-the-ar-drone-and-ros-getting-started/" data-wpel-link="internal">Up and flying with the AR.Drone and ROS: Getting started</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 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>
</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>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Is open source a good business model for robotics?</title>
		<link>https://robohub.org/is-open-source-a-good-business-model-for-robotics/</link>
		
		<dc:creator><![CDATA[RBI Editors]]></dc:creator>
		<pubDate>Wed, 09 Oct 2013 19:47:47 +0000</pubDate>
				<category><![CDATA[Robotics by Invitation]]></category>
		<category><![CDATA[Brian Gerkey]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[Frank Tobe]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=20937</guid>

					<description><![CDATA[Open source vs. proprietary software is an age old question. Since the advent of robotics, we also have the question of open source hardware. In academia, where robotics researchers look to open source as a means of advancing community knowledge, the answer is perhaps more obvious. But in business, it&#8217;s clearly a balancing act. And [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Open source vs. proprietary software is an age old question. Since the advent of robotics, we also have the question of open source hardware.</p>
<p>In academia, where robotics researchers look to open source as a means of advancing community knowledge, the answer is perhaps more obvious. But in business, it&#8217;s clearly a balancing act. And so, <em style="color: #333333; line-height: 24px;">&#8216;To be open, or not to be open?&#8217;</em> — that is the question for our panelists this month.</p>
<p>We asked Frank Tobe, Robert Morris and Brian Gerkey to weigh in. Here&#8217;s what they have to say …</p>
<p>&nbsp;</p>
<p><a href="http://robohub.org/robotics-by-invitation-panel-members/#brian-gerkey" data-wpel-link="internal"><img decoding="async" alt="Gerkey Brian" src="http://robohub.org/wp-content/uploads/2012/10/Gerkey-Brian_.jpg" width="72" height="96" /></a><a href="http://robohub.org/?p=20942" data-wpel-link="internal"><strong>Brian Gerkey </strong>on “Is open source a good business model for robotics?”</a></p>
<blockquote><p>The IT economy has powerfully demonstrated what happens when companies can leverage open source infrastructure when they build new products and services.  A company like Google would never have come into existence had they not been able to rely from the beginning on solid open source tools like Python and GCC.  IBM would arguably have not been able to make its immensely successful pivot from products to services without Linux.  How many startups these days begin as a cloud-hosted machine running some derivative of the venerable LAMP stack? …</p></blockquote>
<p><a href="http://robohub.org/?p=20942" data-wpel-link="internal">Read more →</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://robohub.org/archives/authors/robertmorris/" data-wpel-link="internal"><img decoding="async" class="alignleft size-full wp-image-20941" alt="robert-morris" src="http://robohub.org/wp-content/uploads/2013/10/robert-morris.jpg" width="82" height="100" /></a><a href="http://robohub.org/?p=20944" data-wpel-link="internal"><strong>Robert Morris </strong>on “Is open source a good business model for robotics?”</a></p>
<blockquote><p>The premise of this question is that robotics companies are manufacturers and that there is choice between an open source and closed source business model.  Robotics companies are best thought of as service companies (even manufacturers, especially when moving beyond early adopters) and openness is not an ‘either/or’ choice, but rather a continuum.  In this day and age the question is, ‘What do you need to keep open create value for your customers?’ …</p></blockquote>
<p><a href="http://robohub.org/?p=20944" data-wpel-link="internal">Read more →</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<a href="http://robohub.org/robotics-by-invitation-panel-members/#mark-tilden" data-wpel-link="internal"><img decoding="async" alt="Mark-Tilden" src="http://robohub.org/wp-content/uploads/2013/01/Frank-Tobe.jpg" width="81" height="108" /></a>
<p><a href="http://robohub.org/?p=20934" data-wpel-link="internal"><strong>Frank Tobe </strong>on “Is open source a good business model for robotics?”</a></p>
<blockquote>
<blockquote><p>Certainly robotics has its share of proprietary software and control systems. Each robot manufacturer markets their products based on the need for secure, proprietary and un-shared systems so that they can ensure stability and control. Whole industries have been set up to bridge those proprietary barriers so that multi-vendor solutions can happen …</p></blockquote>
</blockquote>
<p><a href="http://robohub.org/?p=20934" data-wpel-link="internal">Read more →</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Brian Gerkey on &#8220;Is open source a good business model for robotics?&#8221;</title>
		<link>https://robohub.org/brian-gerkey-on-is-open-source-a-good-business-model-for-robotics/</link>
		
		<dc:creator><![CDATA[Brian Gerkey]]></dc:creator>
		<pubDate>Wed, 09 Oct 2013 15:47:19 +0000</pubDate>
				<category><![CDATA[RBI answers]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=20942</guid>

					<description><![CDATA[The IT economy has powerfully demonstrated what happens when companies can leverage open source infrastructure when they build new products and services.  A company like Google would never have come into existence had they not been able to rely from the beginning on solid open source tools like Python and GCC. IBM would arguably have [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The IT economy has powerfully demonstrated what happens when companies can leverage open source infrastructure when they build new products and services.  A company like Google would never have come into existence had they not been able to rely from the beginning on solid open source tools like Python and GCC. IBM would arguably have not been able to make its immensely successful pivot from products to services without Linux.  How many startups these days begin as a cloud-hosted machine running some derivative of the venerable LAMP stack?  And increasingly the underlying cloud infrastructure itself is open.</p>
<p>While arguing by analogy is fraught with peril, I believe that the similarities between robotics and the rest of the IT world are strong enough to justify it.  In robotics, we have many shared problems to solve when developing a product or service, from low-level drivers to high-level capabilities, and all the developer libraries and tools in between.  I have yet to see a successful robotics business for whom any of that stuff is the competitive advantage.  Rather, success comes from the innovative composition and application of that technology in a form that somebody will pay for.  The hard part is figuring out what the robot should *do*.  By working together on the common underlying problems, we end up with better, more reliable solutions, and we free ourselves to spend more time at the application level, which is where we can differentiate ourselves.</p>
<p>In other words, I believe that open source is a great model for the robotics business as a whole.  Now, is it a good model for any individual company?  It certainly can be.  As examples, we see small-to-medium companies, such as Clearpath Robotics, Rethink Robotics, and Yujin Robot, which use ROS directly in their products. And we see larger companies, such as Bosch and Toyota, using ROS in R&amp;D and prototyping efforts.  These are all profit-motivated companies making what is presumably a rational economic decision to rely on open source software.  They&#8217;re each holding something back that is their &#8220;special sauce,&#8221; whether that&#8217;s higher level application software, configuration data, customizations to the open source code, or the designs for the hardware.  And that&#8217;s expected: unless you&#8217;re in a pure consulting business (selling your time), then you need to own and control something that forms the basis of your product or service offering (to allow you to sell something other than your time).</p>
<p>Fortunately, open source software is entirely compatible with such business models.  In fact, it was our hope to one day see such commercial users of ROS that led us to choose a permissive license (BSD, or Apache 2) for the code that we developed.  We&#8217;re now witnessing, with the debut of so many new robotics companies, the fruits of those earlier labors in building a shared development platform.</p>
<p><strong><i><a href="http://robohub.org/?p=20937" data-wpel-link="internal">Read more answers →</a></i></strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Co-robots really ARE a BIG thing</title>
		<link>https://robohub.org/co-robots-really-are-a-big-thing-2/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Sun, 06 Oct 2013 01:54:00 +0000</pubDate>
				<category><![CDATA[views]]></category>
		<category><![CDATA[Automate 2013]]></category>
		<category><![CDATA[Baxter]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[reports]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[Rethink Robotics]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS-I]]></category>
		<category><![CDATA[Universal Robots]]></category>
		<guid isPermaLink="false">http://robohub.org/?guid=ee547607e7b99774d5075178d66c9515</guid>

					<description><![CDATA[By Frank Tobe, editor and publisher, The Robot ReportSmall and medium shops and factories (SMEs) are an untapped marketplace for robotics but direly in need of automation to remain competitive in this global economy. Two new start up companies: Rethink...]]></description>
										<content:encoded><![CDATA[<p><span style="background-color: yellow;">UPDATED: October 6, 2013</span></p>
<p><a href="http://cdn17.castfire.com/video/305/2242/8032/1926118/cbsnews_2013-10-05-213318-4077-3-0-0.1100.mp4?cdn_id=26&amp;uuid=3f56a2cb85a52691832143b48c58ecfc&amp;referer=http%3A%2F%2Fm.cbsnews.com%2Fpostwatch.rbml%3Fvideoid%3D50156549%26feed_id%3D46&amp;track1=CBSNews&amp;track2=MobileWeb" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://robohub.org/wp-content/uploads/2013/09/CBS-News-and-Baxter-290x269.jpg" alt="CBS-News-and-Baxter" width="290" height="269" class="alignleft size-thumbnail wp-image-20668" /></a><br />
Small and medium shops and factories (SMEs) are an untapped marketplace for robotics but direly in need of automation to remain competitive in this global economy. Two new start up companies: Rethink Robotics and Universal Robots have entered that marketplace. Both companies have U.S. sales in the hundreds of units; Universal has a head start internationally and has sold about 3,000 to-date, but Rethink is way ahead in the US. Both have similar 60-100/mo manufacturing run rates &#8211; so the future looks bright for selling flexible, lightweight, low-cost robots that are easily programmed, safe for humans to work alongside, don&#8217;t require a caged or roped off area, and perform at affordable metrics.<span id="more-19640"></span></p>
<p>
The importance of this new robotic capability and its effect on jobs was the subject of a <a href="http://cdn17.castfire.com/video/305/2242/8032/1926118/cbsnews_2013-10-05-213318-4077-3-0-0.1100.mp4?cdn_id=26&amp;uuid=3f56a2cb85a52691832143b48c58ecfc&amp;referer=http%3A%2F%2Fm.cbsnews.com%2Fpostwatch.rbml%3Fvideoid%3D50156549%26feed_id%3D46&amp;track1=CBSNews&amp;track2=MobileWeb" title="CBS News piece" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CBS News piece</a> on October 5. A few of the quotes from that newscast:</p>
<ul>
<li>U.S. productivity and efficiency are three times greater than China.</li>
<li>Baxter&#8217;s effective cost is $3 per hour.</li>
<li>3-5 million new jobs will happen this decade due to the deployment of Baxter and other co-robots.</li>
</ul>
<p>Boston-based <a href="http://www.rethinkrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Rethink Robotics</a> &#8211; the maker of the low-cost two-armed Baxter robot shown above on the left &#8211; has already begun to sell to small and medium-sized U.S. businesses (SMEs) as well as schools and colleges. They recently announced beginning to sell to European academic institutions.</p>
<p>Danish-based <a href="http://www.universal-robots.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Universal Robots</a> has started to benefit from sales from their new distributor network in the U.S. supplementing their growing European, Asian and International distributor networks and robot sales.</p>
<p>Each company has provided a video profiling how their client companies are using and benefitting from the use of their respective robots. Although these videos are public relations puff pieces, they are also an information resource describing the needs smaller companies have and the benefits offered by robotics.</p>
<h4>UNIVERSAL ROBOTS</h4>
<p>Of the two companies, for the present time, Universal Robots UR robots are better able to handle industrial tasks than Baxter robots. Universal&#8217;s UR5 and UR10 robots can handle 5 and 10 kilos respectively and have sufficient torque to pull open doors and operate hand tools. They also run faster.</p>
<p>Universal Robots got lots of publicity last month when it became known that a UR robot was working at a VW diesel engine production plant in Germany. It was the first publicly-known instance of a robot working alongside a human in an auto factory. In that example, the robot carefully picks up delicate glow plugs and places them into hard-to-reach drill holes alongside a human who then insulates the cylinder head. The robot acts as an assistant and enables the worker to carry out their activities in an upright, healthy posture, unlike previous methods. This week <a href="http://www.technologyreview.com/news/518661/smart-robots-can-now-work-right-next-to-auto-workers/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MIT Technology Review</a> showed another Universal robot, this time at a BMW factory in South Carolina, helping workers perform door assembly by doing the strenuous task of applying door sealant thereby freeing human workers to do the less physical tasks.</p>
<p>In the following video, a 72-person short-run metal products maker displays two applications for their new UR robot: CNC machine tending and loading and unloading a metal bender.</p>
<blockquote class="tr_bq"><p><i>[In a recent case study, machine-loaded costs for a part came to $0.97/part in the U.S. and $0.76/part in China. When a robot was used for machine tending and loading, the total cost shifted to $0.73/part in the U.S. versus $0.76/part in China (including offshore costs like duties and transportation fees). In the study, using the robot boosted efficiency. The machine utilization under manual loading was 82%, when you account for shift changes and breaks. When robots did the tending and loading, the efficiency figure approached 99%. Source: <a href="http://www.plasticstoday.com/articles/robots-lead-reshoring-revolution-091320132" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PlasticsToday and Fanuc Robotics</a>.]</i></p></blockquote>
<div style="text-align: center;"><iframe src="http://www.youtube.com/embed/sfNVg4-GEyc" height="360" width="640" allowfullscreen="" frameborder="0"></iframe></div>
<h4 style="text-align: left;">RETHINK ROBOTICS</h4>
<div style="text-align: left;">Rethink&#8217;s Baxter robots, because of their present speed and load limitations, are being used for pick and place tasks in SMEs and training and education in schools, colleges and research labs. Rethink has scheduled updates throughout 2013 and 2014 to upgrade Baxter and just released a software upgrade which enables Baxter to perform a new set of manufacturing apps. The academic version of Baxter includes an SDK capability which &#8220;presents endless possibilities for our students to create new applications. With the SDK running on ROS, students are able to share innovations and build on each other&#8217;s work,&#8221; said one college professor. Rethink has scheduled enabling the SDK feature in their industrial version of Baxter sometime in 2014.</div>
<div style="text-align: left;"></div>
<div style="text-align: left;">In the following video, a 100-person plastics manufacturer which already uses industrial robots and knows their high costs and other limitations, found that the low-cost, flexible and easily programable Baxter robot, by being so adaptable, is easily able to assist them in various end-of-conveyor completion and packaging tasks.</div>
<p><iframe src="http://www.youtube.com/embed/qL64UyYRBYg" height="480" width="640" allowfullscreen="" frameborder="0"></iframe></p>
<div style="text-align: left;">Both robot systems use a version of the open source <a href="http://www.ros.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS Robotic Operating System</a> but each has different user interfaces to that software. ROS is the predominant software used in universities teaching robotics.</div>
<div style="text-align: left;"></div>
<div style="text-align: left;">In addition to providing low-cost and integrator-free robots to SME&#8217;s, another trend is occurring: providing a ROS front-end to add features to existing industrial robots. Traditional industrial robots have proprietary operating systems and require very specialized programmers to make changes, yet robot users are demanding that their existing systems add newer features such as mobility and navigation and vision enabled systems. <a href="http://rosindustrial.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS-Industrial</a> makes the process of enabling those features less problematic and costly. ROS-Industrial was developed jointly by the ROS folks, Motoman USA and SwRI (Southwest Research Institute). The following video shows the interoperability of two different brands of robot working together on a task. I saw this process in person earlier this year at AUTOMATE 2013 in Chicago. Very impressive; very logical.</div>
<p><iframe src="http://www.youtube.com/embed/uH8WsUY2hng" height="480" width="640" allowfullscreen="" frameborder="0"></iframe></p>
<div style="text-align: left;">
<h4>CONCLUSION</h4>
<p>The falling cost of creating robots will surely benefit the SME manufacturing industry &#8211; as can be seen by the successes of Rethink and Universal and their robots. But they may also play a vital role in increasing productivity in other industries as well. Collaborative robots (also called co-robots) will soon be seen in many other work situations all over the world, thus co-robotics are truly a BIG thing.</p>
</div>
]]></content:encoded>
					
		
		<enclosure url="http://cdn17.castfire.com/video/305/2242/8032/1926118/cbsnews_2013-10-05-213318-4077-3-0-0.1100.mp4?cdn_id=26&#038;uuid=3f56a2cb85a52691832143b48c58ecfc&#038;referer=http%3A%2F%2Fm.cbsnews.com%2Fpostwatch.rbml%3Fvideoid%3D50156549%26feed_id%3D46&#038;track1=CBSNews&#038;track2=MobileWeb" length="507" type="video/mp4" />

			</item>
		<item>
		<title>ROS Industrial celebrates one-year anniversary</title>
		<link>https://robohub.org/ros-industrial-celebrates-one-year-anniversary-2/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Mon, 13 May 2013 13:45:57 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[fraunhofer IPA]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROS-I]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=13996</guid>

					<description><![CDATA[ROS-I is developing and promoting a manufacturer-independent open-source library of drivers and the transfer of established components from research to industry &#8211; not just h/w interfaces and MS, IOS and Android support, but legal and standardization issues as well. Interchangeability of h/w components through standardized interfaces and intelligent software components for flexible production are the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://robohub.org/ros-industrial-celebrates-one-year-anniversary-2/ros-i_puzzle_graphiclr/" rel="attachment wp-att-13997" data-wpel-link="internal"><img decoding="async" class="alignleft size-full wp-image-13997" alt="ROS-I_Puzzle_GraphicLR" src="http://robohub.org/wp-content/uploads/2013/05/ROS-I_Puzzle_GraphicLR.png" width="423" height="450" srcset="https://robohub.org/wp-content/uploads/2013/05/ROS-I_Puzzle_GraphicLR.png 423w, https://robohub.org/wp-content/uploads/2013/05/ROS-I_Puzzle_GraphicLR-282x300.png 282w" sizes="(max-width: 423px) 100vw, 423px" /></a><a title="ROS-I" href="http://rosindustrial.org" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ROS-I</a> is developing and promoting a manufacturer-independent open-source library of drivers and the transfer of established components from research to industry &#8211; not just h/w interfaces and MS, IOS and Android support, but legal and standardization issues as well.<span id="more-13996"></span></p>
<p>Interchangeability of h/w components through standardized interfaces and intelligent software components for flexible production are the benefits.</p>
<p>With centers covering <a title="The Americas" href="http://rosindustrial.org/ric/default-ric.htm" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">The Americas</a> (located at SwRI in Texas) and for <a title="Europe" href="http://rosindustrial.org/ric/default-ric.htm" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Europe</a> (located at Fraunhofer IPA in Germany), ROS-I is looking for a partner to cover Asia.</p>
<p>A <a title="one-year video montage" href=" http://youtu.be/Ek8GKqmJ7n0" target="_blank" data-wpel-link="internal">one-year video montage</a> shows some industrial robotics applications made possible by the ROS-I repository was founded in 2012. One can see ROS-I controlling robots by ABB, KUKA, Fanuc, Adept, Universal Robots, and Yaskawa-Motoman.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>So long, and thanks for all the bots!</title>
		<link>https://robohub.org/so-long-and-thanks-for-all-the-bots/</link>
		
		<dc:creator><![CDATA[Markus Waibel]]></dc:creator>
		<pubDate>Tue, 12 Feb 2013 09:36:21 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[opinions]]></category>
		<category><![CDATA[views]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[PR2]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Scott Hassan]]></category>
		<category><![CDATA[Silicon Valley]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[Steve Cousins]]></category>
		<category><![CDATA[US]]></category>
		<category><![CDATA[Willow Garage]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=8542</guid>

					<description><![CDATA[So, depending on who you ask, Willow Garage is shutting down, pursuing commercial interests, or changing direction. But things are not as dire as some may think: ROS is fine (the OSRF will support it) and there are many options for Willow Garage to explore. Personally I&#8217;m hoping it will be snatched up by Stanford [&#8230;]]]></description>
										<content:encoded><![CDATA[<a href="http://robohub.org/so-long-and-thanks-for-all-the-bots/robohub-pr2-waving/" rel="attachment wp-att-8558" data-wpel-link="internal"><img decoding="async" src="http://robohub.org/wp-content/uploads/2013/02/Robohub-PR2-waving.jpg" alt="Robohub - PR2 waving" width="600" height="450" class="alignleft size-full wp-image-8558" srcset="https://robohub.org/wp-content/uploads/2013/02/Robohub-PR2-waving.jpg 600w, https://robohub.org/wp-content/uploads/2013/02/Robohub-PR2-waving-300x225.jpg 300w, https://robohub.org/wp-content/uploads/2013/02/Robohub-PR2-waving-400x300.jpg 400w" sizes="(max-width: 600px) 100vw, 600px" /></a>
<div style="clear: both;"></div>
<p>So, depending on who you ask, Willow Garage is shutting down, pursuing commercial interests, or changing direction. But things are not as dire as some may think: ROS is fine (the OSRF will support it) and there are many options for Willow Garage to explore. Personally I&#8217;m hoping it will be snatched up by Stanford or another academic institution and become a research institute. But given the number of robots they have out (and their price tags!), a commercial path into the future seems even more likely. In any case, I doubt that Willow Garage will disappear just like that. </p>
<p>What caused the changes is that Willow&#8217;s founder and funder, <a href="http://www.linkedin.com/pub/scott-hassan/0/8b/7b4" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Scott Hassan</a>, has decided that it&#8217;s time to wean Willow Garage from his private financial support.<br />
<span id="more-8542"></span></p>
<p>I&#8217;ve never met Scott, but first and foremost I think we &#8211; roboticists and robot enthusiasts around the globe &#8211; all owe him a huge THANK YOU! I think it&#8217;s fair to say that if it had not been for Scott, we would not have universities around the world sharing a common robot operating system. And, looking at the amazing contributions on the <a href="http://www.willowgarage.com/blog" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Willow Garage blog</a>, it seems clear that the past five years in robotics would have been a lot less exciting without ROS and Willow Garage&#8217;s robots.</p>
<p>Scott brought the model of impact first, monetize later to robotics. <a href="http://www.willowgarage.com/pages/about-us/leadership-team" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Together with Steve Cousins</a> he assembled an amazing team of people and established a network of external collaboration far and beyond anything ever seen in robotics. Did it get us a household robot that can serve us a cup of tea? No. But WOW, did it ever fast-forward us towards that goal.</p>
<p>So thank you Scott, for your vision, incredibly generous financial contributions, and for leading with actions. Willow Garage has already had a huge impact, and I&#8217;m sure there&#8217;s much more to come. I&#8217;m greatly looking forward to the next steps of <a href="https://www.suitabletech.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Suitable Technologies</a>. We all have much to look forward to from Willow Garage&#8217;s other already existing spinoffs (convenience links below) &#8211; and, who knows, from Willow Garage itself in one form or another. </p>
<p>Change and innovation are usually good friends, at least in my book. In spite of all the negativity out there I, for one, think the future of robotics has never been brighter. </p>
<div style="clear: both;"></div>
<a href="http://robohub.org/so-long-and-thanks-for-all-the-bots/robohub-scott-hassan/" rel="attachment wp-att-8543" data-wpel-link="internal"><img decoding="async" class="alignleft  wp-image-8543" alt="Robohub - Scott Hassan" src="http://robohub.org/wp-content/uploads/2013/02/Robohub-Scott-Hassan.jpg" width="190" height="190" srcset="https://robohub.org/wp-content/uploads/2013/02/Robohub-Scott-Hassan.jpg 316w, https://robohub.org/wp-content/uploads/2013/02/Robohub-Scott-Hassan-290x290.jpg 290w, https://robohub.org/wp-content/uploads/2013/02/Robohub-Scott-Hassan-300x300.jpg 300w, https://robohub.org/wp-content/uploads/2013/02/Robohub-Scott-Hassan-100x100.jpg 100w, https://robohub.org/wp-content/uploads/2013/02/Robohub-Scott-Hassan-120x120.jpg 120w" sizes="(max-width: 190px) 100vw, 190px" /></a>
<div style="clear: both;"></div>
<p>Official info: </p>
<ul>
<li>Willow Garage&#8217;s official statement: <a href="http://www.willowgarage.com/blog/2013/02/11/willow-garage-changing" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Willow Garage is changing</a> </li>
<li>The Open Source Robotics Foundation&#8217;s statement: <a href="http://osrfoundation.org/blog/ros-at-osrf.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS @ OSRF</a> </li>
</ul>
<p>Willow Garage&#8217;s spin offs (to date): </p>
<ul>
<li><a href="http://osrfoundation.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Open Source Robotics Foundation (OSRF)</a></li>
<li><a href="https://www.suitabletech.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Suitable Technologies</a></li>
<li><a href="http://www.industrial-perception.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Industrial Perception Inc. (IPI)</a></li>
<li><a href="http://hidof.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">hiDOF Inc.</a></li>
<li><a href="http://redwoodrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redwood Robotics</a></li>
<li><a href="http://opencv.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">OpenCV</a></li>
<li><a href="http://www.openperception.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Open Perception Foundation</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Willow Garage changes direction</title>
		<link>https://robohub.org/willow-garage-changes-direction/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Tue, 12 Feb 2013 05:56:00 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[views]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Scott Hassan]]></category>
		<category><![CDATA[Suitable Technologies]]></category>
		<category><![CDATA[Willow Garage]]></category>
		<guid isPermaLink="false">http://robohub.org/?guid=05b52de5d80886326ffeb2bb9eb0cf37</guid>

					<description><![CDATA[By Frank Tobe, Editor and Publisher,&#160;The Robot ReportFor many years now Willow Garage has invested in open source and open platform robotics. Their goal has been a reflection of the vision of it's founder (and chief funder) to advance the state of...]]></description>
										<content:encoded><![CDATA[<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img decoding="async" alt="" src="http://4.bp.blogspot.com/-LJYQEmy0FMk/URnX4zdTEKI/AAAAAAAACfI/XhNIWaso0Uw/s200/scott-hassan.jpg" width="200" height="118" border="0" />For many years now <a href="http://www.willowgarage.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Willow Garage</a> has invested in open source and open platform robotics. Their goal has been a reflection of the vision of it&#8217;s founder (and chief funder) to advance the state of robotic technology in autonomous devices.And advance the state of robotics it certainly did!<span id="more-8520"></span></div>
<ul class="ul1">
<li class="li1">ROS (Robot Operating System) and ROS-enabled software packages and libraries can be found in most universities and research labs.</li>
<li class="li1">The 50 PR2 research robots and development platforms around the world and at Willow Garage&#8217;s offices in Menlo Park have enabled countless roboticists and research labs to spend their time innovating instead of having to re-invent.</li>
<li class="li1">The spin-offs abound as well: TurtleBot, OpenCV, Galapagos, ROS and ROS-Industrial, Suitable Technologies&#8217; Beam Remote Presence System, HiDOF consulting, the detection and perception leading to the establishment of Industrial Perception, are all indicators of WG&#8217;s policy of spinning out entities with a sustaining business plan.</li>
<li class="li1">Joint ventures like Redwood Robotics and Industrial Perception.</li>
</ul>
<div class="p1">Today WG announced that they are changing direction and deciding to focus on additional commercial opportunities with an eye to becoming self-supporting. The generous funding from Scott Hassan will stop within three months, and WG employees have been notified. Late last year the writing was on the wall when Scott Hassan announced that he was to be the CEO at WG spin-off Suitable Technologies.</div>
<div class="p1"><img decoding="async" alt="" src="http://2.bp.blogspot.com/-piooI19V6nE/URnYSBonL5I/AAAAAAAACfQ/QWrYoAWXMlo/s200/wireframe+wg+pr2.png" width="197" height="200" border="0" />The PR2s around the world will continue to be supported and the recent establishment of non-profit organizations will continue the open source platform and libraries.</div>
<div class="p1"></div>
<div class="p1">What can we expect from Willow Garage in the future?</div>
<div class="p1"></div>
<div class="p1">One can only imagine. Personally, after seeing Industrial Perception&#8217;s robot unload the back of a truck, understanding the complexity of what appeared to be a seamless process made simple by IPI, I foresee other products along the line of &#8220;see&#8221;, &#8220;sense&#8221;, &#8220;process&#8221;, and &#8220;act&#8221; done using ROS, tested on PR2s and rolled out commercially with the new credo of &#8220;fast and seamless&#8221;.</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Filling a need&#8230; or feeding a diversion</title>
		<link>https://robohub.org/filling-a-need-or-feeding-a-diversion/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Wed, 02 Jan 2013 16:02:00 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[views]]></category>
		<category><![CDATA[3D printing]]></category>
		<category><![CDATA[ABB]]></category>
		<category><![CDATA[Aldebaran]]></category>
		<category><![CDATA[Autom]]></category>
		<category><![CDATA[Botiful]]></category>
		<category><![CDATA[Kiva]]></category>
		<category><![CDATA[Kuka]]></category>
		<category><![CDATA[liquid robotics]]></category>
		<category><![CDATA[Parrot]]></category>
		<category><![CDATA[Rethink Robotics]]></category>
		<category><![CDATA[roadmap for us robotics]]></category>
		<category><![CDATA[romo]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Staubli]]></category>
		<category><![CDATA[SWIVL]]></category>
		<category><![CDATA[Universal Robots]]></category>
		<guid isPermaLink="false">http://robohub.org/?guid=724fa49df2d5216fe79770565c45ee4c</guid>

					<description><![CDATA[Today's robotics industry could use some strategic guidance, &#160;particularly in the area of healthcare.&#160;By Frank Tobe, Editor and Publisher, The Robot Report&#160;It is clear to me that the next big markets for robotics are:SMEs (robot workers ...]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<div style="text-align: left;"><strong><span style="font-family: Arial, Helvetica, sans-serif;">Today&#8217;s robotics industry could use some strategic guidance,<br />
particularly in the area of healthcare.</span></strong></div>
<p>&nbsp;</p>
<div style="text-align: left;">
<p>It is clear to me that the next big markets for robotics are:</p>
<ul>
<li>SMEs (robot workers and co-workers in <span style="text-decoration: underline;">S</span>mall and <span style="text-decoration: underline;">M</span>edium-sized <span style="text-decoration: underline;">E</span>nterprises)</li>
<li>Medical and healthcare (nursing assistance, surgeon augmentation, operating room assistance, therapeutic assistance, home care, remote presence, hospital automation)</li>
<li>Agriculture (robotically automated planting, weeding, harvesting, sorting and packaging)</li>
<li>Embedded systems within our cars, trucks and taxis</li>
</ul>
<p><span id="more-7200"></span><br />
But there are hold-ups:</p>
<ul>
<li>SMEs &#8211; cost, safety, training, vision, grasping and manipulation</li>
<li>Health care &#8211; safety, acceptance, cost, task training, jobs resistance, communication</li>
<li>Agriculture &#8211; low-cost immigrant labor, slow acceptance, lack of government support</li>
<li>Lack of political commitment and public-private consortiums to solve strategic problems</li>
</ul>
<div class="p1"><span style="font-weight: normal;">Until a significant breakthrough in these new markets, the biggest market for robots will continue to be the industrial sector &#8211; factories and massive processing facilities. That group is poised to see double-digit growth for many years to come as global competition continues to force companies to automate, improve quality, lower spoilage and reduce costs.</span><br />
<span style="font-weight: normal;"><br />
</span><span style="font-weight: normal;">Furthermore, large-scale research and pure science robotics projects sponsored by the likes of NASA, DARPA, the EU and the governments of Japan and Korea, and capital-intensive industries, are diminishing in scope and dollars and being replaced by garage businesses full of toys, hobbyist inventions and incremental and transitional products. This change is happening because of enhanced interest in (and understanding of) &#8220;smart&#8221; consumer products, lower-cost sensor availability, more capable and cheaper CPUs, 3D printers, more flexible and open control software, government preoccupation with other more important priorities, and increased global competitive pressures to reduce cost and increase quality and productivity.</span><br />
<span style="font-weight: normal;"><br />
</span><span style="font-weight: normal;">It is these very same low-cost sensors, processors and cameras enabling the auto companies to accelerate their embedded systems into fully functional self-driving cars (see example below). </span><br />
<span style="font-weight: normal;"><br />
</span><span style="font-weight: normal;"><em>[NOTE: Companies mentioned without a stock symbol are privately held.]</em></span></div>
<div class="p1"></div>
<div class="p1"><strong><span style="font-family: Arial, Helvetica, sans-serif;">Transitional Products</span></strong></div>
<p>Kindle is the poster child of a transitional product. Although a much appreciated holiday gift for the last couple of years, Kindles have already peaked and are being replaced by more multi-functional devices (iPads, smartphones and tablets). 2012 shipments were only 14.9 million units &#8211; a 36% drop from 2011. One research firm predicted that 2013 sales will see another 36% drop. Meanwhile tablets and smartphones grew 27.1% in 2012 and are gearing up for a banner 2013.</p>
</div>
<div style="text-align: left;"><a style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" href="http://3.bp.blogspot.com/-BSvkrtTCmDw/UNdeXNwPvhI/AAAAAAAAB8I/bGOVzOc9E7c/s1600/Amazon-kindle.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://3.bp.blogspot.com/-BSvkrtTCmDw/UNdeXNwPvhI/AAAAAAAAB8I/bGOVzOc9E7c/s320/Amazon-kindle.jpg" alt="" width="240" height="320" border="0" /></a>People appear willing to pay more to get the extra features of an iPad or tablet. Thus e-readers were a device for a particular moment in time that has been replaced by a newer technology. This process is analogous to secretaries being replaced by word processing machines and then by PCs, WordStar and Microsoft Word.</div>
<div style="text-align: left;"></div>
<div style="text-align: left;">
<p>Jeff Bezos used the Kindle to cultivate a different way for readers to buy more books from <a href="http://www.amazon.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Amazon</a> (NASDAQ:AMZN). It became a &#8220;need&#8221; when people saw that the Kindle was light, easy to use, could fit in a purse, could carry a whole library of e-books, worked in bright sunlight as well as at night and didn&#8217;t cost too much.</p>
<p><strong>Bottom line:</strong> The Kindle isn&#8217;t that different from most other tech devices &#8212; transitional products with something cheaper and more capable just around the bend.</p>
</div>
<div style="text-align: left;">In robotics, the same kind of transitional development is occurring almost daily. Really great inventions, silly ones, temporary solutions, and diversions are all happening simultaneously, seemingly without moderation, guidance or direction. And most are transitional (or at least incremental) with better solutions in the labs or courtrooms waiting for breakthroughs.</div>
<h4><span style="font-family: Arial, Helvetica, sans-serif;">Temporary, Incremental and Transitional Solutions</span></h4>
<div style="text-align: left;">
<table class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center;"><a style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;" href="http://1.bp.blogspot.com/-_jD8wARE67o/UNdiXLyuQSI/AAAAAAAAB9M/F-8e_I2LO7k/s1600/cyphyworks-ease-drone.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://1.bp.blogspot.com/-_jD8wARE67o/UNdiXLyuQSI/AAAAAAAAB9M/F-8e_I2LO7k/s320/cyphyworks-ease-drone.jpg" alt="" width="251" height="320" border="0" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">CyPhyWorks new EASE drone.</span></td>
</tr>
</tbody>
</table>
<p>A great example of a temporary solution is <a href="http://cyphyworks.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CyPhy Works</a>&#8216; new pair of drones (EASE and PARC): timely, innovative and providing solutions for specific needs with a transitional solution: a tether.</p>
<p><a href="http://www.cyphyworks.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CyPhy Works</a> began with funding to research methods to view and analyze bridges and other potential security targets but soon concluded that conventional drones couldn&#8217;t handle the payload of cameras and instruments, sensor processing, security, and flight duration needed to get the job done.</p>
</div>
<div style="text-align: left;"></div>
<blockquote><p>“The biggest problem with [surveillance] robots today is they send them inside a building, they go down the stairs, no communications; they go around the corner, no comms. You go into a bunker and it’s got some rebar and you don’t get comms,” CEO Helen Greiner says.</p></blockquote>
<blockquote><p>“The problems are power and communications. It all comes down to that.&#8221;</p></blockquote>
<blockquote><p>&#8220;When you have a flying vehicle of a size, a diameter that can fit through a door comfortably, it will last for, you know, 20 minutes. And then the customers will want to carry something else, and that something else requires power, and it weighs the robot down and it ends up lasting 15 minutes, and somebody else puts something on and it ends up lasting 10 minutes, and none of it’s acceptable. You would have to be small and fly for at least a few hours to make it useful. With the filament, basically you get high-definition video images all the time, and then it has the added advantages in that it can’t be jammed, it can’t be spoofed, it can’t be intercepted. And it has unlimited power.”</p></blockquote>
<div style="text-align: left;">
<p>Hence the tether, a clever adaption to today&#8217;s limitations enabling the drones to fly for as long as necessary, stream high-def images and sensor data to the base station for processing (instead of onboard), and with security assured (from the device at least) to the base station. <em>[As an aside, the tether is enhanced by having the spooler autonomously controlled by the drone instead of the base station thereby reducing the chances for entanglement. Should it happen to snag or break, the vehicle can use its battery power to fly back to its point of origin.]</em></p>
<p>An example of an incremental product is the slow but steady movement toward autonomous cars. First there was adaptive cruise control (2001) which automatically adjusts your speed depending on the car in front. Next came active braking (2004), which could detect if a crash was imminent and apply the brakes if necessary. This was followed by lane assist (2008) and self parking systems. The 2014 Mercedes-Benz S Class by <a href="http://www.daimler.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Daimler AG</a> (ETR:DAI), will be the first car capable of fully driving itself (under certain minor limitations) by adding new rear-end sensors, pedestrian awareness and driver alertness cameras. The system will rely on 26 separate sensors, including radar and stereo cameras, to monitor traffic and pedestrians up to 650 feet in front. &#8220;<a href="http://www.motorauthority.com/news/1081151_mercedes-explains-its-2014-s-class-autonomous-system-video" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Steering Assist</a>&#8221; will steer in stop-and-start situations and at speeds up to 124 mph; it will slow entering curves but stay in its lane until the driver takes over. <em>[This is just the beginning folks!]</em></p>
<p>Other incremental and transitionally useful consumer products include <a href="http://www.ftrsystems.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CaddyTrek</a>&#8216;s follow-the-golfer carts, <a href="http://www.zodiacpoolsystems.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Zodiac Marine &amp; Pool</a>&#8216;s Polaris pool cleaners, <a href="http://www.husqvarna.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Husqvarna</a>&#8216;s lawn mower (STO:HUSQ-B) and <a href="http://www.irobot.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iRobot</a>&#8216;s (NASDAQ:IRBT) family of floor care products &#8211; all examples of early-adopter products for the tech savvy offering some level of utility for their stated tasks. 3D printers also fall into this category with a range of products from $300 on up to $1 million. The stocks of these companies have been highlighted by many of the analysts in recent months as great buys: <a href="http://www.stratasys.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Stratasys</a> (NASDAQ:SSYS) (which just acquired competitor <a href="http://www.objet.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Objet</a>), <a href="http://www.3dsystems.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">3D Systems</a> (NYSE:DDD) and <a href="http://www.arcam.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Arcam AB</a> (STO:ARCM). All three stocks have doubled in the last year. Alas, <a href="http://www.makerbot.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MakerBot</a>, the do-it-yourself (DIY) phenom, is still privately held.</p>
<h4><strong><span style="font-family: Arial, Helvetica, sans-serif;">Really Great Inventions</span></strong></h4>
<div class="separator" style="clear: both; text-align: center;"><a style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" href="http://4.bp.blogspot.com/-O-oz6Qwr5w8/UNd4hOUlJeI/AAAAAAAAB-c/4JD38yQyJhg/s1600/Army+of+Kivas+copy.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://4.bp.blogspot.com/-O-oz6Qwr5w8/UNd4hOUlJeI/AAAAAAAAB-c/4JD38yQyJhg/s200/Army+of+Kivas+copy.jpg" alt="" width="200" height="150" border="0" /></a></div>
<p>The da Vinci surgical system by <a href="http://www.intuitivesurgical.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Intuitive Surgical</a> (NASDAQ:ISRG), Kiva&#8217;s warehouse robots and goods-to-man concept (<a href="http://www.kivasystems.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Kiva</a> was acquired by <a href="http://www.amazon.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Amazon</a> (NASDAQ:AMZN) earlier this year), and <a href="http://liquidr.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Liquid Robotic</a>&#8216;s wave gliders are present-day robotics stars. Each is unique and disruptive to the way things were done and each is just a precursor to how things will be in the near future.</p>
<p>Less well known inventions are the inroads the larger industrial robot makers have been making with lightweight single and dual-armed robots capable of working alongside their human counterparts &#8211; without a protective barrier between them. <a href="http://www.yaskawa.co.jp/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Yaskawa Electric</a> (TYO:6506), <a href="http://www.abb.com/product/us/9AAC910011.aspx?country=US" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ABB</a> (NYSE:ABB), <a href="http://www.kuka-ag.de/en/start.htm" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">KUKA</a> (ETR:KU2), <a href="http://www.strobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ST Robotics</a> and <a href="http://www.universal-robots.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Universal Robots</a> all have new products making waves in the industry. <a href="http://www.rethinkrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Rethink Robotics</a>&#8216; Baxter is the newest player in this trend toward robotic co-workers.</p>
<h4><strong><span style="font-family: Arial, Helvetica, sans-serif;">Toys, Kits and Academic Training Bots</span></strong></h4>
<table class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="text-align: center;"><a style="margin-left: auto; margin-right: auto;" href="http://4.bp.blogspot.com/-bkRTy2dLzPc/UNd3VOjg5GI/AAAAAAAAB-Q/0_kcORdl1Cc/s1600/nao-femsapien-ar.drone.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://4.bp.blogspot.com/-bkRTy2dLzPc/UNd3VOjg5GI/AAAAAAAAB-Q/0_kcORdl1Cc/s1600/nao-femsapien-ar.drone.jpg" alt="" border="0" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">WowWee&#8217;s Femsapien, Parrot&#8217;s AR.Drone quadcopter and Aldebaran&#8217;s Nao.</span></td>
</tr>
</tbody>
</table>
<p>Toys like <a href="http://www.parrot.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Parrot</a>&#8216;s (EPA:PARRO) AR.Drone quadcopter (a present-day global hit) and <a href="http://www.wowwee.com/index.php" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WowWee</a>&#8216;s line of robotic toys and pets (Robosapien, Roboraptor, etc.) have sold millions of units. <a href="http://www.aldebaran-robotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Aldebaran</a>&#8216;s Nao robots have a large following in high schools and colleges partly because of their enticing humanoid form, their involvement in robotic soccer games, and their high functionality for low cost.</p>
<p>But there are also toys and other robotic items that whither because the developer didn&#8217;t want to be diverted into a business when all he/she wanted was to build something fresh and fun. Many of the tele-presence devices getting crowd-funding in recent months are fun-tech gimmick products with no long-term business plan or even interest in having one.</p>
<p>Don&#8217;t get me wrong. Robotic toys are likely to be the precursor to more useful robotic inventions &#8211; perhaps from the same inventors. But there is definitely an explosion of this kind of robotic toy &#8211; <a href="http://www.swivl.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">SWIVL</a>, <a href="http://www.intuitiveautomata.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Autom</a>, <a href="http://www.gosphero.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Sphero</a>, <a href="http://romotive.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Romo</a> and <a href="http://www.kickstarter.com/projects/1452620607/botiful-telepresence-robot-for-android" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Botiful</a> being examples.</p>
<p>Within academia, industrial robot companies have donated and made available low-cost robots and teacher&#8217;s guides for high schools, junior colleges, tech schools and universities for years to help stimulate STEM careers and robotics in particular. <a href="http://www.sciarc.edu/portal/about/resources/robotics_lab.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Staubli&#8217;s Robot House</a> at <a href="http://www.sciarc.edu/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">SCI-Arc</a>, a leading architectural school in Southern California, is an example. But in recent years, more humanoid and open source robots are becoming affordable. Also helping speed up development are open source software resources such as <a href="http://www.willowgarage.com/pages/software/ros-platform" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Willow Garage&#8217;s ROS</a>.</p>
<h4><strong><span style="font-family: Arial, Helvetica, sans-serif;">Healthcare Robotics</span></strong></h4>
<p>In a few recent articles in robotics and healthcare media, including one by the editor of Robotics Review, there has been a call for leadership &#8211; for national direction in strategic areas of the robotics industry, particularly in the area of healthcare. Henrik Christensen and the team involved with the publication and presentation of &#8220;<a href="http://www.us-robotics.us/reports/CCC%20Report.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A Roadmap for U.S. Robotics: from Internet to Robotics</a>&#8221; began the process and it has slowly gained momentum.</p>
<p>Early last year President Obama established the National Manufacturing Competitiveness Initiative which included a section for robotics. The initiative was funded with $500 million, 10% earmarked for robotics. The scope of his directive was to insure that critical (defense and security) products were manufactured by Americans in America. Tom Clancy&#8217;s new book &#8220;<a href="http://astore.amazon.com/therobrep0f-20/detail/0399160450" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Threat Vector</a>&#8221; shows just how critical this can be in his fictional account of a virus planted on a foreign-made hard drive component installed in an American-made disk integrated into a high-security American defense installation.</p>
<p>Other countries &#8211; the EU, Korea and Japan in particular &#8211; have public-private consortiums working on difficult problems for which solutions are in the national interest, hence the reason why they are funded. Other than the American Manufacturing Initiative, American doesn&#8217;t have any such strategically-funded national interest projects (except military and defense).</p>
<p>To my way of thinking, advancements in healthcare shouldn&#8217;t be held up or otherwise thwarted because of patents, research funding or other corporate or personal (selfish) rationalizations. Patient care should be paramount, profits and profitability secondary. But that&#8217;s not the way it is at present nor will it change without political intervention.</p>
<p>I&#8217;d like to suggest a change similar to what Henry Ford did when confronted with a similar situation 100 years ago.</p>
<blockquote class="tr_bq"><p>In the early years of automobile development, a group owned the rights to a two-cycle gasoline engine patent. By controlling this patent, they were able to monopolize the industry and force car manufacturers to adhere to their demands or risk a lawsuit. In 1911, Henry Ford won a challenge to the patent. The result was that the patent became virtually worthless and a new association &#8211; which would eventually become the Motor Vehicle Manufacturers Association &#8211; was formed. The new association instituted a cross-licensing agreement among all U.S. auto manufacturers: although each company would develop technology and file patents, those patents were shared openly and without the exchange of money between all the manufacturers. By the time the U.S. entered WWII, 92 Ford patents and 515 patents from other companies were being shared between these manufacturers, without any exchange of money &#8211; or lawsuits. The best braking system was shared by all as was the best window wiper, and many, many other inventions passed freely from one car company to the others. The result was that the user &#8211; the car driver &#8211; benefitted with the safest and best cars, no matter the brand &#8211; and the auto industry flourished as a result.</p></blockquote>
<p>If an association like the MVMA &#8211; with a charismatic and visible leader &#8211; were to be launched in the medical robotics arena, perhaps the wonderful new inventions we&#8217;ve all read about would become available quicker and with less constraints, patents, and other hold-ups. Patients &#8211; you and I &#8211; care-givers and healthcare systems would all share in the benefits and lives saved which would come from focused development speed-ups in the robotics-related healthcare marketplace.</p>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Robotics year in review: Top 10 stories of 2012</title>
		<link>https://robohub.org/robotics-year-in-review-top-10-stories-of-2012/</link>
		
		<dc:creator><![CDATA[David Pietrocola]]></dc:creator>
		<pubDate>Wed, 26 Dec 2012 08:00:53 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[opinions]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[automotive]]></category>
		<category><![CDATA[Curiosity rover]]></category>
		<category><![CDATA[DARPA]]></category>
		<category><![CDATA[DIY Drones]]></category>
		<category><![CDATA[Grishin Robotics]]></category>
		<category><![CDATA[Kiva Systems]]></category>
		<category><![CDATA[Robonaut 2]]></category>
		<category><![CDATA[Robot and Frank]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<guid isPermaLink="false">http://robotsindc.com/?p=331</guid>

					<description><![CDATA[The past year was a watershed moment for robotics. From defense to exploration, startups to legislation, we saw products, laws, and investments that have shifted robotics out of the lab and into our lives. They have built on decades of &#8230; <a href="http://robotsindc.com/?p=331" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Continue reading <span>&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>The past year was a watershed moment for robotics. From defense to exploration, startups to legislation, we saw products, laws, and investments that have shifted robotics out of the lab and into our lives. They have built on decades of basic and applied research, taking advantage of plummeting component costs and maturing core technologies such as batteries and communications. Below are the top 10 stories of 2012. And choosing only 10 from so many successes, research, and new products was extremely difficult. Perhaps that’s really the best story of the year.<span id="more-6768"></span></p>
<h3><strong>10. Robot and Frank Film looks toward elderly care future</strong></h3>
<p>Among films like <em>Real Steel</em> and <em>I, Robot</em>, <a title="New Film Imagines Assistive Robots in the Home" href="http://robotsindc.com/?p=140" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><em>Robot &amp; Frank</em></a> emerged from the Sundance Film Festival as a refreshing film that offered roboticists a realistic vision for robots in elderly care.</p>
<h3><strong>9. First robotics ethics and law conference</strong></h3>
<p>The University of Miami School of Law hosted the <a href="http://robots.law.miami.edu" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">first conference</a>on legal and policy issues relating to robotics, a sign of things to come as unique enable robotics technologies raise new philosophical and legal concerns for lawyers and policymakers.</p>
<h3><strong>8. Baxter brings manufacturing robotics to small businesses</strong></h3>
<p>For four years, Rodney Brooks’ Heartland Robotics (now called <a href="http://www.rethinkrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Rethink Robotics</a>) remained in stealth mode as many wondered what the acclaimed researcher and iRobot co-founder was plotting for the “manufacturing” domain. Finally, we met <a href="http://spectrum.ieee.org/robotics/industrial-robots/rethink-robotics-baxter-robot-factory-worker" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Baxter</a>, a two-armed robot that can be programmed by demonstration to perform pick-and-place tasks. But it’s the small $20,000 price tag that is turning heads.</p>
<h3><strong>7. Amazon acquires Kiva for $775M</strong></h3>
<p>Amazon shocked the robotics world with its $775 million <a href="http://www.bloomberg.com/news/2012-03-19/amazon-acquires-kiva-systems-in-second-biggest-takeover.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">acquisition</a> of Kiva Systems, maker of the automated warehouse logistics robots. It may not be a price we’ll see again any time soon, but the purchase signals a maturation of mobile robots that have become an integral part of business logistics.</p>
<h3><strong>6. Robonaut, Curiosity pave the way in space, WAVE glider robot traverses Pacific</strong></h3>
<p>With <a href="http://www.washingtonpost.com/blogs/innovations/post/whither-nasa-agencys-strategy-mission-and-vision-lack-clarity-expert-panel-finds/2012/12/06/674c8cb2-3eef-11e2-bca3-aadc9b7e29c5_blog.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">recent news</a> in Washington considering the future of NASA, 2012 was a great year for the agency’s robotics program. First, Robonaut aboard the International Space Station began the year with an <a href="http://www.space.com/14590-space-robot-astronaut-handshake-robonaut-2.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iconic handshake</a> with the ISS commander. Since then, it has performed a variety of tasks in flipping switches, turning knobs, and grabbing handrails. b. Of course there was the <a href="http://www.huffingtonpost.com/2012/08/06/mars-rover-curiosity-landing-live-updates_n_1742499.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">“terrifying” Mars landing</a> of the Curiosity rover in July. Armed with an arsenal of tools and laboratory equipment, Curiosity is turning out to be a successful robotic explorer. And just this month we learned that an autonomous wave glider robot from <a href="http://www.liquidr.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Liquid Robotics</a> <a href="http://www.popsci.com/technology/article/2012-12/oceangoing-robot-comes-ashore-australia-completing-9000-mile-autonomous-pacific-crossing" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">completed</a> its <strong>one-year, 9000-mile</strong> Pacific voyage from California to Australia.</p>
<h3><strong>5. U.S. Government flexes muscle with DARPA ROBOTICS challenge and NRI</strong></h3>
<p>Back in 2004 when DARPA announced its first <a href="http://archive.darpa.mil/grandchallenge04/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grand Challenge</a> in robotics, a reliable driverless car was a dream. Now, well, see the #4 story of the year below. The blue sky agency is at it again with the <a href="http://www.theroboticschallenge.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Robotics Challenge</a>, a $34 million effort with the goal of producing a capable humanoid robot for disaster response scenarios. An added innovation to the challenge is an open-source simulator being developed by the <a href="http://www.osrfoundation.org" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Open Source Robotics Foundation (OSRF)</a>, which will serve as a contribution to the community but also permit a software-only team to earn a humanoid hardware platform and advance to the second phase of the challenge.</p>
<p>A year after the Obama Administration announced the <a href="http://www.whitehouse.gov/blog/2011/06/24/developing-next-generation-robots" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">National Robotics Initiative</a>, the National Science Foundation, the National Institutes of Health, and the U.S. Department of Agriculture <a href="http://www.nsf.gov/news/news_summ.jsp?cntn_id=125390" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">announced</a> $50 million in funding toward collaborative robots. While the amount is small compared to programs in Europe, Japan, and South Korea, the NRI is the first <a title="Defense Spending and Robotics Research" href="http://robotsindc.com/?p=119" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">coordinated</a> research funding focus in the U.S. for non-military robotic applications. For that, U.S. efforts come in at number five.</p>
<h3><strong>4. Driverless car legislation becomes law</strong></h3>
<p>The <a href="http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/how-google-self-driving-car-works" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google self-driving car</a> has racked up 300,000 miles on the road as <a href="http://www.cnn.com/2012/09/25/tech/innovations/self-driving-car-california/index.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">California</a>, <a href="http://www.wptv.com/dpp/news/state/florida-embraces-self-driving-cars-as-engineers-and-lawmakers-prepare-for-the-new-technology" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Florida</a> and <a href="http://www.forbes.com/sites/alexknapp/2011/06/22/nevada-passes-law-authorizing-driverless-cars/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Nevada</a> (last year) passed legislation setting up the procedures and requirements that will be needed for commercial driverless products. Several others, including <a href="http://www.usnews.com/news/articles/2012/10/24/dc-could-pass-driverless-car-bill-by-end-of-year" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">D.C.</a>, are reviewing bills. With car manufacturers now introducing advanced sensors and increasing autonomy features in <a href="http://www.wired.com/autopia/2012/12/mercedes-benz-s-class-tech/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">upcoming models</a>, the legislation is ahead of the technological curve for once.</p>
<h3><strong>3. ROS turns 5</strong></h3>
<p>The Robot Operating System from Willow Garage. There’s not much more to say than I already have in <a title="How to control Roomba from your iPad (Part II)" href="http://robotsindc.com/?p=278" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">previous posts</a>. But a <a href="http://www.ros.org/news/2012/12/ros-five-years.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">five-year anniversary</a> for an open-source robotics software framework that continues to grow is a significant achievement. How fast has it grown? According to Tully Foote’s blog post at ros.org, there are 3699 public ROS packages (up from 1600 three years ago), 90 community-supported robot platforms (up from 50), and people are using ROS on all seven (yes, seven) continents. The recently launched <a href="http://www.osrfoundation.org" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Open Source Robotics Foundation</a> is also a good sign for a sustainable movement.</p>
<h3><strong>2. Maker and start-up culture pushes robotics</strong></h3>
<p>In the same year that the iRobot Roomba celebrated <a href="http://spectrum.ieee.org/automaton/robotics/robotics-hardware/video-friday-an-arm-for-your-partybot-and-irobot-turns-10" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">10 years</a> on the market, we saw an acceleration of viable robotics businesses and products. For years many said that venture capitalists wanted nothing to do with hardware startups; they were too risky and required upfront capital, manufacturing, and inventory. That has clearly changed now, with increasing investments in robotics startups and entrepreneurs figuring out how to create products and solutions using robotics technology. The prestigious <a href="http://www.ycombinator.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Y Combinator</a> program funded <a href="http://www.doublerobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Double Robotics</a> and their price-shattering telepresence robot. <a href="http://www.robotspodcast.com/podcast/2012/11/robots-grishin-robotics" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Dmitry Grishin</a>, a Russian investor, launched <a href="http://www.grishinrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grishin Robotics</a> with $25 million of his own funds to invest in personal robotics companies. As of this writing, he’s invested in Double and the <a href="http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/grishin-pours-250000-into-robotappstore" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RobotAppStore</a>. Furthermore, <a href="http://www.therobotreport.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The Robot Report</a>’s <a href="http://www.therobotreport.com/index.php/site/TRR-Global-Map/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">detailed map</a> of nearly 1000 companies indicates 173 startups, 89 in the U.S. alone (not including many others still in stealth mode). And lest we forget the crowdfunding movement, which has spawned several robotics products and dozens more related “Internet of Things” devices. Some of our favorites: <a href="http://www.kickstarter.com/projects/peterseid/romo-the-smartphone-robot" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Romo</a>, <a href="http://www.kickstarter.com/projects/arcbotics/hexy-the-hexapod-low-cost-six-legged-open-robot" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Hexy the Hexapod</a>, <a href="http://www.kickstarter.com/projects/openrov/openrov-the-open-source-underwater-robot" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">OpenROV</a>, and <a href="http://www.indiegogo.com/autom" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Autom</a>.</p>
<p>Feeding into this hardware movement has been the growing maker culture, with a combination of <a href="http://blog.makezine.com/volume/make-ultimate-guide-to-3d-printing/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">3D printers</a>, hacker spaces, and inexpensive microcontrollers like the Arduino reducing the barrier to tinkering, building, and experimenting. Similarly, the Do-It-Yourself <a href="http://diydrones.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">drone community</a> has taken off with Wired Editor-in-Chief Chris Anderson <a href="http://www.wired.com/about/2012/11/wired-editor-in-chief-chris-anderson-steps-down/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">leaving his post</a> to take over 3D Robotics full-time.</p>
<h3><strong>1. Drones take center stage</strong></h3>
<p>It seems a week didn’t go by without a <a href="http://articles.washingtonpost.com/2012-10-18/world/35502344_1_qaeda-drone-fleet-cia-drones" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">major story</a> involving <a href="http://articles.washingtonpost.com/2011-12-23/national/35287608_1_mini-drones-engineer-military-doctrine" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">unmanned aerial vehicles</a> (UAVs) as they continue to be used in warzones in Afghanistan and shadow campaigns in Pakistan, Yemen, and the horn of Africa. Regardless of the ethics, sovereignty concerns, and the like, drones have saturated the national discourse and are here to stay on the battlefield, and there is little doubt we will begin to see remote-controlled and semi-autonomous UAVs in domestic surveillance and commercial applications <a href="http://www.faa.gov/news/updates/?newsId=68004" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">as soon as 2015</a> in the United States. For these reasons, they take the number one spot.</p>
<p>Have another top story we didn’t list? We’d love to hear them! Let us know in the comments section.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SwRI and ROS-Industrial making progress on 5th anniversary of ROS</title>
		<link>https://robohub.org/swri-and-ros-industrial-making-progress-on-5th-anniversary-of-ros/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Tue, 04 Dec 2012 06:09:00 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[ROS]]></category>
		<guid isPermaLink="false">http://www.therobotreport.com/index.php/blog/post/swri_and_ros-industrial_making_progress_on_5th_anniversary_of_ros/</guid>

					<description><![CDATA[... In 2011, Motoman USA partnered with SwRI (Southwest Research Institute) to enable ROS software to be available to Motoman users. &#8220;The next step for industrial robotics is to be more sensor aware; to be able to accomodate the many new capabili...]]></description>
										<content:encoded><![CDATA[<a href="http://robohub.org/wp-content/uploads/2012/12/RIC-logo.png" data-wpel-link="internal"><img decoding="async" src="http://robohub.org/wp-content/uploads/2012/12/RIC-logo-300x135.png" alt="" title="RIC-logo" width="300" height="135" class="alignleft size-medium wp-image-6255" srcset="https://robohub.org/wp-content/uploads/2012/12/RIC-logo-300x135.png 300w, https://robohub.org/wp-content/uploads/2012/12/RIC-logo.png 350w" sizes="(max-width: 300px) 100vw, 300px" /></a>
<p>&#8230; In 2011, Motoman USA partnered with SwRI (Southwest Research Institute) to enable ROS software to be available to Motoman users. &#8220;The next step for industrial robotics is to be more sensor aware; to be able to accomodate the many new capabilities showing up in the service sector. It&#8217;s clear that ROS is able to handle all of these,&#8221; said Erik Nieves, Technology Director for Yaskawa America&#8217;s Motoman Robotics Division.<br /><span id="more-6219"></span><br />
&#8230; From that venture came the SwRI-led ROS-Industrial Consortium (2012), dedicated to providing a common interoperable software language for existing industrial hardware. Last month, Fraunhofer IPA became the ROS-I organizer for the EU.<br />
 <br />
&#8230; ROS-I enables workcell visualization and simulation capabilities, and material handling in dynamic environments with on-the-fly object ID and grasp planning. It allows 2D-vision and 3D-point cloud perception systems.<br />
&#8230; &#8220;It&#8217;s an exciting time in industrial robotics,&#8221; said SwRI senior research engineer Shaun Edwards. &#8220;After the economic downturn, the U.S. is now seeing a new government focus on manufacturing, a surge of venture capital spending in this area, and a trend toward returning manufacturing to homeland countries due to rising labor costs in other countries.&#8221;<br />
&#8230; This is also the <a href="https://www.willowgarage.com/blog/2012/11/29/ros-celebrates-five-year-anniversary" title="5th anniversary of ROS" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">5th anniversary of ROS</a>. There are many hundreds of robots running ROS. More than 90 types and 28 robots come with supported installation instructions.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rapid robot prototyping with ROS</title>
		<link>https://robohub.org/rapid-robot-prototyping-with-ros/</link>
		
		<dc:creator><![CDATA[David Pietrocola]]></dc:creator>
		<pubDate>Fri, 19 Oct 2012 12:05:49 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[kinect]]></category>
		<category><![CDATA[roomba]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robotsindc.com/?p=278</guid>

					<description><![CDATA[In the first installment of this tutorial we described how one can quickly control a roomba through any web-enabled device using open source robotics software. To recap, we connected a roomba to a laptop running: ROS, the open source Robot Operating &#8230; <a href="http://robotsindc.com/?p=278" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Continue reading <span>&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Open-source software is making it easier to reuse algorithms and allow engineers and researchers to focus on their problems of interest instead of reinventing the wheel for each project. Not an expert in path planning or don&#8217;t have the time (or patience) to implement SLAM? There&#8217;s a package for that. Manipulator control? Package for that too. Additionally, falling component prices and commercial-off-the-shelf (COTS) devices are making robotics hardware more available. This tutorial will teach you how to put together a simple remote teleoperation robot using these principles.<br />
<span id="more-4386"></span><br />
There are a <a href="http://en.wikipedia.org/wiki/Open-source_robotics" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">few frameworks</a> in the robotics domain, but the one that is reaching critical mass (in the robotics research community at least) is Willow Garage&#8217;s <a href="http://www.ros.org/wiki/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Robot Operating System,</a> or just ROS. Plenty of people have written about its features and if you&#8217;re interested Willow Garage has an excellent <a href="http://www.ros.org/wiki/ROS/Tutorials" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">set of tutorials</a>, so I won&#8217;t do that here. We are going to break the tutorial into two parts: first, we&#8217;ll get a robot moving using ROS through a webpage user interface; and second, we&#8217;ll build on that to add a Kinect and enable remote teleoperation. Here&#8217;s what you&#8217;ll need to get started:<br />
</p>
<ol>
<li> iRobot Roomba or Create</li>
<li>ROS Electric installed on Ubuntu Linux and configured according to the <a href="http://www.ros.org/wiki/ROS/Tutorials" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">tutorials</a></li>
<li>Some way of connecting the robot to your computer (<a href="http://www.sparkfun.com/products/10980" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">1</a>, <a href="http://store.irobot.com/product/index.jsp?productId=2818673" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">2</a>, or modify a USB-to-serial connector to interface with the mini-DIN port). For teleoperation, you can use the connected computer, another computer, smart phone, tablet, iPad, or anything with a browser supporting web sockets.</li>
</ol>
<p>Let&#8217;s get into the specifics. With ROS installed, you&#8217;ll need a few more packages that aren&#8217;t included in the base install. <a href="http://www.ros.org/wiki/rosbridge" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Rosbridge</a> is a solid middleware package that is going to enable communication with ROS through a webpage. It can do a lot more, but this satisfies our goal for now. Let&#8217;s install that (from Brown <a href="http://www.youtube.com/watch?v=kaiwwaqH9jA" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">screencast</a>):</p>
<pre>&gt; sudo apt-get install ros-electric-brown-remotelab</pre>
<p>You&#8217;ll also need a package to enable ROS to communicate with the robot. The package, at its most basic functionality, will listen for Twist messages (ROS-speak for motor drive commands), and convert it to the low-level serial commands for the roomba. (Though this tutorial focuses on roomba/create, you can use any robot with an existing ROS package, or write your own!) You have three options, based on your roomba model:<br />
</p>
<ol>
<li>iRobot Roomba 500 series or up (uses iRobot OI <a href="http://www.irobot.com/filelibrary/pdfs/hrd/create/create%20open%20interface_v2.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">spec</a> [pdf])</li>
<li>iRobot Roomba pre-500 series (uses iRobot SCI <a href="http://www.irobot.com/images/consumer/hacker/roomba_sci_spec_manual.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">spec</a> [pdf])</li>
<li>iRobot Create (uses iRobot OI spec)</li>
</ol>
<p></p>
<div>There are packages for all three of these. I happen to have a Roomba 400-series so I went ahead and modified the <a href="http://www.ros.org/wiki/roomba_500_series" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">roomba_500_series</a> package for SCI commands. This is perfect for older roombas you might have gathering dust or picked up for cheap on ebay. There&#8217;s also a <a href="http://bilibot-ros-pkg.googlecode.com/svn/trunk/bilibot/create_driver/src/create_driver.py" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">python implementation</a> floating around. Whichever you use, the other parts of the system won&#8217;t care because they&#8217;re publishing Twist messages and the robot will be subscribing to Twist messages. If you don&#8217;t have a folder for third-party ROS packages or didn&#8217;t follow the ROS tutorials, let&#8217;s create one in your home directory and download my <a href="https://github.com/dpiet/robotsindc-ros-pkg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">roomba_400_series package</a>:</div>
<pre>&gt; mkdir ros_workspace
&gt; cd ros_workspace
&gt; mkdir myStacks
&gt; cd myStacks
&gt; git clone https://github.com/dpiet/robotsindc-ros-pkg</pre>
<p>Be sure to rosmake. Check to make sure the directory (or parent directory) is included in the ROS package path:</p>
<pre>&gt; echo ROS_PACKAGE_PATH</pre>
<p>If it&#8217;s not, add it:</p>
<pre>&gt; export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/david/ros_workspace</pre>
<p>There&#8217;s one more piece we need in order to control the robot through a webpage: the webpage. Fortunately, there are plenty of rosbridge examples out there and a javascript novice like me was able to hack together a simple page with keyboard inputs and button inputs. Download the <a href="https://github.com/dpiet/robotsindc-ros-pkg/blob/master/teleop.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">page</a> (or you already have it if you cloned the git repo) to your web server directory (if you&#8217;re running one) or to you /home and you need only modify the IP address to point to the computer controlling the robot. And that&#8217;s it!<br />
<br />
Here&#8217;s the procedure for putting this altogether at execution:<br />
<br />
In a separate terminal for each line, run the following commands:</p>
<pre>&gt; roscore
&gt; rosrun roomba_400_series roomba400_light_node (assumes robot is attached to /dev/ttyUSB0)
&gt; rosrun rosbridge rosbridge.py
(Optional) if you don't have a webserver, cd to your /home directory with the teleop.html file and use the magic of python:
&gt; python -m SimpleHTTPServer</pre>
<p></p>
<ol>
<li>Grab your iPad (or other device), make sure it&#8217;s on the same wifi local network as the robot computer, and load up the page. If you&#8217;re running SimpleHTTPServer, type this in: http://[robot ip address here]:8000/teleop.html</li>
<li>If all goes according to plan you&#8217;ll get a rudimentary screen with buttons for directional control and a log showing connection status messages</li>
<li> <a href="http://youtu.be/eisPM2ReN00" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Happy roomba driving!</a></li>
</ol>
<div class=" "><iframe title="How to Control Roomba with your iPad" width="500" height="281" src="https://www.youtube-nocookie.com/embed/eisPM2ReN00?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>To recap, we connected a roomba to a laptop running: ROS, the open source <a href="http://www.ros.org/wiki/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Robot Operating System</a> from <a href="http://www.willowgarage.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Willow Garage</a>; <a href="http://rosbridge.org/doku.php" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Rosbridge</a>, a convenient middleware package from Brown University; and a web server (in this case Python’s SimpleHTTPServer). We were then able to load up a webpage with some javascript from a laptop, android smartphone, or iPad, with each able to drive the roomba with basic forward/reverse/left/right commands. Cool.<br />
<br />
By using ROS and a few open source packages, we were able to get going with a moving robot via teleoperation with a simple user interface relatively quickly, or at least much quicker than if we were to program everything from scratch. So the benefit has been the ability to stand up a teleoperation robot in short order through code reuse. A criticism is that we used a fairly heavy framework, with a lot of pieces working under the hood, which means a lot of upfront work to read system documentation/tutorials and review examples. But as I argued above, the upfront cost is worth it, because now the robot is based on software modules with a <a href="http://answers.ros.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">vibrant community</a> of contributors that facilitates code reuse without you having to reinvent the wheel or become a path-planning expert.<br />
<br />
To take advantage of the upfront work we put in to learning ROS, we can now easily extend the first part of the tutorial and add a video feed to our web interface so we can now teleoperate <em>remotely. </em>Here’s what we need to add:<br />
// </p>
<ul>
<li>The <a href="http://www.ros.org/wiki/mjpeg_server" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">mjpeg_server</a> ROS package (to install, download <a href="http://svn.code.sf.net/p/bosch-ros-pkg/code/trunk/stacks/mjpeg_server/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">the package</a> or svn checkout. cd into the directory and run “rosmake –rosdep-install”)</li>
<li>Microsoft Kinect <a href="http://www.ros.org/wiki/openni_kinect" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ROS package</a> using OpenNI drivers (to install, run “sudo apt-get install ros-electric-openni-kinect”)</li>
<li>A new <a href="https://github.com/dpiet/robotsindc-ros-pkg/blob/master/teleop_video.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">html file</a> with some additional javascript</li>
</ul>
<p></p>
<div>That’s it. The Kinect package takes care of interfacing the camera and IR streams, publishing the data to ROS topics. The mjpeg_server subscribes to that camera topic and sets up a streaming server that efficiently streams the video through HTTP. Rosbridge could be used to stream video directly by subscribing to the camera topic, but it won’t be as efficient.</div>
<p>
The following video demonstrates the first run after integrating all the components on the robot. Not too bad, but there’s definitely room for improvement. Next steps will be to add a roslaunch file to our repo to simplify startup, accelerometer controls for navigation, and further testing to identify sources of lag.<br />
</p>
<div class=" "><iframe title="Driving roomba through a web browser" width="500" height="281" src="https://www.youtube-nocookie.com/embed/cq5fegtH_tc?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>Here’s the procedure for getting the demo running. Be sure to change the robot’s IP address as appropriate. <em>Please note</em>: this demo is currently compatible with ROS Electric, not the latest version, Fuerte.<br />
<br />
In a separate terminal for each line, run the following commands:</p>
<pre>&gt; roscore
&gt; rosrun roomba_400_series roomba400_light_node (assumes robot is attached to /dev/ttyUSB0)
&gt; rosrun rosbridge rosbridge.py
&gt; rosrun mjpeg_server mjpeg_server _port:=9091
&gt; roslaunch openni_launch openni.launch
(Optional) if you don't have a webserver, cd to your /home directory with the teleop_video.html file and use the magic of python:
&gt; python -m SimpleHTTPServer</pre>
<p>Where can we go from here? We’ve essentially built a <a href="http://www.willowgarage.com/turtlebot" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Turtlebot</a>, replacing the iRobot Create with the roomba (though we’re obviously missing the convenient mounting hardware). So there are plenty of resources for integrating advanced behaviors like mapping, autonomous navigation, or even a manipulator arm. In particular, the <a href="http://www.pirobot.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pi Robot project</a> has done some interesting demonstrations with the Turtlebot platform.<br />
<br />
Have a roomba gathering dust and a Kinect sitting next to your Xbox? Then you have all the major components to build a moving robot.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Companies transitioning from industrial to service robots</title>
		<link>https://robohub.org/companies-transitioning-from-industrial-to-service-robots/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Thu, 07 Jun 2012 03:20:00 +0000</pubDate>
				<category><![CDATA[views]]></category>
		<category><![CDATA[Adept]]></category>
		<category><![CDATA[Heartland Robotics]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Yaskawa]]></category>
		<guid isPermaLink="false">http://robohub.org/?guid=d5df26c2c6ca603e55a673b9be6bef54</guid>

					<description><![CDATA[A version of this post originally appeared on Singularity Hub, June 6, 2012.By Frank Tobe, Editor and PublisherThe Robot ReportRobot manufacturers are beginning to shift theirattention from industrial to service robots.The robotics industry is on the c...]]></description>
										<content:encoded><![CDATA[<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: right;"></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">
<table class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="text-align: center;"><img decoding="async" src="http://2.bp.blogspot.com/-4HpbFq-8A_E/T9AqAKacy4I/AAAAAAAABH4/1cZuK8xaz-Y/s320/Transitioning-finger-pic.jpg" alt="" width="320" height="197" border="0" /></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;">Robot manufacturers are beginning to shift their<br />
attention from industrial to service robots.</span></td>
</tr>
</tbody>
</table>
<p>The robotics industry is on the cusp of a major transformation. Today’s factory robots are solitary precision instruments, mimicking the repertoire of capabilities of skilled craftsmen while repeating a handful of tasks thousands of times over. But future factory robots will likely have to be capable of thousands of tasks, performing each only several times, and they will work in collaboration with humans.<span id="more-1904"></span></p>
<p>Furthermore, interest in nonindustrial robots is emerging at an even quicker pace, and new and larger marketplaces are opening up as never before. But that means some pretty significant shifts in design from caged robots to adjacent workers, from stationary position to portable motion, from programming intensive to easily trainable, and from connected to autonomous robots. Even as they work to improve upon their current industrial offerings, robotics companies are closely watching demand for co-robots, which are the safe, flexible, vision-enabled and easily trainable robotic assistants that science fiction movies made culturally popular.</p>
<p>Thus the reinvention of robotics is fundamentally a transition from industrial robotics to service robotics, and one that is demanding flexibility and versatility beyond what is presently available.</p>
<div class="separator" style="clear: both; text-align: center;"><img decoding="async" src="http://3.bp.blogspot.com/-CCQ8sRnP_aM/T9AYAYF7FFI/AAAAAAAABHM/y7WTM8jhIMA/s1600/Article-Transitioning.jpg" alt="" border="0" /></div>
<p><strong><span style="font-family: Arial, Helvetica, sans-serif;">Facing the Major Technological Challenges:</span></strong></p>
<div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-color: initial; border-image: initial; border-style: initial; color: #4b4c4f; line-height: 20px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; border-width: 0px;"><span style="font-family: Times, 'Times New Roman', serif;">The big industrial robot manufacturers are reinventing themselves in an effort to accommodate these changing realities. Companies such as Yaskawa Electric (Motoman), KUKA, Adept Technologies, and Bosch are fighting against technological challenges and against the clock to be relevant players in the robotics industry 2.0. However, companies face three major technological challenges that are impeding this shift and will require significant breakthroughs to propel the industry forward into the era of service robotics:</span></div>
<ol style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-color: initial; border-image: initial; border-style: initial; color: #4b4c4f; line-height: 20px; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 15px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; border-width: 0px;">
<li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-color: initial; border-image: initial; border-style: initial; font-weight: bold; list-style-image: initial; list-style-position: inside; list-style-type: decimal; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: none; border-width: 0px; padding: 0px; margin: 0px;"><span style="font-family: Times, 'Times New Roman', serif;">Grasping and manipulation in human-centered and open-ended environments</span></li>
<li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-color: initial; border-image: initial; border-style: initial; font-weight: bold; list-style-image: initial; list-style-position: inside; list-style-type: decimal; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: none; border-width: 0px; padding: 0px; margin: 0px;"><span style="font-family: Times, 'Times New Roman', serif;">Learning through observation of human actions</span></li>
<li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-color: initial; border-image: initial; border-style: initial; font-weight: bold; list-style-image: initial; list-style-position: inside; list-style-type: decimal; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: none; border-width: 0px; padding: 0px; margin: 0px;"><span style="font-family: Times, 'Times New Roman', serif;">Interaction and natural communication, including gestures and sounds</span></li>
</ol>
<p>Examining the strategies and unique approaches of companies making this transition can lend insight into how manufacturers will overcome the technological challenges, position themselves among competitors, and bring new robots quickly to market.</p>
<p><strong><span style="font-family: Arial;">Four Strategies for Transitioning from Industrial to Service and Co-Robotics:</span></strong></p>
</div>
<div class="MsoNormal" style="margin-bottom: 0in; mso-outline-level: 1;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><strong><em><span style="font-family: Arial;"><a href="http://www.kukarobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">KUKA</a>:</span></em></strong></li>
</ul>
<div class="MsoNormal" style="margin-bottom: 0in; text-align: center;" align="center"></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">KUKA announced a transition roadmap last year predicated on their participation in the SME Robot Project. They plan to provide lightweight arms, add mobility, and improve their grippers, as well as moving into <a href="http://singularityhub.com/2011/08/04/robot-roommates-prove-to-be-a-dynamic-dining-duo-cooking-sausage-and-pancakes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">heretofore untapped industries</a>.</div>
<p><a style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" href="http://4.bp.blogspot.com/-TmsR5y96tvI/T9AZAzgfkqI/AAAAAAAABHU/xvOyiWypweA/s1600/kuka-lw-arm.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://4.bp.blogspot.com/-TmsR5y96tvI/T9AZAzgfkqI/AAAAAAAABHU/xvOyiWypweA/s200/kuka-lw-arm.jpg" alt="" width="200" height="188" border="0" /></a>They’ve released a new lightweight and sensitive arm that can be affixed to a tabletop or workbench that is sensitive enough to safely work alongside humans. They also have plans to take their manufacturing and automation experience and enter new marketplaces, particularly entertainment (they have a ride robot), assembly and co-robotics (delta-type robots and lightweight arms working alongside humans), and healthcare and medical (cleanroom robots, lab robots).</p>
<p>Kuka has also developed an entirely different type of robot: the youBot.  It&#8217;s organized for the education and research marketplace and includes a mobile and also fixed 2-fingered 5 DOF plug and play robot arm selling for $31,000 and $21,000 respectively. youBots run the open source robotic operating system ROS prevalent in most major robotic learning centers and could be Kuka&#8217;s inroad to the co-robotic market.</p>
<div class="MsoNormal" style="margin-bottom: 0in;">At present, however, their proprietary operating and control system for their whole industrial robot line of products, and their robot training and simulation capabilities, are far too complex, convoluted and restrictive for the SME market.</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><strong><em><span style="font-family: Arial;"><a href="http://www.motoman.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">YASKAWA ELECTRIC (MOTOMAN)</a>:</span></em></strong></li>
</ul>
<div class="MsoNormal" style="margin-bottom: 0in; text-align: center;" align="center"></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">
<div class="separator" style="clear: both; text-align: center;"></div>
<table class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="text-align: center;"><a style="margin-left: auto; margin-right: auto;" href="http://4.bp.blogspot.com/-vhLbBOoDp1E/T6qIzMt1LzI/AAAAAAAABEk/4yToTNytKEI/s1600/Yaskawa-transition-plan.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://4.bp.blogspot.com/-vhLbBOoDp1E/T6qIzMt1LzI/AAAAAAAABEk/4yToTNytKEI/s1600/Yaskawa-transition-plan.jpg" alt="" border="0" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">Graphic from Yaskawa.co.jp website.</span></td>
</tr>
</tbody>
</table>
<p>Yaskawa is developing <a href="http://singularityhub.com/2009/08/27/motoman-robot-does-it-all-in-videos/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">a line of robotic products</a> to fill the &#8220;Robotics Human Assist Business.&#8221; The SME marketplace is included in their plan as are new market areas where robotic devices augment and assist humans. Their plan covers workers, seniors, disabled people, and early adopters of other human-assist products.</p>
</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">
<table class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: right;" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="text-align: center;"><a style="margin-left: auto; margin-right: auto;" href="http://1.bp.blogspot.com/-ojHQffv3bc8/T6xo7-BvW4I/AAAAAAAABEw/Svt9xZCejzw/s1600/Yaskawa-and-me.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://1.bp.blogspot.com/-ojHQffv3bc8/T6xo7-BvW4I/AAAAAAAABEw/Svt9xZCejzw/s1600/Yaskawa-and-me.jpg" alt="" border="0" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">On a recent visit to Tokyo, I met with Dr. Koji Tomita, Manager, Smart Robotics Center,<br />
Kazuo Miyazawa, General Manager, Smart Robotics Center and Shingo Ando,<br />
Manager, RT Control Technology Team (from left to right) and they showed me SmartPal V,<br />
a prototype for their next generation human assist robot.</span></td>
</tr>
</tbody>
</table>
<p>Yaskawa is already marketing their two-armed Motoman multi-tasking robots and expects to begin introducing additional products and capabilities in 2015. They recently restructured their R&amp;D by creating a new Smart Robotics Center (SRC) with the mission of accelerating R&amp;D to enable human assist products and their 2015 target date.</p>
</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">Yaskawa has also embraced the use of the open source Robotic Operating System (ROS) to enable Yaskawa users &#8212; and others &#8212; to be able to better simulate and add new technologies and devices to existing robotic installations. Additionally they are strategically partnering with other companies that have specific expertise in 3D vision and adaptive grasping to augment in-house capabilities and meet the 2015 launch date.</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><strong><em><span style="font-family: Arial;"><a href="http://www.adept.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ADEPT</a>:</span></em></strong></li>
</ul>
<p><span style="font-family: Times, 'Times New Roman', serif;">Adept&#8217;s strategy is <a href="http://singularityhub.com/2011/03/16/robot-defeats-iphone-game-in-record-time-adept-quattro-showing-off-againvideo/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">meshing proven business processes with new tech</a> to form commercially ready solutions and involves (1) acquisitions to supplement and acquire capabilities it feels it needs for the future, and (2) aggressively marketing into new markets in food processing and materials handling.</span><br />
<span style="font-family: Times, 'Times New Roman', serif;"><br />
</span><br />
<span style="font-family: Times, 'Times New Roman', serif;">One acquisition enabled Adept to add mobility to its line of products; another supplemented Adept&#8217;s food processing technology arsenal and offered a European base as well. Through it&#8217;s 2010 acquisition of MobileRobots, Adept now provides a mobile platform for a variety of purposes. One purpose is as a </span><em style="font-family: Times, 'Times New Roman', serif;">gofor</em><span style="font-family: Times, 'Times New Roman', serif;"> in a hospital. They’ve teamed with </span><a style="font-family: Times, &#039;Times New Roman&#039;, serif;" href="http://singularityhub.com/2011/04/17/robots-take-over-hospital-pharmacy-as-human-pill-counting-talents-go-to-waste-video/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Swisslog</a><span style="font-family: Times, 'Times New Roman', serif;"> to ferry medicine from the dispensary to nurses stations and back again thereby enabling nurses to focus on patient care instead of getting things.</span></p>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in; text-align: center;" align="center"></div>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://3.bp.blogspot.com/-XrZXGp0llRE/T6gfcm4J3zI/AAAAAAAABCo/JhTmcJM8Q0w/s1600/Article-Adept.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://3.bp.blogspot.com/-XrZXGp0llRE/T6gfcm4J3zI/AAAAAAAABCo/JhTmcJM8Q0w/s1600/Article-Adept.jpg" alt="" border="0" /></a></div>
<div class="MsoNormal" style="margin-bottom: 0in; text-align: center;" align="center"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">Adept&#8217;s mobility goals include doing simple service tasks presently done by low-cost but hard-to-hire labor, e.g. restaurant staff, who could use mobile tables to follow, deliver and pickup.</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">Adept is also building their new mobile robots as modules and selling any or all of those modules. In Swisslog’s case, they are selling a mobile platform and navigation system but they are also selling the nav system and sensors separately to other clients.</div>
<p>By acquiring InMoTx, a Danish provider of food-processing technology in 2011, Adept was able to add a portfolio of flexible gripping IP (intellectual property) for inspecting, sorting, grading and hygienically packaging unwrapped food products. Hygienically gripping irregularly shaped food products has emerged as one of the biggest constraints in automating food packaging. This acquisition expands Adept&#8217;s capabilities and supplements <a href="http://singularityhub.com/2009/11/05/adept-quattro-becomes-worlds-fastest-robot-video/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">their goal of further capturing a share of the global food processing and handling market</a>.</p>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><strong><em><span style="font-family: Arial;"><a href="http://www.bosch.com/en/com/home/homepage.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">BOSCH</a>:</span></em></strong></li>
</ul>
<div class="MsoNormal" style="margin-bottom: 0in; text-align: center;" align="center"></div>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://4.bp.blogspot.com/-iwfnMPkt2xM/T6gfdA_KSfI/AAAAAAAABCw/1HHBHeb6BT8/s1600/Article-Bosch.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://4.bp.blogspot.com/-iwfnMPkt2xM/T6gfdA_KSfI/AAAAAAAABCw/1HHBHeb6BT8/s1600/Article-Bosch.jpg" alt="" border="0" /></a></div>
<div class="MsoNormal" style="margin-bottom: 0in; text-align: center;" align="center"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">Bosch makes consumer products, appliances and auto parts. They are also an integrator for factory packaging systems and build and provide packaging robots. Many of their auto and consumer products are turning into “smart” devices and will someday become robotic. Imagine how desirable it would be to purchase a Bosch washer and dryer that also had a robotic device to feed, transfer and fold, thereby providing hamper-to-hamper service.</div>
<p>Many of the parts involved in Bosch&#8217;s manufacturing process are too small for present-day factory robots. So they have a two-pronged approach: learn, buy and partner from everyone and, if necessary, build their own robots. Their new home-built APAS robot is already being field tested in their factories for intricate handling and assembly work.</p>
<div style="text-align: center;">*****</div>
<p>These four companies are each demonstrating the kinds of efforts required to make the transition successfully, but other companies are making moves that are noteworthy for this discussion:</p>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><strong><span style="font-family: Arial;"><em><a href="http://www.heartlandrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HEARTLAND ROBOTICS</a> AND OTHER START-UPS:</em></span></strong></li>
</ul>
<div class="MsoNormal" style="margin-bottom: 0in; text-align: center;" align="center"></div>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://2.bp.blogspot.com/-KEKPA6kc270/T6gffAIYCUI/AAAAAAAABDI/yfMPmU5FS3I/s1600/Article-Heartland.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://2.bp.blogspot.com/-KEKPA6kc270/T6gffAIYCUI/AAAAAAAABDI/yfMPmU5FS3I/s1600/Article-Heartland.jpg" alt="" border="0" /></a></div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">Up until late 2011 when Pres. Obama made manufacturing and robotics an issue, the US lacked public-private activity like the EU’s SME Robotics project. But there was independent venture-funded activity. Rodney Brooks, one of the founders of iRobot and a professor at MIT, started a company to develop a low-cost co-robot. Still in the development phase, but <a href="http://singularityhub.com/2010/12/03/heartland-raises-20-million-talks-big-about-robots/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">venture funded to the tune of $32 million</a>, Heartland Robotics has more than 60 people working full-time to produce a low-cost, flexible, easily trainable, lightweight robotic assistant (co-robot). One of the more interesting aspects of Heartland&#8217;s project is providing an Apple-like app store where users can share routines and functions.</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">Although the Boston Globe intimated that the Heartland robot would <a href="http://singularityhub.com/2010/12/17/heartland-robotics-to-make-a-5000-industrial-robot/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">sell for only $5,000</a>, be on a rolling base, be trainable without programming, and have sensors which enable it to work safely with humans, the currently rumored price for a Heartland single-armed co-robot is $15,000.Although Heartland hasn&#8217;t officially announced a launch date, they have reserved a large booth at next January&#8217;s Automate 2013 in Chicago. A media launch date will be earlier, but the Automate show will be a place for a lot of would-be-users and buyers to see the new bots in action.</p>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><strong><span style="font-family: Arial;"><em><a href="http://redwoodrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">REDWOOD ROBOTICS</a> AND OTHER START-UPS:</em></span></strong></li>
</ul>
<div class="MsoNormal" style="margin-bottom: 0in; text-align: center;" align="center"></div>
<p>Meka Robotics, Willow Garage, and SRI just announced a new startup competitor: <a href="http://redwoodrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redwood Robotics</a>. Their website says they will be offering a new generation of robot arms that are simple to program, inexpensive (&#8220;in the $10,000 range,&#8221; says CEO Aaron Edsinger), and safe to operate alongside people. These three partners bring a lot of robotic talent to the table and are a formidable competitor for Heartland.</p>
</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">The clock is ticking for this type of co-robot. The first one to market will benefit. Will it be Heartland, Redwood or somebody else?</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><strong><span style="font-family: Arial;"><em><a href="http://www.foxconn.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FOXCONN</a>:</em></span></strong></li>
</ul>
<table class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="text-align: center;"><a style="margin-left: auto; margin-right: auto;" href="http://4.bp.blogspot.com/-WQ6yM_1YXWU/T6gknFIrQSI/AAAAAAAABEE/BdE8TdiCcR8/s1600/red-foxconn_full_380.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://4.bp.blogspot.com/-WQ6yM_1YXWU/T6gknFIrQSI/AAAAAAAABEE/BdE8TdiCcR8/s1600/red-foxconn_full_380.jpg" alt="" border="0" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: small;">Foxconn assembly workers. Photo: Bobby Yip/Reuters/File</span></td>
</tr>
</tbody>
</table>
<div class="MsoNormal" style="margin-bottom: 0in;">Cynics thought Foxconn’s 2011 announcement that they intended to deploy <a href="http://singularityhub.com/2011/08/02/worlds-largest-electronics-manufacturer-foxconn-wants-1-million-more-robots-in-3-years-bye-bye-human-labor/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">1 million robots in their factories in China within 3 years</a> was a ploy, a trick, impossible, unreal. But in late 2011 they launched and built an R&amp;D facility and a factory in Taiwan to build their own robots. And they’ve begun to hire 2,000 engineers to man this project.</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">Nobody knows yet whether any other robot manufacturer will supply Foxconn. However, rumors say that ABB may be in negotiations to provide them with some of their <a href="http://singularityhub.com/2011/04/23/look-out-humans-this-frida-robot-from-abb-will-take-your-factory-job/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">headless two-armed FRIDA robots</a>.</div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">If Foxconn succeeds they will almost double the world’s industrial robot population, throw the &#8220;steady growth&#8221; industrial robot figures to the wind, and help themselves better manage the ever increasing popularity of their contract manufacturing and assembly services.<span style="font-family: Arial, Helvetica, sans-serif;"><strong>Bottom Line:</strong></span></p>
</div>
<div class="MsoNormal" style="margin-bottom: 0in; mso-outline-level: 1;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: 0in;">Global demand for robotic solutions is increasing, thus the world of robotics must change rapidly and cultivate scientific solutions to enhance the technologies to meet those needs. Those robotic companies &#8211; like the ones presented in this article &#8211; who will succeed in this new industry, are those that can best develop applications and robots that meet those changing needs.Robots like C3PO of <em>Star Wars</em> fame are getting closer every day!</p>
</div>
<div class="blogger-post-footer"><img decoding="async" src="https://blogger.googleusercontent.com/tracker/75361554721657432-6300261501895684743?l=www.everything-robotic.com" alt="" width="1" height="1" /><em>A version of this post originally appeared on <a href="http://singularityhub.com/2012/06/06/companies-making-the-necessary-transition-from-industrial-to-service-robots/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Singularity Hub, June 6, 2012</a>.</em></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Companies transitioning from industrial to service robots</title>
		<link>https://robohub.org/companies-transitioning-from-industrial-to-service-robots-2/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Thu, 07 Jun 2012 03:20:00 +0000</pubDate>
				<category><![CDATA[views]]></category>
		<category><![CDATA[Adept]]></category>
		<category><![CDATA[FOXCONN]]></category>
		<category><![CDATA[Heartland Robotics]]></category>
		<category><![CDATA[Kuka]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Yaskawa]]></category>
		<guid isPermaLink="false">https://robohub.org/?guid=d5df26c2c6ca603e55a673b9be6bef54</guid>

					<description><![CDATA[A version of this post originally appeared on Singularity Hub, June 6, 2012.By Frank Tobe, Editor and PublisherThe Robot ReportRobot manufacturers are beginning to shift theirattention from industrial to service robots.The robotics industry is on the c...]]></description>
										<content:encoded><![CDATA[<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: right;"></div>
<p></p>
<div class="separator" style="clear: both; text-align: center;"></div>
<p></p>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
<tbody>
<tr>
<td style="text-align: center;"><a href="http://singularityhub.com/2012/06/06/companies-making-the-necessary-transition-from-industrial-to-service-robots/" imageanchor="1" style="margin-left: auto; margin-right: auto;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://4.bp.blogspot.com/-zXtabYlfzgw/T9ADfSNuROI/AAAAAAAABGo/x2GejnfQPmM/s1600/Singularity-Logo.jpg" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">A version of this post originally appeared on <a href="http://singularityhub.com/2012/06/06/companies-making-the-necessary-transition-from-industrial-to-service-robots/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Singularity Hub, June 6, 2012</a>.</span></td>
</tr>
</tbody>
</table>
<p><i><span style="font-family: Arial;">By Frank Tobe, Editor and Publisher</span></i></div>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; mso-outline-level: 1; text-align: center;"><b><i><u><span style="color: blue; font-family: Arial;">The Robot Report</span></u></i></b></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></p>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
<tbody>
<tr>
<td style="text-align: center;"><img decoding="async" border="0" height="197" src="http://2.bp.blogspot.com/-4HpbFq-8A_E/T9AqAKacy4I/AAAAAAAABH4/1cZuK8xaz-Y/s320/Transitioning-finger-pic.jpg" width="320" /></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;">Robot manufacturers are beginning to shift their<br />attention from industrial to service robots.</span></td>
</tr>
</tbody>
</table>
<p>The robotics industry is on the cusp of a major transformation. Today’s factory robots are solitary precision instruments, mimicking the repertoire of capabilities of skilled craftsmen while repeating a handful of tasks thousands of times over. But future factory robots will likely have to be capable of thousands of tasks, performing each only several times, and they will work in collaboration with humans.</p>
<p>Furthermore, interest in nonindustrial robots is emerging at an even quicker pace, and new and larger marketplaces are opening up as never before. But that means some pretty significant shifts in design from caged robots to adjacent workers, from stationary position to portable motion, from programming intensive to easily trainable, and from connected to autonomous robots. Even as they work to improve upon their current industrial offerings, robotics companies are closely watching demand for co-robots, which are the safe, flexible, vision-enabled and easily trainable robotic assistants that science fiction movies made culturally popular.</p>
<p>Thus the reinvention of robotics is fundamentally a transition from industrial robotics to service robotics, and one that is demanding flexibility and versatility beyond what is presently available.</p>
<div class="separator" style="clear: both; text-align: center;"><img decoding="async" border="0" src="http://3.bp.blogspot.com/-CCQ8sRnP_aM/T9AYAYF7FFI/AAAAAAAABHM/y7WTM8jhIMA/s1600/Article-Transitioning.jpg" /></div>
<p><b><span style="font-family: Arial, Helvetica, sans-serif;">Facing the Major Technological Challenges:</span></b></p>
<div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #4b4c4f; line-height: 20px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="font-family: Times, 'Times New Roman', serif;">The big industrial robot manufacturers are reinventing themselves in an effort to accommodate these changing realities. Companies such as Yaskawa Electric (Motoman), KUKA, Adept Technologies, and Bosch are fighting against technological challenges and against the clock to be relevant players in the robotics industry 2.0. However, companies face three major technological challenges that are impeding this shift and will require significant breakthroughs to propel the industry forward into the era of service robotics:</span></div>
<ol style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #4b4c4f; line-height: 20px; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 15px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;">
<li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; list-style-image: initial; list-style-position: inside; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="font-family: Times, 'Times New Roman', serif;">Grasping and manipulation in human-centered and open-ended environments</span></li>
<li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; list-style-image: initial; list-style-position: inside; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="font-family: Times, 'Times New Roman', serif;">Learning through observation of human actions</span></li>
<li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; list-style-image: initial; list-style-position: inside; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="font-family: Times, 'Times New Roman', serif;">Interaction and natural communication, including gestures and sounds</span></li>
</ol>
<p>Examining the strategies and unique approaches of companies making this transition can lend insight into how manufacturers will overcome the technological challenges, position themselves among competitors, and bring new robots quickly to market.</p>
<p><b><span style="font-family: Arial;">Four Strategies for Transitioning from Industrial to Service and Co-Robotics:</span></b></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; mso-outline-level: 1;"><o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><b><i><span style="font-family: Arial;"><a href="http://www.kukarobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">KUKA</a>:</span></i></b><o:p></o:p></li>
</ul>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;"><span style="text-decoration: none;"></span><o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">KUKA announced a transition roadmap last year predicated on their participation in the SME Robot Project. They plan to provide lightweight arms, add mobility, and improve their grippers, as well as moving into <a href="http://singularityhub.com/2011/08/04/robot-roommates-prove-to-be-a-dynamic-dining-duo-cooking-sausage-and-pancakes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">heretofore untapped industries</a>.</p>
<p><a href="http://4.bp.blogspot.com/-TmsR5y96tvI/T9AZAzgfkqI/AAAAAAAABHU/xvOyiWypweA/s1600/kuka-lw-arm.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" height="188" src="http://4.bp.blogspot.com/-TmsR5y96tvI/T9AZAzgfkqI/AAAAAAAABHU/xvOyiWypweA/s200/kuka-lw-arm.jpg" width="200" /></a>They’ve released a new lightweight and sensitive arm that can be affixed to a tabletop or workbench that is sensitive enough to safely work alongside humans.&nbsp;They also have plans to take their manufacturing and automation experience and enter new marketplaces, particularly&nbsp;entertainment       (they have a ride robot),&nbsp;assembly       and co-robotics (delta-type robots and lightweight arms working alongside       humans), and&nbsp;healthcare       and medical (cleanroom robots, lab robots).</p>
<p>Kuka has also developed an entirely different type of robot: the youBot. &nbsp;It&#8217;s organized for the education and research marketplace and includes a mobile and also fixed 2-fingered 5 DOF plug and play robot arm selling for $31,000 and $21,000 respectively. youBots run the open source robotic operating system ROS prevalent in most major robotic learning centers and could be Kuka&#8217;s inroad to the co-robotic market.</p>
</div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">At present, however, their proprietary operating and control system for their whole industrial robot line of products, and their robot training and simulation capabilities, are far too complex, convoluted and restrictive for the SME market.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><b><i><span style="font-family: Arial;"><a href="http://www.motoman.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">YASKAWA ELECTRIC (MOTOMAN)</a>:</span></i></b><o:p></o:p></li>
</ul>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;"><span style="text-decoration: none;"></span><o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<div class="separator" style="clear: both; text-align: center;"></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
<tbody>
<tr>
<td style="text-align: center;"><a href="http://4.bp.blogspot.com/-vhLbBOoDp1E/T6qIzMt1LzI/AAAAAAAABEk/4yToTNytKEI/s1600/Yaskawa-transition-plan.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://4.bp.blogspot.com/-vhLbBOoDp1E/T6qIzMt1LzI/AAAAAAAABEk/4yToTNytKEI/s1600/Yaskawa-transition-plan.jpg" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">Graphic from Yaskawa.co.jp website.</span></td>
</tr>
</tbody>
</table>
<p>Yaskawa is developing <a href="http://singularityhub.com/2009/08/27/motoman-robot-does-it-all-in-videos/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">a line of robotic products</a> to fill the &#8220;Robotics Human Assist Business.&#8221; The SME marketplace is included in their plan as are new market areas where robotic devices augment and assist humans. Their plan covers workers, seniors, disabled people, and early adopters of other human-assist products.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: right;">
<tbody>
<tr>
<td style="text-align: center;"><a href="http://1.bp.blogspot.com/-ojHQffv3bc8/T6xo7-BvW4I/AAAAAAAABEw/Svt9xZCejzw/s1600/Yaskawa-and-me.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://1.bp.blogspot.com/-ojHQffv3bc8/T6xo7-BvW4I/AAAAAAAABEw/Svt9xZCejzw/s1600/Yaskawa-and-me.jpg" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">On a recent visit to Tokyo, I met with Dr. Koji Tomita, Manager, Smart Robotics Center, <br />Kazuo Miyazawa, General Manager, Smart Robotics Center and Shingo Ando, <br />Manager, RT Control Technology Team (from left to right) and they showed me SmartPal V, <br />a prototype for their next generation human assist robot.</span></td>
</tr>
</tbody>
</table>
<p>Yaskawa is already marketing their two-armed Motoman multi-tasking robots and expects to begin introducing additional products and capabilities in 2015. They recently restructured their R&amp;D by creating a new Smart Robotics Center (SRC) with the mission of accelerating R&amp;D to enable human assist products and their 2015 target date.</p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Yaskawa has also embraced the use of the open source Robotic Operating System (ROS) to enable Yaskawa users &#8212; and others &#8212; to be able to better simulate and add new technologies and devices to existing robotic installations. Additionally they are strategically partnering with other companies that have specific expertise in 3D vision and adaptive grasping to augment in-house capabilities and meet the 2015 launch date.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><b><i><span style="font-family: Arial;"><a href="http://www.adept.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ADEPT</a>:</span></i></b></li>
</ul>
<p><span style="font-family: Times, 'Times New Roman', serif;">Adept&#8217;s strategy is <a href="http://singularityhub.com/2011/03/16/robot-defeats-iphone-game-in-record-time-adept-quattro-showing-off-againvideo/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">meshing proven business processes with new tech</a> to form commercially ready solutions and involves (1) acquisitions to supplement and acquire capabilities it feels it needs for the future, and (2) aggressively marketing into new markets in food processing and materials handling.</span><br /><span style="font-family: Times, 'Times New Roman', serif;"><br /></span><br /><span style="font-family: Times, 'Times New Roman', serif;">One acquisition enabled Adept to add mobility to its line of products; another supplemented Adept&#8217;s food processing technology arsenal and offered a European base as well.&nbsp;Through it&#8217;s 2010 acquisition of MobileRobots, Adept now provides a mobile platform for a variety of purposes.&nbsp;One purpose is as a&nbsp;</span><i style="font-family: Times, 'Times New Roman', serif;">gofor</i><span style="font-family: Times, 'Times New Roman', serif;">&nbsp;in a hospital. They’ve teamed with </span><a href="http://singularityhub.com/2011/04/17/robots-take-over-hospital-pharmacy-as-human-pill-counting-talents-go-to-waste-video/" style="font-family: Times, &#039;Times New Roman&#039;, serif;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Swisslog</a><span style="font-family: Times, 'Times New Roman', serif;"> to ferry medicine from the dispensary to nurses stations and back again thereby enabling nurses to focus on patient care instead of getting things.</span></p>
<div class="MsoNormal" style="margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc"></ul>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;"><span style="font-family: Times, 'Times New Roman', serif;"><span style="text-decoration: none;"></span><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-XrZXGp0llRE/T6gfcm4J3zI/AAAAAAAABCo/JhTmcJM8Q0w/s1600/Article-Adept.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://3.bp.blogspot.com/-XrZXGp0llRE/T6gfcm4J3zI/AAAAAAAABCo/JhTmcJM8Q0w/s1600/Article-Adept.jpg" /></a></div>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Adept&#8217;s mobility goals include doing simple service tasks presently done by low-cost but hard-to-hire labor, e.g. restaurant staff, who could use mobile tables to follow, deliver and pickup.</div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"><o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Adept is also building their new mobile robots as modules and selling any or all of those modules.&nbsp;In Swisslog’s case, they are selling a mobile platform and navigation system but they are also selling the nav system and sensors separately to other clients.<o:p></o:p></p>
<p>By acquiring InMoTx, a Danish provider of food-processing technology in 2011, Adept was able to add a portfolio of flexible gripping IP (intellectual property) for inspecting, sorting, grading and hygienically packaging unwrapped food products. Hygienically gripping irregularly shaped food products has emerged as one of the biggest constraints in automating food packaging. This acquisition expands Adept&#8217;s capabilities and supplements <a href="http://singularityhub.com/2009/11/05/adept-quattro-becomes-worlds-fastest-robot-video/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">their goal of further capturing a share of the global food processing and handling market</a>.</p>
</div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><b><i><span style="font-family: Arial;"><a href="http://www.bosch.com/en/com/home/homepage.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">BOSCH</a>:</span></i></b><o:p></o:p></li>
</ul>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;"><span style="text-decoration: none;"></span><o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-iwfnMPkt2xM/T6gfdA_KSfI/AAAAAAAABCw/1HHBHeb6BT8/s1600/Article-Bosch.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://4.bp.blogspot.com/-iwfnMPkt2xM/T6gfdA_KSfI/AAAAAAAABCw/1HHBHeb6BT8/s1600/Article-Bosch.jpg" /></a></div>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Bosch makes consumer products, appliances and auto parts. They are also an integrator for factory packaging systems and build and provide packaging robots. Many of their auto and consumer products are turning into “smart” devices and will someday become robotic. Imagine how desirable it would be to purchase a Bosch washer and dryer that also had a robotic device to feed, transfer and fold, thereby providing hamper-to-hamper service.</p>
<p>Many of the parts involved in Bosch&#8217;s manufacturing process are too small for present-day factory robots.&nbsp;So they have a two-pronged approach: learn, buy and partner from everyone and, if necessary, build their own robots. Their new home-built APAS robot is already being field tested in their factories for intricate handling and assembly work.</p>
<div style="text-align: center;">*****</p>
</div>
<p>These four companies are each demonstrating the kinds of efforts required to make the transition successfully, but other companies are making moves that are noteworthy for this discussion:</p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><b><span style="font-family: Arial;"><i><a href="http://www.heartlandrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HEARTLAND ROBOTICS</a> AND OTHER START-UPS:</i></span></b><o:p></o:p></li>
</ul>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;"><span style="text-decoration: none;"></span><o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-KEKPA6kc270/T6gffAIYCUI/AAAAAAAABDI/yfMPmU5FS3I/s1600/Article-Heartland.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://2.bp.blogspot.com/-KEKPA6kc270/T6gffAIYCUI/AAAAAAAABDI/yfMPmU5FS3I/s1600/Article-Heartland.jpg" /></a></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Up until late 2011 when Pres. Obama made manufacturing and robotics an issue, the US lacked public-private activity like the EU’s SME Robotics project.&nbsp;But there was independent venture-funded activity.&nbsp;Rodney Brooks, one of the founders of iRobot and a professor at MIT, started a company to develop a low-cost co-robot.&nbsp;Still in the development phase, but <a href="http://singularityhub.com/2010/12/03/heartland-raises-20-million-talks-big-about-robots/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">venture funded to the tune of $32 million</a>, Heartland Robotics has more than 60 people working full-time to produce a low-cost, flexible, easily trainable, lightweight robotic assistant (co-robot). One of the more interesting aspects of Heartland&#8217;s project is providing an Apple-like app store where users can share routines and functions.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Although the Boston Globe intimated that the Heartland robot would <a href="http://singularityhub.com/2010/12/17/heartland-robotics-to-make-a-5000-industrial-robot/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">sell for only $5,000</a>, be on a rolling base, be trainable without programming, and have sensors which enable it to work safely with humans, the currently rumored price for a Heartland single-armed co-robot is $15,000.<o:p></o:p></p>
<p>Although Heartland hasn&#8217;t officially announced a launch date, they have reserved a large booth at next January&#8217;s Automate 2013 in Chicago. A media launch date will be earlier, but the Automate show will be a place for a lot of would-be-users and buyers to see the new bots in action.</p>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><b><span style="font-family: Arial;"><i><a href="http://redwoodrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">REDWOOD ROBOTICS</a> AND OTHER START-UPS:</i></span></b><o:p></o:p></li>
</ul>
<div align="center" class="MsoNormal" style="margin-bottom: 0in; text-align: center;"><span style="text-decoration: none;"></span><o:p></o:p></div>
<p>Meka Robotics, Willow Garage, and SRI just announced a new startup competitor: <a href="http://redwoodrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redwood Robotics</a>. Their website says they will be offering a new generation of robot arms that are simple to program, inexpensive (&#8220;in the $10,000 range,&#8221; says CEO Aaron Edsinger), and safe to operate alongside people.&nbsp;These three partners bring a lot of robotic talent to the table and are a formidable competitor for Heartland.</div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">The clock is ticking for this type of co-robot. The first one to market will benefit. Will it be Heartland, Redwood or somebody else?<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal" style="margin-bottom: 0.1pt; margin-top: 0.1pt;"><b><span style="font-family: Arial;"><i><a href="http://www.foxconn.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FOXCONN</a>:</i></span></b></li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
<tbody>
<tr>
<td style="text-align: center;"><a href="http://4.bp.blogspot.com/-WQ6yM_1YXWU/T6gknFIrQSI/AAAAAAAABEE/BdE8TdiCcR8/s1600/red-foxconn_full_380.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://4.bp.blogspot.com/-WQ6yM_1YXWU/T6gknFIrQSI/AAAAAAAABEE/BdE8TdiCcR8/s1600/red-foxconn_full_380.jpg" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: small;">Foxconn assembly workers. Photo: Bobby Yip/Reuters/File</span></td>
</tr>
</tbody>
</table>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Cynics thought Foxconn’s 2011 announcement that they intended to deploy <a href="http://singularityhub.com/2011/08/02/worlds-largest-electronics-manufacturer-foxconn-wants-1-million-more-robots-in-3-years-bye-bye-human-labor/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">1 million robots in their factories in China within 3 years</a> was a ploy, a trick, impossible, unreal. But in late 2011 they launched and built an R&amp;D facility and a factory in Taiwan to build their own robots. And they’ve begun to hire 2,000 engineers to man this project.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Nobody knows yet whether any other robot manufacturer will supply Foxconn. However, rumors say that ABB may be in negotiations to provide them with some of their&nbsp;<a href="http://singularityhub.com/2011/04/23/look-out-humans-this-frida-robot-from-abb-will-take-your-factory-job/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">headless two-armed FRIDA robots</a>.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">If Foxconn succeeds they will almost double the world’s industrial robot population, throw the &#8220;steady growth&#8221; industrial robot figures to the wind, and help themselves better manage the ever increasing popularity of their contract manufacturing and assembly services.</p>
<p><span style="font-family: Arial, Helvetica, sans-serif;"><b>Bottom Line:</b></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; mso-outline-level: 1;"><o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;"></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">Global demand for robotic solutions is increasing, thus the world of robotics must change rapidly and cultivate scientific solutions to enhance the technologies&nbsp;to meet those needs. Those robotic companies &#8211; like the ones presented in this article &#8211; who will succeed in this new industry, are those that can best develop applications and robots that meet those changing needs.</p>
<p>Robots like C3PO of <i>Star Wars</i> fame are getting closer every day!</div>
<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/75361554721657432-6300261501895684743?l=www.everything-robotic.com' alt='' /></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ROSCon 2012: Keynote cont. (part 2 of 2)</title>
		<link>https://robohub.org/roscon-2012-keynote-cont-part-2-of-2/</link>
					<comments>https://robohub.org/roscon-2012-keynote-cont-part-2-of-2/#respond</comments>
		
		<dc:creator><![CDATA[John Payne]]></dc:creator>
		<pubDate>Thu, 24 May 2012 17:27:44 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROSCon]]></category>
		<guid isPermaLink="false">http://alpha.robohub.org/?p=412</guid>

					<description><![CDATA[This is the continuation/conclusion of Morgan Quigley&#8217;s keynote address at ROSCon 2012. Part 2 of 2. (Duration 42:05)]]></description>
										<content:encoded><![CDATA[<div class=" "><iframe title="ROSCon 2012 - ROS: Past, Present, and Future (2of2)" width="500" height="281" src="https://www.youtube-nocookie.com/embed/3wnab6AjAwc?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>
This is the continuation/conclusion of Morgan Quigley&#8217;s keynote address at ROSCon 2012. Part 2 of 2.<br />
(Duration 42:05)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robohub.org/roscon-2012-keynote-cont-part-2-of-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ROSCon 2012: Keynote (part 1 of 2)</title>
		<link>https://robohub.org/roscon-2012-keynote-part-1-of-2/</link>
					<comments>https://robohub.org/roscon-2012-keynote-part-1-of-2/#respond</comments>
		
		<dc:creator><![CDATA[John Payne]]></dc:creator>
		<pubDate>Thu, 24 May 2012 01:38:24 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[Brian Gerkey]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROSCon]]></category>
		<guid isPermaLink="false">http://alpha.robohub.org/?p=422</guid>

					<description><![CDATA[ROSCon 2012 Keynote, by Morgan Quigley, with introduction by Brian Gerkey, Part 1 of 2. (Duration 23:46) Post revised 08Aug2012.]]></description>
										<content:encoded><![CDATA[<div class=" "><iframe title="ROSCon 2012 - Keynote: ROS: Past, Present, and Future (1of2)" width="500" height="281" src="https://www.youtube-nocookie.com/embed/-E1O98qrfBY?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>
ROSCon 2012 Keynote, by Morgan Quigley, with introduction by Brian Gerkey, Part 1 of 2.<br />
(Duration 23:46) Post revised 08Aug2012.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robohub.org/roscon-2012-keynote-part-1-of-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TurtleBot 2 at ROSCon</title>
		<link>https://robohub.org/turtlebot-2-at-roscon/</link>
					<comments>https://robohub.org/turtlebot-2-at-roscon/#respond</comments>
		
		<dc:creator><![CDATA[John Payne]]></dc:creator>
		<pubDate>Mon, 21 May 2012 15:38:00 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[OSRF]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[ROSCon]]></category>
		<category><![CDATA[Willow Garage]]></category>
		<guid isPermaLink="false">http://alpha.robohub.org/?p=434</guid>

					<description><![CDATA[This video introduces TurtleBot 2, which was shown this past weekend at ROSCon 2012. TurtleBot 2, built around an iClebo Kobuki from Korean firm Yujin Robot, improves upon the original from Willow Garage. (Note that Sam Park, Executive Vice President of Yujin Robot, recently joined Brian Gerkey, Director of Open Source Development at Willow Garage, [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class=" "><iframe title="TurtleBot 2 Prototype at ROSCon" width="500" height="281" src="https://www.youtube-nocookie.com/embed/P27Vj7E2FoU?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>
This video introduces TurtleBot 2, which was shown this past weekend at <a target="_blank" href="http://roscon.ros.org/" title="ROSCon website" data-wpel-link="external" rel="follow external noopener noreferrer">ROSCon 2012</a>. TurtleBot 2, built around an <a target="_blank" href="http://iclebo.com/english/" title="iClebo website" data-wpel-link="external" rel="follow external noopener noreferrer">iClebo</a> <a target="_blank" href="http://kobuki.yujinrobot.com/" title="Kobuki&#039;s nest (product page)" data-wpel-link="external" rel="follow external noopener noreferrer">Kobuki</a> from Korean firm <a target="_blank" href="http://yujinrobot.com/english/index.php" title="Yujin Robot website" data-wpel-link="external" rel="follow external noopener noreferrer">Yujin Robot</a>, improves upon <a target="_blank" href="http://www.willowgarage.com/turtlebot" title="TurtleBot page on Willow Garage website" data-wpel-link="external" rel="follow external noopener noreferrer">the original from Willow Garage</a>. (Note that Sam Park, Executive Vice President of Yujin Robot, recently joined Brian Gerkey, Director of Open Source Development at Willow Garage, on the board of directors for the <a target="_blank" href="http://www.osrfoundation.org/" title="Open Source Robotics Foundation" data-wpel-link="external" rel="follow external noopener noreferrer">Open Source Robotics Foundation</a>.)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robohub.org/turtlebot-2-at-roscon/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Open source robotics foundation announced</title>
		<link>https://robohub.org/open-source-robotics-foundation-announced/</link>
					<comments>https://robohub.org/open-source-robotics-foundation-announced/#respond</comments>
		
		<dc:creator><![CDATA[John Payne]]></dc:creator>
		<pubDate>Thu, 17 May 2012 18:18:27 +0000</pubDate>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[Brian Gerkey]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[DARPA]]></category>
		<category><![CDATA[Gazebo]]></category>
		<category><![CDATA[Helen Greiner]]></category>
		<category><![CDATA[Open Source Robotics Foundation]]></category>
		<category><![CDATA[OSRF]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Willow Garage]]></category>
		<guid isPermaLink="false">http://alpha.robohub.org/?p=447</guid>

					<description><![CDATA[Announced via the Willow Garage website, the Open Source Robotics Foundation, Inc. (OSRF) is an independent non-profit organization founded by members of the global robotics community. Its mission is to support the development, distribution, and adoption of open source software for use in robotics research, education, and product development. OSRF&#8217;s board of directors includes Professor [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a target="_blank" href="http://www.willowgarage.com/blog/2012/04/16/open-source-robotics-foundation" data-wpel-link="external" rel="follow external noopener noreferrer"><img decoding="async" src="http://www.willowgarage.com/sites/default/files/blog/201204/OSR-Logo-Proto4-Vert.png" alt="OSRF logo" /></a><br />
Announced via the Willow Garage website, the <q>Open Source Robotics Foundation, Inc. (OSRF) is an independent non-profit organization founded by members of the global robotics community.</q> Its mission is <q>to support the development, distribution, and adoption of open source software for use in robotics research, education, and product development.</q> OSRF&#8217;s board of directors includes <a target="_blank" href="http://www.informatik.uni-freiburg.de/~burgard/" data-wpel-link="external" rel="follow external noopener noreferrer">Professor Wolfram Burgard</a> of the University of Freiburg, Ryan Gariepy, CTO of <a target="_blank" href="http://www.clearpathrobotics.com/" data-wpel-link="external" rel="follow external noopener noreferrer">Clearpath Robotics</a>, Brian Gerkey, Director of Open Source Development at <a target="_blank" href="http://www.willowgarage.com/" data-wpel-link="external" rel="follow external noopener noreferrer">Willow Garage</a>, <a target="_blank" href="http://en.wikipedia.org/wiki/Helen_Greiner" data-wpel-link="external" rel="follow external noopener noreferrer">Helen Greiner</a>, a co-founder of iRobot and currently CEO of CyPhyWorks, and Sam Park, Executive Vice President of <a target="_blank" href="http://www.yujinrobot.com/english/index.php" data-wpel-link="external" rel="follow external noopener noreferrer">Yujin Robot</a>. Initially sponsored projects include <a target="_blank" href="http://www.ros.org/wiki/" data-wpel-link="external" rel="follow external noopener noreferrer">the Robot Operating System (ROS)</a>, and <a target="_blank" href="http://gazebosim.org/" data-wpel-link="external" rel="follow external noopener noreferrer">Gazebo, a 3D multi-robot simulator</a> with dynamics. <a target="_blank" href="http://spectrum.ieee.org/automaton/robotics/robotics-software/darpa-robotics-challenge-simulation-software-open-source-robotics-foundation" data-wpel-link="external" rel="follow external noopener noreferrer">Gazebo has been chosen by DARPA</a> as the simulation platform for its recently announced robotics challenge for (humanoid) disaster robots.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robohub.org/open-source-robotics-foundation-announced/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>iRobot and Willow Garage debate closed vs. open source robotics at cocktail party</title>
		<link>https://robohub.org/irobot-and-willow-garage-debate-closed-vs-open-source-robotics-at-cocktail-party/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Thu, 22 Mar 2012 23:49:00 +0000</pubDate>
				<category><![CDATA[views]]></category>
		<category><![CDATA[iRobot]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Willow Garage]]></category>
		<guid isPermaLink="false">http://robohub.org/?guid=e21e3a804fbfb04ffe32e42a76977f40</guid>

					<description><![CDATA[A version of this post originally appeared on Automaton, IEEE Spectrum's robotics blog.By Frank Tobe, editor/publisher, The Robot ReportWhat's the best approach to building commercially successful robotics companies?&#160;Here are two arguments from tw...]]></description>
										<content:encoded><![CDATA[<p>What&#8217;s the best approach to building commercially successful robotics companies? Here are two arguments from two prominent people in the robotics industry:</p>
<ol>
<li>Identify a need that can be filled with a robotic solution in a large marketplace and build a practical and specialized robotic product to satisfy that need.</li>
<li>Make it free and easy to design, program, simulate and test robotic applications and share your progress, problems and results with others all over the world using a common platform and the applications will come.</li>
</ol>
<p>These two points of view were presented in a spirited cocktail party debate the other evening in Lyon, France at InnoRobo 2012, an innovation forum and trade show for service robotics. Here&#8217;s how it happened, who they were, and what they said.<span id="more-1905"></span></p>
<table class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="text-align: center;"><img decoding="async" src="http://3.bp.blogspot.com/--0vMTof1IP0/T2UL7P6UFbI/AAAAAAAAA8w/4hHnX1xnQl4/s1600/debaters.jpg" alt="" border="0" /></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">Left: Robert Bauer, Executive Director, Commercialization, <a href="http://www.willowgarage.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Willow Garage</a>, a privately held corporation.<br />
Right: Colin Angle, Chairman of the Board, co-founder and CEO, <a href="http://www.irobot.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iRobot</a> (NASDAQ:IRBT).</span></td>
</tr>
</tbody>
</table>
<p>I interviewed Colin Angle shortly after he gave a presentation about the need for robotic solutions in health care and asked him, amongst other questions, what he thought about Willow Garage&#8217;s ROS open source software concept. He said he thought it was dangerous to the industry and was fearful that it was also detrimental to the monetizing of the service robotics sector in particular.</p>
<p>Later I was meeting with Tim Field from Willow Garage when Robert Bauer joined the conversation. Bauer was a substitute Willow Garage speaker because Steve Cousins had to alter his travel plans. In his presentation, Bauer made the point that hardware was farther along than AI software and that AI, 3D and application software were where the robotics industry needed help.</p>
<p>Out of fun I told Bauer what Angle said and he became feisty and said he&#8217;d love to debate Angle as to which method contributed more to product development and commercialization.</p>
<p>Coincidentally, at a cocktail party for speakers, exhibitors and hosts that same evening, I was casually talking with Bauer when Angle came by to say hello to me and I introduced him to Bauer &#8212; and the fun began.</p>
<p>Angle suggested that freely providing such a key and critical component as the robotic operating and simulation system &#8211; and the extensive libraries that go with ROS &#8211; as Willow Garage does with their open source and unprotected robotic operating system (ROS) &#8211; was tantamount to letting the biggest consumer giant(s) gobble up any mass market applications and re-market them globally at low cost because they already have (or could easily reverse-engineer) the hardware, could produce it cheaply, the operating system was free courtesy of ROS, and the only real cost was the acquisition of the application(s).</p>
<table class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center;"><a style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;" href="http://www.businessweek.com/articles/2012-03-14/inside-the-chinese-boom-in-corporate-espionage" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://4.bp.blogspot.com/-J_b05uQio-M/T2bJBEmmo5I/AAAAAAAAA9I/76f21ylHSHE/s200/BW-Cover.jpg" alt="" width="155" height="200" border="0" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">Cover of 3/19/2012 issue of<br />
<a href="http://www.businessweek.com/articles/2012-03-14/inside-the-chinese-boom-in-corporate-espionage" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Bloomberg Businessweek</a> magazine</span></td>
</tr>
</tbody>
</table>
<p>Angle thought that it was dangerous and led to losing a potentially American/European market to offshore commodity conglomerates and said:</p>
<blockquote class="tr_bq"><p>Robotics innovation represents a tremendous opportunity for economic growth akin to automobiles, aerospace and information technology. If we are to freely share our &#8216;intellectual capital&#8217; on the open market we risk losing the economic engine that will advance our economies and send growth and jobs overseas.</p></blockquote>
<p>The issue of losing trade secrets to foreign conglomerates was the subject of this week&#8217;s <a href="http://www.businessweek.com/articles/2012-03-14/inside-the-chinese-boom-in-corporate-espionage" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Bloomberg Businessweek</a> magazine. Here&#8217;s a particularly relevant quote from the cover story &#8211; and keep in mind that the operating system mentioned was protected but hacked; nevertheless the story is relevant to this discussion:</p>
<blockquote><p>In November, 14 U.S. intelligence agencies issued a report describing a far-reaching industrial espionage campaign by Chinese spy agencies. This campaign has been in the works for years and targets a swath of industries: biotechnology, telecommunications, and nanotechnology, as well as clean energy.</p></blockquote>
<p>As the toll adds up, political leaders and intelligence officials in the U.S. and Europe are coming to a disturbing conclusion. “<em>It’s the greatest transfer of wealth in history</em>,” General Keith Alexander, director of the National Security Agency, said at a security conference at New York’s Fordham University in January.</p>
<div style="text-align: center;"></div>
<p><em>[The article went on to describe the plight of AMSC, an American wind turbine developer, as they discovered that not only had their software been stolen, but Chinese companies had duplicated most of their component parts as well.]</em></p>
<blockquote><p>AMSC technicians tapped into the turbine’s computer to get to the bottom of the glitch. The problem wasn’t immediately clear, so the technicians made a copy of the control system’s software and sent it to the company’s research center which produced some startling findings. The Sinovel turbine appeared to be running a stolen version of AMSC’s software. Worse, the software revealed that Sinovel had complete access to AMSC’s proprietary source code. In short, Sinovel didn’t really need AMSC anymore.</p>
<p>&#8230; On April 5, AMSC had no choice but to announce that Sinovel—its biggest customer, accounting for more than two-thirds of the company’s $315 million in revenue in 2010—had stopped making purchases. Investors fled, erasing 40 percent of AMSC’s value in a single day and 84 percent of it by September. The company’s stock chart looks like the EKG of a person rushing toward white light.</p></blockquote>
<p>Colin Angle has consistently held that we are going about developing the robotics industry wrong: “The idea that a humanoid robot with arms would push a vacuum cleaner is an image that has set many expectations and, in some ways, has set back the industry,” when, by just rethinking what needs to be done, we can build a product that satisfies a specific need (vacuuming), as iRobot did with their Roomba line of robotic vacuums. &#8220;I used to think that I was a self-respecting high-tech entrepreneur, but it took me becoming a vacuum cleaner salesman to actually have some success for my company, my investors and myself.&#8221;</p>
<div class="separator" style="clear: both; text-align: center;"><a style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" href="http://3.bp.blogspot.com/-t3FbFRwn-Qo/T2bHhiDmTMI/AAAAAAAAA9A/lszWkzenua0/s1600/ROS+logo.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" src="http://3.bp.blogspot.com/-t3FbFRwn-Qo/T2bHhiDmTMI/AAAAAAAAA9A/lszWkzenua0/s1600/ROS+logo.jpg" alt="" border="0" /></a></div>
<p>Bauer said that Willow Garage&#8217;s objectives were to stimulate the industry by enabling participants to not have to reinvent the many cross-science elements of robotics ventures; to reuse software under the premise that by so doing it saves developer time and allows researchers to focus on research. By giving them free access to the tools, libraries and simulation capabilities of ROS, its many libraries, and access to the PR2s that are available for testing and experimentation, Willow Garage hopes to advance the state-of-the-art in autonomous robotics technologies. Says Steve Cousins, CEO, &#8220;We want everyone to work together. We&#8217;re happy having a smaller piece of the pie, but having the pie be much bigger.&#8221;</p>
<p>Bauer also said that, once a successful app was developed, then the new endeavor would likely lock down the operating system and application software in order to protect their invention.</p>
<div class="blogger-post-footer"><em><br />
<img decoding="async" src="https://blogger.googleusercontent.com/tracker/75361554721657432-3504964928653643695?l=www.everything-robotic.com" alt="" width="1" height="1" />A version of this post originally appeared on Automaton, <a href="http://spectrum.ieee.org/automaton/robotics/robotics-software/irobot-willow-garage-debate" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">IEEE Spectrum&#8217;s robotics blog</a>.</em></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>iRobot and Willow Garage debate closed vs. open source robotics at cocktail party</title>
		<link>https://robohub.org/irobot-and-willow-garage-debate-closed-vs-open-source-robotics-at-cocktail-party-2/</link>
		
		<dc:creator><![CDATA[Frank Tobe]]></dc:creator>
		<pubDate>Thu, 22 Mar 2012 23:49:00 +0000</pubDate>
				<category><![CDATA[views]]></category>
		<category><![CDATA[iRobot]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Willow Garage]]></category>
		<guid isPermaLink="false">https://robohub.org/?guid=e21e3a804fbfb04ffe32e42a76977f40</guid>

					<description><![CDATA[A version of this post originally appeared on Automaton, IEEE Spectrum's robotics blog.By Frank Tobe, editor/publisher, The Robot ReportWhat's the best approach to building commercially successful robotics companies?&#160;Here are two arguments from tw...]]></description>
										<content:encoded><![CDATA[<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
<tbody>
<tr>
<td style="text-align: center;"><a href="http://spectrum.ieee.org/automaton/robotics/robotics-software/irobot-willow-garage-debate" imageanchor="1" style="margin-left: auto; margin-right: auto;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://4.bp.blogspot.com/-qxGyVdDH-xA/T2uyGMXYA-I/AAAAAAAAA94/tBr4okwQ10g/s1600/ieeeSpectrum.jpg" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">A version of this post originally appeared on Automaton, <a href="http://spectrum.ieee.org/automaton/robotics/robotics-software/irobot-willow-garage-debate" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">IEEE Spectrum&#8217;s robotics blog</a>.</span></td>
</tr>
</tbody>
</table>
<div class="separator" style="clear: both; text-align: center;"></div>
<div style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;">By Frank Tobe, editor/publisher, <a href="http://www.therobotreport.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The Robot Report</a></span></div>
<div style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<p>What&#8217;s the best approach to building commercially successful robotics companies?&nbsp;Here are two arguments from two prominent people in the robotics industry:</p>
<ol>
<li>Identify a need that can be filled with a robotic solution in a large marketplace and build a practical and specialized robotic product to satisfy that need.</li>
<li>Make it free and easy to design, program, simulate and test robotic applications and share your progress, problems and results with others all over the world using a common platform and the applications will come.</li>
</ol>
<p>These two points of view were presented in a spirited cocktail party debate the other evening in Lyon, France at InnoRobo 2012, an innovation forum and trade show for service robotics. Here&#8217;s how it happened, who they were, and what they said.</p>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
<tbody>
<tr>
<td style="text-align: center;"><img decoding="async" border="0" src="http://3.bp.blogspot.com/--0vMTof1IP0/T2UL7P6UFbI/AAAAAAAAA8w/4hHnX1xnQl4/s1600/debaters.jpg" /></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">Left: Robert Bauer, Executive Director, Commercialization, <a href="http://www.willowgarage.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Willow Garage</a>, a privately held corporation.<br />Right: Colin Angle, Chairman of the Board, co-founder and CEO, <a href="http://www.irobot.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iRobot</a> (NASDAQ:IRBT).</span></td>
</tr>
</tbody>
</table>
<p>I interviewed Colin Angle shortly after he gave a presentation about the need for robotic solutions in health care and asked him, amongst other questions, what he thought about Willow Garage&#8217;s ROS open source software concept. He said he thought it was dangerous to the industry and was fearful that it was also detrimental to the monetizing of the service robotics sector in particular.</p>
<p>Later I was meeting with Tim Field from Willow Garage when Robert Bauer joined the conversation. Bauer was a substitute Willow Garage speaker because Steve Cousins had to alter his travel plans. In his presentation, Bauer made the point that hardware was farther along than AI software and that AI, 3D and application software were where the robotics industry needed help.</p>
<p>Out of fun I told Bauer what Angle said and he became feisty and said he&#8217;d love to debate Angle as to which method contributed more to product development and commercialization.</p>
<p>Coincidentally, at a cocktail party for speakers, exhibitors and hosts that same evening, I was casually talking with Bauer when Angle came by to say hello to me and I introduced him to Bauer &#8212; and the fun began.</p>
<p>Angle suggested that freely providing such a key and critical component as the robotic operating and simulation system &#8211; and the extensive libraries that go with ROS &#8211; as Willow Garage does with their open source and unprotected robotic operating system (ROS) &#8211; was tantamount to letting the biggest consumer giant(s) gobble up any mass market applications and re-market them globally at low cost because they already have (or could easily reverse-engineer) the hardware, could produce it cheaply, the operating system was free courtesy of ROS, and the only real cost was the acquisition of the application(s).</p>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;">
<tbody>
<tr>
<td style="text-align: center;"><a href="http://www.businessweek.com/articles/2012-03-14/inside-the-chinese-boom-in-corporate-espionage" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" height="200" src="http://4.bp.blogspot.com/-J_b05uQio-M/T2bJBEmmo5I/AAAAAAAAA9I/76f21ylHSHE/s200/BW-Cover.jpg" width="155" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">Cover of 3/19/2012 issue of<br /><a href="http://www.businessweek.com/articles/2012-03-14/inside-the-chinese-boom-in-corporate-espionage" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Bloomberg Businessweek</a> magazine</span></td>
</tr>
</tbody>
</table>
<p>Angle thought that it was dangerous and led to losing a potentially American/European market to offshore commodity conglomerates and said:</p>
<blockquote class="tr_bq"><p>Robotics innovation represents a tremendous opportunity for economic growth akin to automobiles, aerospace and information technology. If we are to freely share our &#8216;intellectual capital&#8217; on the open market we risk losing the economic engine that will advance our economies and send growth and jobs overseas.</p></blockquote>
<p>The issue of losing trade secrets to foreign conglomerates was the subject of this week&#8217;s <a href="http://www.businessweek.com/articles/2012-03-14/inside-the-chinese-boom-in-corporate-espionage" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Bloomberg Businessweek</a> magazine. Here&#8217;s a particularly relevant quote from the cover story &#8211; and keep in mind that the operating system mentioned was protected but hacked; nevertheless the story is relevant to this discussion:</p>
<blockquote><p>In November, 14 U.S. intelligence agencies issued a report describing a far-reaching industrial espionage campaign by Chinese spy agencies. This campaign has been in the works for years and targets a swath of industries: biotechnology, telecommunications, and nanotechnology, as well as clean energy. </p>
<p>As the toll adds up, political leaders and intelligence officials in the U.S. and Europe are coming to a disturbing conclusion. “<i>It’s the greatest transfer of wealth in history</i>,” General Keith Alexander, director of the National Security Agency, said at a security conference at New York’s Fordham University in January.</p>
<div style="text-align: center;">
<div style="text-align: -webkit-auto;"></div>
</div>
<p><i>[The article went on to describe the plight of AMSC, an American wind turbine developer, as they discovered that not only had their software been stolen, but Chinese companies had duplicated most of their component parts as well.]</i>&nbsp;</p></blockquote>
<blockquote><p>AMSC technicians tapped into the turbine’s computer to get to the bottom of the glitch. The problem wasn’t immediately clear, so the technicians made a copy of the control system’s software and sent it to the company’s research center which produced some startling findings. The Sinovel turbine appeared to be running a stolen version of AMSC’s software. Worse, the software revealed that Sinovel had complete access to AMSC’s proprietary source code. In short, Sinovel didn’t really need AMSC anymore.</p>
<p>&#8230; On April 5, AMSC had no choice but to announce that Sinovel—its biggest customer, accounting for more than two-thirds of the company’s $315 million in revenue in 2010—had stopped making purchases. Investors fled, erasing 40 percent of AMSC’s value in a single day and 84 percent of it by September. The company’s stock chart looks like the EKG of a person rushing toward white light.</p></blockquote>
<p>Colin Angle has consistently held that we are going about developing the robotics industry wrong: “The idea that a humanoid robot with arms would push a vacuum cleaner is an image that has set many expectations and, in some ways, has set back the industry,” when, by just rethinking what needs to be done, we can build a product that satisfies a specific need (vacuuming), as iRobot did with their Roomba line of robotic vacuums. &#8220;I used to think that I was a self-respecting high-tech entrepreneur, but it took me becoming a vacuum cleaner salesman to actually have some success for my company, my investors and myself.&#8221;</p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-t3FbFRwn-Qo/T2bHhiDmTMI/AAAAAAAAA9A/lszWkzenua0/s1600/ROS+logo.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" src="http://3.bp.blogspot.com/-t3FbFRwn-Qo/T2bHhiDmTMI/AAAAAAAAA9A/lszWkzenua0/s1600/ROS+logo.jpg" /></a></div>
<p>Bauer said that Willow Garage&#8217;s objectives were to stimulate the industry by enabling participants to not have to reinvent the many cross-science elements of robotics ventures; to reuse software under the premise that by so doing it saves developer time and allows researchers to focus on research. By giving them free access to the tools, libraries and simulation capabilities of ROS, its many libraries, and access to the PR2s that are available for testing and experimentation, Willow Garage hopes to advance the state-of-the-art in autonomous robotics technologies. Says Steve Cousins, CEO, &#8220;We want everyone to work together. We&#8217;re happy having a smaller piece of the pie, but having the pie be much bigger.&#8221;</p>
<p>Bauer also said that, once a successful app was developed, then the new endeavor would likely lock down the operating system and application software in order to protect their invention.</p>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
<tbody>
<tr>
<td style="text-align: center;"><a href="http://2.bp.blogspot.com/-6aiHiMRnDIk/T2evc3ZBh4I/AAAAAAAAA9Q/4joOdOq-d_c/s1600/Army+of+Kivas.png" imageanchor="1" style="margin-left: auto; margin-right: auto;" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img decoding="async" border="0" height="239" src="http://2.bp.blogspot.com/-6aiHiMRnDIk/T2evc3ZBh4I/AAAAAAAAA9Q/4joOdOq-d_c/s320/Army+of+Kivas.png" width="320" /></a></td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;">Kiva Systems shelf-moving robots.<br />They slip under the shelves, screw themselves tight, and then bring the shelves to the picker/packers.</span></td>
</tr>
</tbody>
</table>
<p>Supporting Angle&#8217;s position to find a problem and develop a unique robotic solution is today&#8217;s news that Amazon has acquired Kiva Systems (for $775 million!). Kiva Systems is the company that turned warehousing upside down by using robots to bring shelves to the pickers and packers instead of vice versa.</p>
<p>To Bauer, Angle suggested that ROS itself could be locked down, protected, and commercialized now &#8211; and that it should be done right away &#8211; and that what the robotic industry needs for inspiration is winning robotics companies &#8211; profitable companies with millionaire employees selling in-demand products, as would happen if ROS privatized; not more notches on the oversized belts of big offshore conglomerates. But he also said that unless ROS is protected and made stable and secure, it could never be used for sensitive (defense, space, security) solutions, and until it became rugged, secure and stable, it could never be used in factories that cannot afford down time from their robots or software.</p>
<p>He said it would make him happy if all the people that displayed their robots at Innorobo were successful and wealthy, but that the opposite was more likely because the right big-market robotic applications hadn&#8217;t happened just yet.</p>
<p>The discussion went on and ended with Bauer inviting Angle to continue the discussion onsite at Willow Garage and Angle agreeing to do it.</p>
<p>I hope I have presented the two positions fairly because I think that both sides have merit. Using the analogy that developing apps for smartphones and tablets is similar to developing applications for service robots in the open source community of shared libraries, imagine how much talent is being squandered in the whimsy of making a fun app? Do we have to sift through the chaos and diversity of thousands of apps to find the few &#8211; if any &#8211; that are suitable for real business tasks? Or would we be better served to rethink how we satisfy real needs by building specific products to satisfy those needs?</p>
<p>What do you think?</p>
<div></div>
<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/75361554721657432-3504964928653643695?l=www.everything-robotic.com' alt='' /></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The pursuit of collaboration</title>
		<link>https://robohub.org/the-pursuit-of-collaboration/</link>
					<comments>https://robohub.org/the-pursuit-of-collaboration/#respond</comments>
		
		<dc:creator><![CDATA[John Payne]]></dc:creator>
		<pubDate>Wed, 05 May 2010 16:43:00 +0000</pubDate>
				<category><![CDATA[views]]></category>
		<category><![CDATA[cultibotics]]></category>
		<category><![CDATA[PR2]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[Willow Garage]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=4246</guid>

					<description><![CDATA[Two heads are generally better than one, and while that truism doesn&#8217;t necessarily scale very well, it can and often does in the open source software movement. &#160; Willow Garage is out to make it happen in robotics. &#160; They not only have developed a robot, the PR2, with sufficient dexterity to fold towels, and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Two heads are generally better than one, and while that truism doesn&#8217;t necessarily scale very well, it can and often does in the open source software movement.</p>
<p>&nbsp;</p>
<p><a href="http://www.willowgarage.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Willow Garage</a> is out to make it happen in robotics.</p>
<p>&nbsp;</p>
<p>They not only have developed a robot, the PR2, with sufficient dexterity to fold towels, and given eleven of these to research institutions around the world, but they&#8217;ve also released “<a href="http://www.ros.org/wiki/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">an open-source, meta-operating system</a>” for robots, called ROS, which you can download and use for free.</p>
<p>&nbsp;</p>
<p>This is a great beginning, and could prove to be the seed of what develops into a standard platform.</p>
<p>&nbsp;</p>
<p>Reposted from <a href="http://cultibotics.blogspot.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Cultibotics</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robohub.org/the-pursuit-of-collaboration/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</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-10 22:42:18 by W3 Total Cache
-->