<?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>Clearpath Robotics &#8211; Robohub</title>
	<atom:link href="https://robohub.org/author/clearpath-robotics/feed/" rel="self" type="application/rss+xml" />
	<link>https://robohub.org</link>
	<description>Connecting the robotics community to the world</description>
	<lastBuildDate>Sun, 04 Oct 2026 22:53:08 +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>Rapid outdoor/indoor 3D mapping with a Husky UGV</title>
		<link>https://robohub.org/rapid-outdoorindoor-3d-mapping-with-a-husky-ugv/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Sun, 09 Jul 2017 21:16:21 +0000</pubDate>
				<category><![CDATA[tutorials]]></category>
		<category><![CDATA[exploration & mining]]></category>
		<category><![CDATA[mapping & surveillance]]></category>
		<category><![CDATA[SLAM]]></category>
		<guid isPermaLink="false">http://robohub.org/rapid-outdoorindoor-3d-mapping-with-a-husky-ugv/</guid>

					<description><![CDATA[<p>The need for fast, accurate 3D mapping solutions has quickly become a reality for many industries wanting to adopt new technologies in AI and automation. New applications requiring these 3D mapping platforms include surveillance, mining, automated measurement &#38; inspection, construction management &#38; decommissioning, and photo-realistic rendering. Here at Clearpath Robotics, we decided to team up [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="https://www.clearpathrobotics.com/2017/07/rapid-outdoorindoor-3d-mapping-husky-ugv/" data-wpel-link="external" target="_blank">Rapid Outdoor/Indoor 3D Mapping with a Husky UGV</a> appeared first on <a rel="nofollow external noopener noreferrer" href="https://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="http://robohub.org/wp-content/uploads/2017/07/ClearpathSLAM.jpg" alt="" width="1080" height="675" class="alignnone size-full wp-image-81386" srcset="https://robohub.org/wp-content/uploads/2017/07/ClearpathSLAM.jpg 1080w, https://robohub.org/wp-content/uploads/2017/07/ClearpathSLAM-425x266.jpg 425w, https://robohub.org/wp-content/uploads/2017/07/ClearpathSLAM-768x480.jpg 768w, https://robohub.org/wp-content/uploads/2017/07/ClearpathSLAM-1024x640.jpg 1024w" sizes="(max-width: 1080px) 100vw, 1080px" /><strong>by Nicholas Charron</strong></p>
<p>The need for fast, accurate 3D mapping solutions has quickly become a reality for many industries wanting to adopt new technologies in AI and automation. New applications requiring these 3D mapping platforms include surveillance, mining, automated measurement &amp; inspection, construction management &amp; decommissioning, and photo-realistic rendering. Here at Clearpath Robotics, we decided to team up with <a href="http://mandalarobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Mandala Robotics</a> to show how easily you can implement 3D mapping on a Clearpath robot.</p>
<p><span id="more-81346"></span></p>
<h2>3D Mapping Overview</h2>
<p>3D mapping on a mobile robot requires Simultaneous Localization and Mapping (SLAM), for which there are many different solutions available. Localization can be achieved by fusing many different types of pose estimates. Pose estimation can be done using combinations of GPS measurements, wheel encoders, inertial measurement units, 2D or 3D scan registration, optical flow, visual feature tracking and others techniques. Mapping can be done simultaneously using the lidars and cameras that are used for scan registration and for visual position tracking, respectively. This allows a mobile robot to track its position while creating a map of the environment. Choosing which SLAM solution to use is highly dependent on the application and the environment to be mapped. Although many 3D SLAM software packages exist and cannot all be discussed here, there are few 3D mapping hardware platforms that offer full end-to-end 3D reconstruction on a mobile platform.</p>
<h2>Existing 3D Mapping Platforms</h2>
<p>We will briefly highlight some more popular alternatives of commercialized 3D mapping platforms that have one or many lidars, and in some cases optical cameras, for point cloud data collection. It is important to note that there are two ways to collect a 3D point cloud using lidars:</p>
<p>1. Use a 3D lidar which consists of one device with multiple stacked horizontally laser beams<br />
2. Tilt or rotate a 2D lidar to get 3D coverage</p>
<p>Tilting of a 2D lidar typically refers to back-and-forth rotating of the lidar about its horizontal plane, while rotating usually refers to continuous 360 degree rotation of a vertically or horizontally mounted lidar.</p>
<table>
<tbody>
<tr>
<td width="33%"><img decoding="async" src="https://s3.amazonaws.com/assets.clearpathrobotics.com/wp-content/uploads/2017/07/07131148/MultiSense_SL.jpg" /></td>
<td width="33%"><img decoding="async" src="https://s3.amazonaws.com/assets.clearpathrobotics.com/wp-content/uploads/2017/07/07131138/3DLS-K2-L.jpg" /></td>
<td width="33%"><img decoding="async" src="https://s3.amazonaws.com/assets.clearpathrobotics.com/wp-content/uploads/2017/07/07131244/Cartographerbackpack.jpg" /></td>
</tr>
</tbody>
</table>
<p>Example 3D Mapping Platforms: 1. MultiSense SL (Left) by Carnegie Robotics, 2. 3DLS-K (Middle) by Fraunhofer IAIS Institute, 3. Cartographer Backpack (Right) by Google.</p>
<p><strong>1. MultiSense SL</strong></p>
<p>The <a href="http://files.carnegierobotics.com/products/MultiSense_SL/MultiSense_SL_brochure.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MultiSense SL</a> was developed by Carnegie Robotics and provides a compact and lightweight 3D data collection unit for researchers. The unit has a tilting Hokuyo 2D lidar, a stereo camera, LED lights, and is pre-calibrated for the user. This allows for the generation of coloured point clouds. This platform comes with a full software development kit (SDK), open source ROS software, and is the sensor of choice for the DARPA Robotics Challenge for humanoid robots.</p>
<p><strong>2. 3DLS-K</strong></p>
<p>The <a href="http://www.3d-scanner.net/datasheet/3DLS_Flyer_kont_eng.pdf" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">3DLS-K</a> is a dual-tilting unit made by Fraunhofer IAIS Institute with the option of using SICK LMS-200 or LMS-291 lidars. Fraunhofer IAIS also offers <a href="http://www.3d-scanner.net/index.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">other configurations</a> with continuously rotating 2D SICK or Hokuyo lidars. These systems allow for the collection of non-coloured point clouds. With the purchase of these units, a full application program interface (API) is available for configuring the system and collecting data.</p>
<p><strong>3. Cartographer Backpack</strong></p>
<p>The <a href="https://opensource.googleblog.com/2016/10/introducing-cartographer.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Cartographer Backpack</a> is a mapping unit with two static Hokuyo lidars (one horizontal and one vertical) and an on-board computer. Google released <a href="https://github.com/googlecartographer" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">cartographer software</a> as an open source library for performing 3D mapping with multiple possible sensor configurations. The Cartographer Backpack is an example of a possible configuration to map with this software. Cartographer allows for integration of multiple 2D lidars, 3D lidars, IMU and cameras, and is also fully supported in ROS. <a href="https://google-cartographer-ros.readthedocs.io/en/latest/data.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Datasets</a> are also publicly available for those who want to see mapping results in ROS.</p>
<h2>Mandala Mapping – System Overview</h2>
<img decoding="async" src="https://s3.amazonaws.com/assets.clearpathrobotics.com/wp-content/uploads/2017/07/07130441/nicks_robot_close_web.png" />
<p>Thanks to the team at Mandala Robotics, we got our hands on one of their 3D mapping units to try some mapping on our own. This unit consists of a mount for a rotating vertical lidar, a fixed horizontal lidar, as well as an onboard computer with an Nvidia GeForce GTX 1050 Ti GPU. The horizontal lidar allows for the implementation of 2D scan registration as well as 2D mapping and obstacle avoidance. The vertical rotating lidar is used for acquiring the 3D point cloud data. In our implementation, real-time SLAM was performed solely using 3D scan registration (more on this later) specifically programmed for full utilization of the onboard GPU. The software used to implement this mapping can be found on the <a href="https://github.com/mandalarobotics/mandala-mapping" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">mandala-mapping github repository</a>.</p>
<p>Scan registration is the process of combining (or stitching) together two subsequent point clouds (either in 2D or 3D) to estimate the change in pose between the scans. This results in motion estimates to be used in SLAM and also allows a new point cloud to be added to an existing in order to build a map. This process is achieved by running iterative closest point (ICP) between the two subsequent scans. ICP performs a closest neighbour search to match all points from the reference scan to a point on the new scan. Subsequently, optimization is performed to find rotation and translation matrices that minimise the distance between the closest neighbours. By iterating this process, the result converges to the true rotation and translation that the robot underwent between the two scans. This is the process that was used for 3D mapping in the following demo.</p>
<p>Mandala Robotics has also released additional examples of GPU computing tasks useful for robotics and SLAM. These examples can be found <a href="https://github.com/JanuszBedkowski/gpu_computing_in_robotics" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">here</a>.</p>
<h2>Mandala Mapping Results</h2>
<p>The following video shows some of our results from mapping areas within the Clearpath office, lab and parking lot. The datasets collected for this video can be downloaded <a href="https://s3.amazonaws.com/CPR_PUBLIC/datasets.tar.gz" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">here</a>.</p>
<p><iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/gpJlrqSyIJo" frameborder="0" allowfullscreen></iframe></p>
<p>The Mandala Mapping software was very easy to get up and running for someone with basic knowledge in ROS. There is one launch file which runs the Husky base software as well as the 3D mapping. Initiating each scan can be done by sending a simple scan request message to the mapping node, or by pressing one button on the joystick used to drive the Husky. Furthermore, with a little more ROS knowledge, it is easy to incorporate autonomy into the 3D mapping. <a href="https://github.com/nickcharron/mandala-mapping" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Our forked repository</a> shows how a short C++ script can be written to enable constant scan intervals while navigating in a straight line. Alternatively, one could easily incorporate 2D SLAM such as <a href="http://wiki.ros.org/gmapping" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">gmapping</a> together with the <a href="http://wiki.ros.org/move_base" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">move_base package</a> in order to give specific scanning goals within a map.</p>
<h2>Why use Mandala Mapping on your robot?</h2>
<p>If you are looking for a quick and easy way to collect 3D point clouds, with the versatility to use multiple lidar types, then this system is a great choice. The hardware work involved with setting up the unit is minimal and well documented, and it is preconfigured to work with your Clearpath Husky. Therefore, you can be up and running with ROS in a few days! The mapping is done in real time, with only a little lag time as your point cloud size grows, and it allows you to visualize your map as you drive.</p>
<p>The downside to this system, compared to the MultiSense SL for example, is that you cannot yet get a coloured point cloud since no cameras have been integrated into this system. However, Mandala Robotics is currently in the beta testing stage for a similar system with an additional 360 degree camera. This system uses the <a href="https://www.ptgrey.com/ladybug5-360-degree-usb3-spherical-camera-systems" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Ladybug5</a> and will allow RGB colour to be mapped to each of the point cloud elements. Keep an eye out for a future Clearpath blogs in case we get our hands on one of these systems! All things considered, the Mandala Mapping kit offers a great alternative to the other units aforementioned and fills many of the gaps in functionality of these systems.</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="https://www.clearpathrobotics.com/2017/07/rapid-outdoorindoor-3d-mapping-husky-ugv/" data-wpel-link="external" target="_blank">Rapid Outdoor/Indoor 3D Mapping with a Husky UGV</a> appeared first on <a rel="nofollow external noopener noreferrer" href="https://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Customer story: Deployable, autonomous vibration control of bridges using Husky UGV</title>
		<link>https://robohub.org/customer-story-deployable-autonomous-vibration-control-of-bridges-using-husky-ugv/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Thu, 05 Jan 2017 19:35:11 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<category><![CDATA[Husky]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[UGV]]></category>
		<guid isPermaLink="false">http://robohub.org/customer-story-deployable-autonomous-vibration-control-of-bridges-using-husky-ugv/</guid>

					<description><![CDATA[<p>Sriram Narasimhan&#8217;s research team are shaking things up in the Civil Engineering Structures Lab at the University of Waterloo. The research, which is led by Ph.D Candidate Kevin Goorts, is developing a new mobile damping system for suppressing unwanted vibrations in lightweight, flexible bridges. Whereas damping systems are often permanent fixtures built into the bridge, [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="https://www.clearpathrobotics.com/2017/01/customer-story-deployable-autonomous-vibration-control-bridges-using-husky-ugv/" data-wpel-link="external" target="_blank">Customer Story:  Deployable, Autonomous Vibration Control of Bridges Using Husky UGV</a> appeared first on <a rel="nofollow external noopener noreferrer" href="https://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="attachment_69394" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/01/Husky1-clearpath.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-69394" class="size-full wp-image-69394" src="http://robohub.org/wp-content/uploads/2017/01/Husky1-clearpath.jpg" alt="Image: Clearpath" width="900" height="601" srcset="https://robohub.org/wp-content/uploads/2017/01/Husky1-clearpath.jpg 900w, https://robohub.org/wp-content/uploads/2017/01/Husky1-clearpath-425x284.jpg 425w, https://robohub.org/wp-content/uploads/2017/01/Husky1-clearpath-449x300.jpg 449w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-69394" class="wp-caption-text">Image: Clearpath</p></div>
<p>Sriram Narasimhan’s research team are shaking things up in the Civil Engineering Structures Lab at the University of Waterloo. The research, which is led by Ph.D Candidate Kevin Goorts, is developing a new mobile damping system for suppressing unwanted vibrations in lightweight, flexible bridges. Whereas damping systems are often permanent fixtures built into the bridge, their system is designed to be adaptable, autonomous, and better suited for rapid, temporary deployment.</p>
<p><span id="more-69367"></span></p>
<h4><hr class="xh2  "></h4>
<h4><strong>A SHIFT TOWARDS FLEXIBLE, LIGHT-WEIGHT STRUCTURES</strong></h4>
<p>Their work follows a recent industry shift towards using lightweight materials in the construction of civil engineering structures. Driven primarily by cost savings, as well as both the ease and speed of deployment, these lightweight structures could be a pedestrian bridge or a temporary bridge used in disaster relief scenarios, and are often more sensitive to external forces due to the reduced self-weight, and therefore require auxiliary damping devices.</p>
<div id="attachment_69395" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/01/Husky3-clearpath.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-69395" class="size-full wp-image-69395" src="http://robohub.org/wp-content/uploads/2017/01/Husky3-clearpath.jpg" alt="Husky-based mobile bridge damping system on a full-scale aluminum pedestrian bridge. Image: Clearpath" width="900" height="601" srcset="https://robohub.org/wp-content/uploads/2017/01/Husky3-clearpath.jpg 900w, https://robohub.org/wp-content/uploads/2017/01/Husky3-clearpath-425x284.jpg 425w, https://robohub.org/wp-content/uploads/2017/01/Husky3-clearpath-449x300.jpg 449w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-69395" class="wp-caption-text">Husky-based mobile bridge damping system on a full-scale aluminum pedestrian bridge. Image: Clearpath</p></div>
<h4><hr class="xh2  "></h4>
<h4><strong>HUSKY UGV: THE IDEAL MOBILE ROBOTIC PLATFORM</strong></h4>
<p>At the center of the team’s mobile control system is a Husky unmanned ground vehicle (UGV). An electromechanical mass damper mounted on top of the Husky is used to generate inertial control forces which are magnified by the body dynamics of the Husky. When situated on a bridge, the system is able to respond to changes in the structural response by autonomously positioning itself at the appropriate location and applying the desired control force.</p>
<p>For Goorts’ research, Husky UGV was the ideal mobile base upon which to develop their system. “The Husky is a rugged vehicle suitable for outdoor applications with sufficient payload capacity for both the damper and associated computational equipment.” said Goorts. “The low-profile and large lug thread tires are well suited for providing the necessary static friction to prevent sliding and transfer control forces. Moreover, Husky’s readily available ROS (Robot Operating System) integration allowed us to use several sensor types and position control algorithms.”</p>
<div id="attachment_69393" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/01/Husky2-clearpath.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-69393" class="size-full wp-image-69393" src="http://robohub.org/wp-content/uploads/2017/01/Husky2-clearpath.jpg" alt="Linear motor and front-facing Kinect vision sensor mounted on Husky UGV mobile base. Image: Clearpath" width="900" height="601" srcset="https://robohub.org/wp-content/uploads/2017/01/Husky2-clearpath.jpg 900w, https://robohub.org/wp-content/uploads/2017/01/Husky2-clearpath-425x284.jpg 425w, https://robohub.org/wp-content/uploads/2017/01/Husky2-clearpath-449x300.jpg 449w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-69393" class="wp-caption-text">Linear motor and front-facing Kinect vision sensor mounted on Husky UGV mobile base. Image: Clearpath</p></div>
<p>The Husky is also equipped with a laptop running ROS and Kinect vision sensors on the front and back of the vehicle. Using wheel encoder data and measurements from the Kinect sensors, the system is able to perform SLAM (Simultaneous Localization and Mapping) and autonomously navigate back and forth along the span of the bridge. One of the immediate challenges the team faced was getting the robot to accurately localize on a bridge with a repetitive structural design – everything looked the same to the robot from different positions. To overcome this, they placed unique AR (augmented reality) tags along the bridge between which the robot could navigate.</p>
<div id="attachment_69396" style="width: 910px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/01/Husky4-clearpath.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-69396" class="size-full wp-image-69396" src="http://robohub.org/wp-content/uploads/2017/01/Husky4-clearpath.jpg" alt="A National Instruments (NI) cRIO is being used for all data processing tasks and execution of the structural control loops, and a TCP data link communicates between the ROS laptop and cRIO. Image: Clearpath." width="900" height="601" srcset="https://robohub.org/wp-content/uploads/2017/01/Husky4-clearpath.jpg 900w, https://robohub.org/wp-content/uploads/2017/01/Husky4-clearpath-425x284.jpg 425w, https://robohub.org/wp-content/uploads/2017/01/Husky4-clearpath-449x300.jpg 449w" sizes="(max-width: 900px) 100vw, 900px" /></a><p id="caption-attachment-69396" class="wp-caption-text">A National Instruments (NI) cRIO is being used for all data processing tasks and execution of the structural control loops, and a TCP data link communicates between the ROS laptop and cRIO. Image: Clearpath.</p></div>
<h4><hr class="xh2  "></h4>
<h4><strong>BRIDGE VIBRATIONS REDUCED BY 70%</strong></h4>
<p>The effectiveness of the control system is tested using real-time hybrid simulation (RTHS), a dynamic testing method that couples the physical control system with a numerical model of the structure. These tests were carried out on a full-scale aluminum pedestrian bridge with re-designed panels to measure the forces being applied by the system. Results from the simulations show the system can provide up to a 70% reduction in the lateral displacement of the bridge.</p>
<p>The current prototype is suitable for bridges with a mass up to 1-tonne and is scalable to accommodate larger structures, either with a larger vehicle or with multiple vehicles that work cooperatively. Looking forward, the team is exploring the idea of making the system vehicle agnostic, which could allow any vehicle to be turned into an autonomous bridge stabilizing machine.</p>
<p>The post <a href="https://www.clearpathrobotics.com/2017/01/customer-story-deployable-autonomous-vibration-control-bridges-using-husky-ugv/" target="_blank" rel="nofollow external noopener noreferrer" data-wpel-link="external">Customer Story: Deployable, Autonomous Vibration Control of Bridges Using Husky UGV</a> appeared first on <a href="https://www.clearpathrobotics.com/" target="_blank" rel="nofollow external noopener noreferrer" data-wpel-link="external">Clearpath Robotics</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/clearpath-robotics-launches-warthog-ugv-the-amphibious-robot/" target="_blank" data-wpel-link="internal">Clearpath Robotics launches “Warthog UGV”, the amphibious robot</a></li>
<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>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>Interview: International Ground Vehicle Ground Competition (IGVC) winner on “Bigfoot 2” Husky UGV</title>
		<link>https://robohub.org/interview-international-ground-vehicle-ground-competition-igvc-winner-on-bigfoot-2-husky-ugv/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Mon, 08 Aug 2016 11:36:32 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[interviews]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<guid isPermaLink="false">http://robohub.org/interview-international-ground-vehicle-ground-competition-igvc-winner-on-bigfoot-2-husky-ugv/</guid>

					<description><![CDATA[<p>The International Ground Vehicle Ground Competition (IGVC) is an annual event that brings together teams of college students from all over the globe to compete in an autonomous ground vehicle competition. Teams are tasked to design and construct a fully autonomous unmanned robotic vehicle that can navigate around a challenging outdoor obstacle course under a [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="https://www.clearpathrobotics.com/2016/08/interview-igvc-winner-bigfoot-2-husky-ugv/" data-wpel-link="external" target="_blank">Interview: IGVC Winner on &#8220;Bigfoot 2&#8221; Husky UGV</a> appeared first on <a rel="nofollow external noopener noreferrer" href="https://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="attachment_65096" style="width: 1034px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2016/08/bigfoot2-1080x675.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-65096" class="size-large wp-image-65096" src="http://robohub.org/wp-content/uploads/2016/08/bigfoot2-1080x675-1024x640.jpg" alt="Photo credit: Lawrence Tech University IGVC Facebook" width="1024" height="640" srcset="https://robohub.org/wp-content/uploads/2016/08/bigfoot2-1080x675-1024x640.jpg 1024w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2-1080x675-425x266.jpg 425w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2-1080x675-480x300.jpg 480w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2-1080x675.jpg 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><p id="caption-attachment-65096" class="wp-caption-text">Photo credit: Lawrence Tech University IGVC Facebook</p></div>
<p>By: Chris Bogdon</p>
<p>The International Ground Vehicle Ground Competition (IGVC) is an annual event that brings together teams of college students from all over the globe to compete in an autonomous ground vehicle competition. Teams are tasked to design and construct a fully autonomous unmanned robotic vehicle that can navigate around a challenging outdoor obstacle course under a prescribed time. This year’s IGVC went down in June at Oakland University, and while the competition was stiff, only one team could come out on top. That team was Lawrence Teach University (LTU), whose robot, Bigfoot 2, was built using the <a href="https://www.clearpathrobotics.com/husky/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Husky UGV</a> robotic platform.</p>
<p><span id="more-65075"></span></p>
<p>We had a chance to sit down for a quick Q&amp;A with team captain, Gordon Stein, to learn more about the design of the robot, challenges and key lessons learned by taking part in the competition.</p>
<p><strong>Q: Tell us a bit about the design of Bigfoot 2?</strong></p>
<p>A: Bigfoot 2 uses the Clearpath Husky platform, with our own frame and electronics placed on top of it. For sensors, we have a 2D LIDAR, a camera, a GPS, and a compass. The computer we used was one of the laptops our school provides to students. This meant we could easily get a replacement if needed. Our software is made in C#, which makes it easier for students in the robotics programming course to join the team.</p>
<p>We modified the platform to have larger tires with a smoother tread. The original tires had too much traction, and we were afraid that we would get disqualified from them ripping up the turf at the competition. In addition, it makes it easier for the robot to turn in place, and made the robot able to go slightly faster.</p>
<div id="attachment_65095" style="width: 1034px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2016/08/bigfoot2_2.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-65095" class="size-large wp-image-65095" src="http://robohub.org/wp-content/uploads/2016/08/bigfoot2_2-1024x682.jpg" alt="Photo credit: Lawrence Tech University IGVC Facebook" width="1024" height="682" srcset="https://robohub.org/wp-content/uploads/2016/08/bigfoot2_2-1024x682.jpg 1024w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2_2-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2_2-451x300.jpg 451w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2_2.jpg 1158w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><p id="caption-attachment-65095" class="wp-caption-text">Photo credit: Lawrence Tech University IGVC Facebook</p></div>
<p><strong>Q: Why did you choose the Husky UGV as your mobile base over other mobile platforms or creating your own?</strong></p>
<p>A: Our team’s philosophy was to use as many “off-the-shelf” components as possible. We represent the Computer Science department, so we wanted to spend as much time as possible on our programming. Using an existing platform allowed us to have a working robot earlier in the year, so we could start programming instead of waiting for the chassis to be assembled.</p>
<p><strong>Q: What was the most challenging part of preparing for the competition?</strong></p>
<p>A: The most challenging part is testing. Our team has a simulator we made in a previous year, and we had set up a practice course on campus, but we still couldn’t prepare for everything at the competition. This is especially difficult because we don’t know the obstacles ahead of time. In the previous year, we didn’t prepare for ramps and a ramp stopped us. This year, we tested to make sure it could go over ramps and no ramps were at the competition. The advanced course always has obstacles that none of the teams are ready for, and that’s part of the challenge.</p>
<p><strong>Q: What aspect of the design were you most and least worried going into the competition?</strong></p>
<p>A: We were most worried about waterproofing. Our team tradition for the past few years had been to just attach an umbrella to the robot, but this doesn’t win us any points with the judges, and it doesn’t let us run in serious rain. The Husky chassis is water resistant, but the electronics we had on top of it is not. We purchased some vinyl material to use for waterproofing, but we weren’t able to make it into a real cover in time.</p>
<p>We were least worried about the new tires. We tested them to make sure they would work on slopes and ramps, and they definitely improved the steering.</p>
<div id="attachment_65094" style="width: 1034px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2016/08/bigfoot2_3.jpg" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-65094" class="size-large wp-image-65094" src="http://robohub.org/wp-content/uploads/2016/08/bigfoot2_3-1024x682.jpg" alt="Photo credit: Lawrence Tech University IGVC Facebook" width="1024" height="682" srcset="https://robohub.org/wp-content/uploads/2016/08/bigfoot2_3-1024x682.jpg 1024w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2_3-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2_3-451x300.jpg 451w, https://robohub.org/wp-content/uploads/2016/08/bigfoot2_3.jpg 1158w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><p id="caption-attachment-65094" class="wp-caption-text">Photo credit: Lawrence Tech University IGVC Facebook</p></div>
<p><strong>Q: What were the key lessons learned by participating in the IGVC competition?</strong></p>
<p>A: The key lesson we learned was to keep things simple. Some of the teams had very elaborate sensors and relied on dozens of ROS packages for their code, and many of them seemed to be having issues at the competition. While a 3D LIDAR would’ve opened up some new possibilities, we only needed a 2D LIDAR to see the barrels.</p>
<p><strong>Q: What advice would you give to teams participating in next year&#8217;s challenge?</strong></p>
<p>A: Our advice would be to spend time trying new ideas. We had one team member whose job was to try new ways to automatically adjust our camera to changing lighting conditions. None of them ended up being used at the competition, but it still allowed us to see what possible other solutions there could be.</p>
<h3>See Bigfoot 2 in action</h3>
<p>Watch Bigfoot 2 navigate the Auto-Nav Challenge Advanced Course</p>
<div class="keep-aspect"><iframe title="LTU IGVC 2016 team Bigfoot2, Auto-Nav Challenge Advanced Course 1st Place" width="500" height="281" src="https://www.youtube-nocookie.com/embed/eYviBKA0Jmc?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 post <a href="https://www.clearpathrobotics.com/2016/08/interview-igvc-winner-bigfoot-2-husky-ugv/" target="_blank" rel="nofollow external noopener noreferrer" data-wpel-link="external">Interview: IGVC Winner on “Bigfoot 2” Husky UGV</a> appeared first on <a href="https://www.clearpathrobotics.com/" target="_blank" rel="nofollow external noopener noreferrer" data-wpel-link="external">Clearpath Robotics</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>4 reasons why Industry 4.0 will leave AGVs behind</title>
		<link>https://robohub.org/4-reasons-why-industry-4-0-will-leave-agvs-behind/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Fri, 22 Apr 2016 09:30:25 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[Industry 4.0]]></category>
		<guid isPermaLink="false">http://robohub.org/4-reasons-why-industry-4-0-will-leave-agvs-behind/</guid>

					<description><![CDATA[<p>Technology has been in development for the last decade and has&#160;now come to fruition in the form of self-driving vehicles. These vehicles are driving into industrial centers and beginning to replace traditional AGVs, and it&#8217;s no wonder why. The first AGV was introduced in the early 1950s and more than 50 years later it has [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/2016/03/why-industry-4-0-will-leave-agvs-behind/" data-wpel-link="external" target="_blank">Why Industry 4.0 will Leave AGVs Behind</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="attachment_61249" style="width: 910px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-61249" class="size-full wp-image-61249" src="http://robohub.org/wp-content/uploads/2016/03/Agv.forktruck2.jpg" alt="ATV in warehouse. Source: Wikipedia Commons" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2016/03/Agv.forktruck2.jpg 900w, https://robohub.org/wp-content/uploads/2016/03/Agv.forktruck2-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/03/Agv.forktruck2-450x300.jpg 450w" sizes="(max-width: 900px) 100vw, 900px" /><p id="caption-attachment-61249" class="wp-caption-text">AGV in warehouse. Source: Wikipedia Commons</p></div>
<p><strong>By Paula de Villavicencio</strong></p>
<p>Technology has been in development for the last decade and has now come to fruition in the form of self-driving vehicles. These vehicles are driving into industrial centers and beginning to replace traditional AGVs, and it’s no wonder why. The first AGV was introduced in the early 1950s and more than 50 years later it has marginally advanced from following radio transmissions from the ceiling to following magnetic tape on the floor. Its slow advancement isn’t the only limitation; AGVS are fixed, reactive, captured and adoptive machines, and they leave a lot to be desired in today’s complex manufacturing environment.<span id="more-60291"></span></p>
<img decoding="async" class="wp-image-8670 size-medium alignleft" src="http://dgukqh84cayng.cloudfront.net/wp-content/uploads/2016/03/agv-300x194.jpg" sizes="(max-width: 300px) 100vw, 300px" srcset="http://dgukqh84cayng.cloudfront.net/wp-content/uploads/2016/03/agv-300x194.jpg 300w, http://www.clearpathrobotics.com/wp-content/uploads/2016/03/agv-1024x664.jpg 1024w, http://www.clearpathrobotics.com/wp-content/uploads/2016/03/agv.jpg 1080w" alt="AGV_BlogPost" width="300" height="194" />
<p><strong>1. Fixed not flexible</strong><br />
Like trains on their tracks, AGVs are fixed to a certain pathway and are unable to move off of it. These are not flexible machines, and while repeatable point-to-point navigation tasks are possible, many companies have fork trucks and manually driven tug vehicles working alongside the AGVs. Dynamic pathways are a necessary evolution in Industry 4.0, especially for innovating manufacturers with complex production systems.</p>
<p><strong>2. Reactive not proactive</strong><br />
Yet, unlike trains, AGVs cannot move onto a new track direction to avoid collision or change their direction. In fact, if an AGV breaks down while on a preprogrammed pathway, all AGVs following the same pathway cannot move around it, and are unable to deliver or pick up their loads. This loss in movement can cost a company a great deal of money in a short amount of time.</p>
<p><strong>3. Captured not collaborative</strong><br />
These machines are also unable to collaborate amongst each other to share the work in the most efficient way possible. Those AGVs that are preprogrammed to a specific pathway cannot move to a different path rapidly or easily to perform a different job. They are held captive in their preprogrammed task regardless of efficiency or changing manufacturing needs.</p>
<p><strong>4. Adoptive not adaptive</strong><br />
Since the preprogrammed pathways have to be simple and unobstructed for the AGVs, many facilities pre-plan their layouts with the machines in mind. Transport aisles are designed for isolated AGV paths, and work areas are laid out to accommodate the vehicles’ planned route. When it comes to AGVs, manufacturers have to adapt to the machines, instead of the AGVs incorporating into an already existing facility. In some cases, factories and warehouses resort to manual transport methods instead of adopting AGV technology and all the prerequisite planning that it requires.</p>
<p><span style="line-height: 1.5;">By advancing material transport for Industry 4.0 capabilities, we will see more technologies take the factory floor. Self-driving vehicles can offer flexibility, proactive planning, collaboration, and adaptive behaviours.</span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>5 innovation challenges in materials transport</title>
		<link>https://robohub.org/5-innovation-challenges-in-materials-transport/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Fri, 18 Mar 2016 10:30:21 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<category><![CDATA[industrial]]></category>
		<guid isPermaLink="false">http://robohub.org/5-innovation-challenges-in-materials-transport/</guid>

					<description><![CDATA[<p>To continue to prosper and grow, manufacturers need to embrace innovation to overcome some of the significant challenges they face in the day-to-day operation of their business. Here are just some of the challenges manufacturers are battling today: Challenge #1: Adapting to a New Velocity of Change From cola&#8217;s&#160;to custom cars, consumers are now demanding [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/2016/03/5-innovation-challenges-in-materials-transport/" data-wpel-link="external" target="_blank">5 Innovation Challenges in Materials Transport</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</p>]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-large wp-image-60551" src="http://robohub.org/wp-content/uploads/2016/03/warehouse-distribution-centre-supply-chain-1024x680.jpg" alt="warehouse-distribution-centre-supply-chain" width="1024" height="680" srcset="https://robohub.org/wp-content/uploads/2016/03/warehouse-distribution-centre-supply-chain.jpg 1024w, https://robohub.org/wp-content/uploads/2016/03/warehouse-distribution-centre-supply-chain-425x282.jpg 425w, https://robohub.org/wp-content/uploads/2016/03/warehouse-distribution-centre-supply-chain-452x300.jpg 452w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p><strong>by: Meghan Hennessey</strong></p>
<p>Walk into any manufacturing facility today. Forklifts and AGVs may be in operation serving specific parts of the manufacturing floor, but you’ll also see hundreds of people at work— pulling, tugging, and pushing goods from point A to point B. Why is it that we are still using humans — our most important asset — for materials transport? Yet, despite being the grease for the manufacturing wheel, materials transport remains an untapped opportunity for automation and innovation in most manufacturing establishments.</p>
<p><span id="more-60495"></span></p>
<p>To continue to prosper and grow, manufacturers need to embrace innovation to overcome some of the significant challenges they face in the day-to-day operation of their business. Here are some of the challenges manufacturers are battling today:</p>
<p><strong>Challenge #1: Adapting to a new velocity of change</strong><br />
From <a href="http://www.coca-colacompany.com/coca-cola-unbottled/is-your-name-on-a-coke-bottle-find-out-here/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">cola’s </a>to <a href="http://www.dallasnews.com/business/autos-latest-news/20151120-high-end-car-buyers-let-the-good-times-roll.ece" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">custom cars</a>, consumers are now demanding more variety in the goods they purchase. This insatiable appetite for choice is putting new pressure on industry to manufacture goods in a different way. To deal with the explosion of SKUs customers want available on store shelves, manufacturing environments need to be far more flexible than they’ve been in the past. To get there, manufacturers are turning to dynamic manufacturing methods such as mixed-model assembly lines (MMALs) and/or just-in-time (JIT) kit-based delivery to produce smaller batch runs with a greater variety and variation of products.</p>
<p><strong>Challenge #2: Managing rising complexity</strong></p>
<div id="attachment_60555" style="width: 435px" class="wp-caption alignleft"><img decoding="async" aria-describedby="caption-attachment-60555" class="size-medium wp-image-60555" src="http://robohub.org/wp-content/uploads/2016/03/grocery-store-supply-chain-sku-425x319.jpg" alt="SKU proliferation is caused when consumers demand endless variations of a similar product. Source: usdagov/Flickr" width="425" height="319" srcset="https://robohub.org/wp-content/uploads/2016/03/grocery-store-supply-chain-sku-425x319.jpg 425w, https://robohub.org/wp-content/uploads/2016/03/grocery-store-supply-chain-sku.jpg 1024w, https://robohub.org/wp-content/uploads/2016/03/grocery-store-supply-chain-sku-400x300.jpg 400w" sizes="(max-width: 425px) 100vw, 425px" /><p id="caption-attachment-60555" class="wp-caption-text">SKU proliferation is caused when consumers demand endless variations of a similar product. Source: usdagov/Flickr</p></div>
<p>Customers may demand that manufacturers produce a greater variety of product with a higher velocity, but these flexibility demands are creating chaos on the factory floor. As traditional automation and material handling systems are typically built into the infrastructure and cannot be easily or cost-effectively adapted to deal with ongoing change, manufacturers are continually struggling to contend with increasing complexity in the way products are built, the way raw materials are transported, and the way people and machines move through the facility.</p>
<p><strong>Challenge #3: Remaining competitive on a global playing field</strong><br />
While North American manufacturers continue to wrestle with the complexities created by dynamic manufacturing models, there is yet another large dynamic at play: offshore competition. Manufacturers working in offshore locations such as China, Mexico, Eastern Europe and Africa are able to capitalize on lower local labor costs to produce goods and services for the market more affordably, making them significantly more competitive than their US counterparts. North American factory owners face higher real estate prices, higher labor costs, and more stringent environmental and regulatory compliance requirements than their offshore counterparts. Therefore, in order to be competitive in this global marketplace, a North American industrial center must find ways to be more efficient than its low cost country counterparts. Automation plays a significant role in helping North American manufacturers achieve operational parity; <a href="https://www.bcgperspectives.com/content/articles/technology_making_big_data_work_supply_chain_management/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">companies can optimize distribution, logistics, and production networks by using powerful data-processing and analysis capabilities</a>.</p>
<p><strong>Challenge #4: Reducing operating costs</strong><br />
In order to successfully compete against offshore rivals, US manufacturers need to reset the bar for production density and re-shore their operations. Automation is the linchpin within this strategy. As more manufacturers introduce automation, including robotics on the factory floor, production efficiency will rise, cost will fall, and the manufacturer will gain greater competitive advantage.</p>
<p><strong>Challenge #5: Inefficient and chaotic materials transportation</strong></p>
<div id="attachment_60554" style="width: 435px" class="wp-caption alignleft"><img decoding="async" aria-describedby="caption-attachment-60554" class="size-medium wp-image-60554" src="http://robohub.org/wp-content/uploads/2016/03/warehouse-supply-chain-not-organised-425x282.jpg" alt="Source: Flickr, creative commons" width="425" height="282" srcset="https://robohub.org/wp-content/uploads/2016/03/warehouse-supply-chain-not-organised-425x282.jpg 425w, https://robohub.org/wp-content/uploads/2016/03/warehouse-supply-chain-not-organised.jpg 1024w, https://robohub.org/wp-content/uploads/2016/03/warehouse-supply-chain-not-organised-452x300.jpg 452w" sizes="(max-width: 425px) 100vw, 425px" /><p id="caption-attachment-60554" class="wp-caption-text">Source: Flickr, creative commons</p></div>
<p>The variety and velocity at which goods must be produced, the increasing level of complexity this creates for manufacturers, and the ongoing cost pressures faced by North American industry become an acutely obvious problem when one looks at the way materials are transported and flow through a manufacturing facility. Three key elements tied to materials movement, transport (moving products that are not actually required to perform the processing), motion (people or equipment moving or walking more than is required to perform the processing) and waiting (for the next production step, interruptions of production during shift change) are among the original seven wastes of LEAN.</p>
<p><em>The post <a href="http://www.clearpathrobotics.com/2016/03/5-innovation-challenges-in-materials-transport/" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">5 Innovation Challenges in Materials Transport</a> appeared first on <a href="http://www.clearpathrobotics.com/" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Interview: The team behind the apple harvesting robot</title>
		<link>https://robohub.org/interview-the-team-behind-the-apple-harvesting-robot/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Tue, 08 Mar 2016 15:08:50 +0000</pubDate>
				<category><![CDATA[interviews]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<category><![CDATA[environment & agriculture]]></category>
		<category><![CDATA[robohub focus on agricultural robotics]]></category>
		<guid isPermaLink="false">http://robohub.org/interview-the-team-behind-the-apple-harvesting-robot/</guid>

					<description><![CDATA[<p>Amir Degani is an assistant professor at Technion Institute of Technology and Avi Kahnani is the CEO and Co-Founder of Israeli robotics start-up Fresh Fruits Robotics. Together, they are developing an apple harvesting robot that can autonomously navigate apple orchards and accurately pick fruit from the trees. I got the chance to sit down with [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/2016/03/grizzly-ruv-apple-harvesting-robot/" data-wpel-link="external" target="_blank">Interview:  The Team Behind The Apple Harvesting Robot</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><div id="attachment_60200" style="width: 810px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-60200" class="size-full wp-image-60200" src="http://robohub.org/wp-content/uploads/2016/03/apple-harvesting-robot.jpg" alt="Source: Clearpath Robotics" width="800" height="534" srcset="https://robohub.org/wp-content/uploads/2016/03/apple-harvesting-robot.jpg 800w, https://robohub.org/wp-content/uploads/2016/03/apple-harvesting-robot-425x284.jpg 425w, https://robohub.org/wp-content/uploads/2016/03/apple-harvesting-robot-449x300.jpg 449w" sizes="(max-width: 800px) 100vw, 800px" /><p id="caption-attachment-60200" class="wp-caption-text">Source: Clearpath Robotics</p></div><br />
<strong>By: Chris Bogdon</strong><br />
Amir Degani is an assistant professor at Technion Institute of Technology and Avi Kahnani is the CEO and Co-Founder of Israeli robotics start-up <a href="http://www.ffrobotics.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Fresh Fruits Robotics</a>. Together, they are developing an apple harvesting robot that can autonomously navigate apple orchards and accurately pick fruit from the trees. I got the chance to sit down with Amir and Avi to learn more about the project. In our talk, they discussed the robot’s design, the challenges of apple picking, tree training and their experience demoing the robot for Microsoft’s CEO at the Think Next 2016 exhibition.</p>
<p><span id="more-60158"></span></p>
<p><strong>Tell me a little bit about CEAR Lab. </strong></p>
<p>AD: I founded the CEAR Lab about four years ago after finishing my PhD and post doc at Carnegie Mellon University in Pittsburgh. I came back to the Technion in Israel and started the Civil, Environmental, Agricultural Robotics lab in the Faculty of Civil and Environmental Engineering. We work on soft robots, dynamic robots, and optimization of manipulators, mostly with civil applications, a lot of them related to agriculture. Other applications are search and rescue, automation in construction and environmental related work as well. But, generally, we’re mostly focused on agriculture robotics and robotic systems in the open field.</p>
<p><strong>How did the apple harvesting robot project come to&#8230; fruition? </strong></p>
<p>AD: One of my PhD students is doing more theoretical work on task-based design of manipulators. Because cost is very important in agriculture, we’re trying to reduce price and find the optimal robot to do specific tasks. We’re actually seeing that different tasks, although they look very similar to us- apple picking or orange picking or peach picking – are actually very different if you look at the robot’s kinematics. We might need different joints, different lengths and so on. So we’re collecting data and modeling trees, we’re doing optimization and we’re finding the optimal robot for a specific task. This is something we have been working on for a few years. As part of this work, we are not only designing the optimal robot, but are also looking at designing the tree – finding the optimal tree in order to further simplify the robot.</p>
<div class="sprfocus5"><a class="sprfocusl" href="/tag/robohub-focus-on-agricultural-robotics/" data-wpel-link="internal"> </a></div>
<p>There is a new Israeli start-up called FFRobotics (Fresh Fruit Robotics or FFR). Avi, who is the CEO and Co-Founder, approached us a few years ago after hearing one of my students give a talk on optimization of a tasked-based harvesting manipulator. FFR are building a simple robotic arm – a three degree of freedom Cartesian robot, with the goal of having 8 or 12 of these arms picking apples (or other fruits) simultaneously. We were helping them with the arm’s optimization. We started collaborating and then a few months ago, Microsoft approached us and asked us to exhibit at their Think Next exhibition that they have every year. So we decided to put one of the arms on our <a href="http://www.clearpathrobotics.com/grizzly/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Grizzly RUV</a> robot which fit pretty nicely. We brought those to the demo, along with a few Jackals and had a pretty good time!</p>
<p><strong>Tell me a bit about how the robot works and its components.</strong></p>
<p>AD: So the FFR arm has a vision system to segment and detect the apples. After it finds an apple, it gives the controller the XYZ location and the arm then reaches for the fruit. It has an underactuated gripper at the end with a single motor which grips the apple and rotates it about 90 degrees to detach it. The arm doesn’t go back to the home position, it just retracts a bit, lets go and the apples go into a container. In our lab, we are concentrating right now on the automation of the mobile robots themselves – on the Grizzly, Husky, and Jackals – we have a few of your robots. Fruit Fresh Robotics is working primarily on the design of the manipulator.</p>
<p><strong>What kind of vision sensors are being used?</strong></p>
<p>AD: On the <a href="http://www.clearpathrobotics.com/grizzly/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Grizzly</a>, we have an IMU, SICK LIDAR in Front, a stereo camera on a Pant-Tilt unit, and a dGPS. The arm uses a Kinect to do the sensing, but FFR is also looking into time of flight sensors to provide better robustness in the field.</p>
<div id="attachment_60201" style="width: 810px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-60201" class="size-full wp-image-60201" src="http://robohub.org/wp-content/uploads/2016/03/apple-harvest-robot-picking.jpg" alt="Robot prepares to pick the next apple off the tree at Microsoft’s Think Next exhibition. Source: Clearpath Robotics" width="800" height="565" srcset="https://robohub.org/wp-content/uploads/2016/03/apple-harvest-robot-picking.jpg 800w, https://robohub.org/wp-content/uploads/2016/03/apple-harvest-robot-picking-425x300.jpg 425w" sizes="(max-width: 800px) 100vw, 800px" /><p id="caption-attachment-60201" class="wp-caption-text">Robot prepares to pick the next apple off the tree at Microsoft’s Think Next exhibition. Source: Clearpath Robotics</p></div>
<p><strong>What would you say is the most challenging part of automating apple picking?</strong></p>
<p>AD: I believe that the most difficult thing is making something cheap and robust. I think the best way is to not only think of the robot but also to train the trees to be simpler. Now this has been done in the past decade or two to simplify human harvesting. In extreme cases, you can see fruiting walls that are nearly planar. They did this to make it a bit simpler for human harvesters. This is even more important for robotic harvesting. Trying to get a robot to harvest apples on a totally natural tree is extremely complex, and you will most likely need a 6-7 degree of freedom robot to do it. In terms of vision, perception will be very difficult. People have tried it in the past and it just doesn’t make sense and makes everything too expensive for farmers to use.</p>
<p>By taking simpler trees, ones that were trained and pruned as the ones in our collaboration with Fresh Fruit Robotics, you can actually use a three degree of freedom robot – the simplest Cartesian robot – to do the picking. But, I think you can even go further to make the tree in a more optimal shape for a robot, let’s say a quarter of a circle. This may not be good for a human, but might be perfect for a robot and perhaps will allow us to use simpler robots that only need two degrees of freedom. So, making the system robust while keeping costs down is the hardest part and in order to do that you have to work on the tree as well.</p>
<p><strong>How exactly do you train a tree?</strong></p>
<p>AD: Training systems such as a fruiting-wall require high density planting while ensuring that the trunk and branches are not too thick. In order to do that you have to support them with a trellis and other engineered support system. You want to make them optimal so that all the energy and water goes mostly to the fruit and not the tree itself. This has been done for a while now, and we are essentially piggy backing on that. The simplification of trees may be even more important for robotics than for humans, if we want robots to go into fruit picking and harvesting.</p>
<p><strong>Can the robots autonomously navigate and patrol the apple orchards?</strong></p>
<p>AD: Not at the moment. We are in the process of doing it now on all of our robots. Right now we are trying to do full SLAM on an orchard in order to do patrolling for harvesting. This is the goal we are aiming for this summer.</p>
<p><strong>How do you compensate for weather effects?</strong></p>
<p>AD: In Israel the weather is relatively mild, so the problem is usually with sun and wind rather than snow and rain. The main problem the weather creates is with the perception of the robot, having to compensate for changes in light and in position of the objects. To overcome this FFR uses a cover, like a tent, to shield the tree and the robot. If it’s windy, you have to use fast closed-loop control because if the target starts moving after it’s been perceived, the system has to keep on tracking it in order for the gripper to accurately grip the object where it is and not where it was 10 seconds ago.</p>
<p><strong>Why did you choose the Grizzly RUV for this project? </strong></p>
<p>AD: We’ve had the <a href="http://www.clearpathrobotics.com/husky/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Husky UGV</a> for a while. We also have some older robots from 10 years ago, such as a tractor that we modified to be semi-autonomous. But, none of these vehicles were strong enough to actually do real work while being easily controllable. We wanted to carry bins full of fruit which weigh more than half a ton and we didn’t have a robot that could do that. Also, I wanted to have something that my students could take and apply the algorithms to a real-sized robot that could work in the field. We started with a TurtleBot to learn ROS, and then moved to the Husky. Then I wanted something I could just scale up and actually move to the field. That’s what we’re doing right now. It’s pretty new, so we’re in the early stages of working with it.</p>
<p><strong>How did you find the integration process?</strong></p>
<p>AD: Mechanical integration was very easy. We have not yet fully completed the electrical integration – instead we have two separate controllers and two separate electrical systems. Later on it will be relatively easy for the electrical system to be plugged into the robot since it uses the same voltage more or less. But right now it is decoupled.</p>
<p><strong>Are you at a point where you can quantify the efficiency and cost benefits of the robots compared manual picking?</strong></p>
<p>AK: We designed the system to pick approximately 10,000 high quality fruits per hour – that is without damaging the fruit while picking. Assuming working during the day only, the robot could potentially save farmers 25% in harvesting costs. It is important to understand that the same system will be able to pick other fresh fruits by replacing the end effector (gripper) and the software module. This option to harvest multiple fruits types increases the efficiency of the system dramatically.</p>
<p><strong>What was it like to demo the robot to Satya Nadella, CEO of Microsoft, at the Think Next conference?</strong></p>
<p>AD: It was exciting! He didn’t have a lot of time to spend at our booth. But it was an exciting exhibition with many demonstrators. We had the biggest robot for sure. It was fun! The FFR arm picked apples from the tree, and dropped them in the Jackal. Then, we drove the Jackal around delivering picked apples to people and they liked it. For safety reasons, we didn’t move the <a href="http://www.clearpathrobotics.com/grizzly/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Grizzly</a>. We just parked it and it didn’t move a centimeter the whole time. It was fun bringing such a big robot to the demo.</p>
<div id="attachment_60206" style="width: 810px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-60206" class="size-full wp-image-60206" src="http://robohub.org/wp-content/uploads/2016/03/apple-robot-picking3.jpg" alt="Picked apples were placed in a basket on top of a Jackal UGV and delivered to people in the crowd at Microsoft’s Think Next exhibition. Source: Clearpath Robotics" width="800" height="533" srcset="https://robohub.org/wp-content/uploads/2016/03/apple-robot-picking3.jpg 800w, https://robohub.org/wp-content/uploads/2016/03/apple-robot-picking3-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/03/apple-robot-picking3-450x300.jpg 450w" sizes="(max-width: 800px) 100vw, 800px" /><p id="caption-attachment-60206" class="wp-caption-text">Picked apples were placed in a basket on top of a Jackal UGV and delivered to people in the crowd at Microsoft’s Think Next exhibition. Source: Clearpath Robotics</p></div>
<p><strong>How close are you to a commercial release?</strong></p>
<p>AK: Following last year’s field tests we believe the commercial system is about two years ahead. During the summer of 2016 we plan to test a full integrated system in the apple orchard, picking fruits from the trees all the way to the fruit bin. The first commercial system will be available for the 2017 apple picking season.</p>
<p><strong>What is next for CEAR lab? </strong></p>
<p>AD: We will continue working on the theoretical part of the optimization of the robotic arms. We’re looking into new ideas on re-configurability of arms – having arms doing different tasks and pretty easily switching from one task to another. With the Grizzly, we’re working on autonomous navigation of the apple orchards and are also working on a non-agricultural project related to search and rescue. We designed a suspension system on the Grizzly and mounted a stretcher on top of it. The motivation is to be able to evacuate wounded from harm’s way autonomously in rough terrain.</p>
<p>We are pretty happy with our robots. It’s a big family! We pretty much have all of Clearpath’s robots. Technical support is great and it’s been fun!</p>
<p><em>The post <a href="http://www.clearpathrobotics.com/2016/03/grizzly-ruv-apple-harvesting-robot/" target="_blank" rel="nofollow external noopener noreferrer" data-wpel-link="external">Interview: The Team Behind The Apple Harvesting Robot</a> appeared first on <a href="http://www.clearpathrobotics.com/" target="_blank" rel="nofollow external noopener noreferrer" data-wpel-link="external">Clearpath Robotics</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3 supply chain trends to watch for in 2016</title>
		<link>https://robohub.org/3-supply-chain-trends-to-watch-for-in-2016/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Fri, 08 Jan 2016 21:27:11 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[industrial]]></category>
		<guid isPermaLink="false">http://robohub.org/3-supply-chain-trends-to-watch-for-in-2016/</guid>

					<description><![CDATA[<p>The New Year is upon us and with that comes predictions of what 2016 has in store. Will Automated Guided Vehicle (AGVs) continue to drive materials on the factory floor? What is &#8216;Industry 4.0&#8217; and when will it take shape? The factory of the future is around the corner and these 3 supply chain trends [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/2016/01/3-supply-chain-trends-to-watch-in-2016/" data-wpel-link="external" target="_blank">3 Supply Chain Trends to Watch in 2016</a> appeared first on <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank">Clearpath Robotics</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="aligncenter size-full wp-image-58550" src="http://robohub.org/wp-content/uploads/2016/01/factory_arm_robot_packing_manipulation.jpg" alt="factory_arm_robot_packing_manipulation" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2016/01/factory_arm_robot_packing_manipulation.jpg 900w, https://robohub.org/wp-content/uploads/2016/01/factory_arm_robot_packing_manipulation-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/01/factory_arm_robot_packing_manipulation-450x300.jpg 450w" sizes="(max-width: 900px) 100vw, 900px" />The New Year is upon us and with that comes predictions of what 2016 has in store. Will Automated Guided Vehicle (AGVs) continue to drive materials on the factory floor? What is ‘Industry 4.0’ and when will it take shape? The factory of the future is around the corner and these three supply chain trends for 2016 are the ones that will take us there.<span id="more-58513"></span></p>
<h2>1. Increased reliance on automation and robots</h2>
<p><a href="http://www.industryweek.com/workforce/these-5-manufacturing-trends-are-no-joke" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Industry Week</a> reports that 2016 promises “vastly more automation for concentrating human effort on details and customization.” With warehouses experiencing <a href="http://www.clearpathrobotics.com/2015/12/3-challenges-of-modern-warehouse-operations/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">increased cost pressures and supply chain complexities</a>, operators are seeing just how much technology has advanced and how automation in particular can provide flexible transportation solutions. Solutions such as <a href="http://bit.ly/1PMDjJ1" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">OTTO</a>, for instance, offer infrastructure free navigation and virtually limitless flexibility for material transport in factories. With this level of automation, robots can be relied upon to complete simple yet important tasks such as material transport or line side delivery, while the human workforce will be able to focus efforts on complex tasks, problem solving and strategy.</p>
<h2>2. Realization of the Industry 4.0 vision</h2>
<p><img decoding="async" class="alignleft size-medium wp-image-58551" src="http://robohub.org/wp-content/uploads/2016/01/Internet_of_Things_Smart_phone_IoT_conveyor_Belt_industry_factory-425x283.jpg" alt="Internet_of_Things_Smart_phone_IoT_conveyor_Belt_industry_factory" width="425" height="283" srcset="https://robohub.org/wp-content/uploads/2016/01/Internet_of_Things_Smart_phone_IoT_conveyor_Belt_industry_factory-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/01/Internet_of_Things_Smart_phone_IoT_conveyor_Belt_industry_factory-450x300.jpg 450w, https://robohub.org/wp-content/uploads/2016/01/Internet_of_Things_Smart_phone_IoT_conveyor_Belt_industry_factory.jpg 900w" sizes="(max-width: 425px) 100vw, 425px" />In <a href="http://www.gartner.com/newsroom/id/3143521" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Gartner’s top 10 Strategic Technologies for 2016</a>, analysts predict that the Internet of Things will have significant growth and impact over the next year in particular. Automation is only a piece of the puzzle when considering Industry 4.0; these evolutionary ‘smart factories’ will emerge with interconnected, centrally controlled solutions that are starting to be available to the marketplace. These solutions not only communicate with other material transport units (i.e.: the fleet) on the factory floor, they also communicate with people by providing perceptive light displays and integrating into the existing WMS to receive dispatched tasks. In an interview with <a href="http://www.forbes.com/sites/paulmartyn/2015/12/15/five-supply-chain-predictions-for-2016" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Forbes</a>, Rethink Robotics CPMO Jim Lawson summed things up quite nicely, “We’ll see an aggressive push by sector leaders to accelerate the realization of the Industry 4.0 vision. Specifically, big data analytics combined with advances in cloud-based robotics.”</p>
<h2>3. Service chains will become more important than product chains</h2>
<p><img decoding="async" class="alignleft size-medium wp-image-58549" src="http://robohub.org/wp-content/uploads/2016/01/warehouse_forklift_people_work_supply_chain_management-425x283.jpg" alt="warehouse_forklift_people_work_supply_chain_management" width="425" height="283" srcset="https://robohub.org/wp-content/uploads/2016/01/warehouse_forklift_people_work_supply_chain_management-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2016/01/warehouse_forklift_people_work_supply_chain_management-450x300.jpg 450w, https://robohub.org/wp-content/uploads/2016/01/warehouse_forklift_people_work_supply_chain_management.jpg 900w" sizes="(max-width: 425px) 100vw, 425px" />A supply chain is a system of organizations, people, activities, information, and resources that work together to move a product, whereas a production chain is the steps that needs to take place in order to transform raw materials into finished goods. The supply chain trend of service chains becoming more important than product chains is something that will develop over the next 10 years, although it’s already becoming reality. Providing great, reliable products is a standard expectation in the marketplace; whereas service is often perceived as a ‘nice-to-have’ within manufacturing. <a href="http://www.supplychain247.com/article/10_supply_chain_trends_for_the_next_10_years/EVM_Partners/D2" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">SupplyChain247</a> explains, “Increasingly, discerning consumers are demanding more from pre and post-sales service for the goods they buy.” We can apply this statement to technology suppliers as well – as Industry 4.0 takes form, and automation and robots become paramount, providers of those technologies must offer factory operators more than the technology itself. A full solution package will include hardware, software and service to offer ongoing support and true business relationships within the supply chain.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Simulating in MapleSim</title>
		<link>https://robohub.org/simulating-in-maplesim/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Tue, 19 May 2015 18:07:29 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[Simulation]]></category>
		<guid isPermaLink="false">http://robohub.org/simulating-in-maplesim/</guid>

					<description><![CDATA[<p>By Ilia Baranov A couple&#160;challenges&#160;with robotics is that robots are expensive and they usually depend on batteries. What if you want to run an experiment with 100 robots, running for 10 hours? To help answer this question,&#160;ROS has built in support for robot simulation in the form of Gazebo. While this works quite well, it [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/simulating-clearpath-robots-in-maplesim/" data-wpel-link="external" target="_blank">Simulating Clearpath Robots in MapleSim</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 size-full wp-image-49728" src="http://robohub.org/wp-content/uploads/2015/05/maplesim.png" alt="maplesim" width="700" height="323" srcset="https://robohub.org/wp-content/uploads/2015/05/maplesim.png 700w, https://robohub.org/wp-content/uploads/2015/05/maplesim-425x196.png 425w, https://robohub.org/wp-content/uploads/2015/05/maplesim-500x231.png 500w" sizes="(max-width: 700px) 100vw, 700px" />By Ilia Baranov</em></p>
<p>Robots are expensive and they usually depend on batteries. What if you want to run an experiment with 100 robots, running for 10 hours? To help answer this question, ROS has built in support for robot simulation in the form of Gazebo. While this works quite well, it is currently unable to simulate physical properties like batteries, temperature, surface roughness. If your robotics research depends on accurate models, you may want to consider looking at MapleSim® 2015 – a high performance physical modeling and simulation tool developed by Maplesoft<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />.<span id="more-49656"></span><span id="more-4153"></span></p>
<p>Below we can see a video of the <a title="Grizzly" href="http://clearpathrobotics.com/grizzly" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grizzly RUV</a> taking an open loop control path around a surface. Elements like current and voltage provided by the batteries, surface slipperiness and weight distribution all play a role in where the Grizzly actually ends up. To see what we’re referring to, watch the quick simulation video below:</p>
<p>https://youtu.be/dnhotIAyYBk</p>
<p>The MapleSim model features a 200 Ah lead-acid battery pack with a nominal voltage of 48 V, similar to the Type B battery pack used in the robot, to provide electrical power to move the vehicle on an uneven terrain. The lead acid battery used in the model is part of MapleSim’s Battery Component Library. The physical behaviors of the battery are described by mathematical expressions curve-fitted based on experiment measurements to provide the accurate battery voltage and state of charge during the operations of the robot.</p>
<p>The interaction forces and moments at the tire-terrain contact points are generated based on a 3D tire model. A 3D mathematical expression is used to describe the terrain surface to allow the tire-terrain contact points to be calculated based on the position of the vehicle. This 3D function is also used to generate the STL graphics of the terrain for animation (see Figure 1).</p>
<p>The model also outputs electric motor torques, speeds, and battery state of charge as shown below:</p>
<img decoding="async" class="aligncenter size-full wp-image-49723" src="http://robohub.org/wp-content/uploads/2015/05/Results_window-1024x619.png" alt="Results_window-1024x619" width="1024" height="619" srcset="https://robohub.org/wp-content/uploads/2015/05/Results_window-1024x619.png 1024w, https://robohub.org/wp-content/uploads/2015/05/Results_window-1024x619-425x257.png 425w, https://robohub.org/wp-content/uploads/2015/05/Results_window-1024x619-496x300.png 496w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>Setting up the simulation involves using the Grizzly RUV MapleSim model, available at the bottom of this post. The graphical representation is easy to understand and also quick to modify.</p>
<img decoding="async" class="aligncenter size-full wp-image-49726" src="http://robohub.org/wp-content/uploads/2015/05/unnamed.png" alt="unnamed" width="623" height="543" srcset="https://robohub.org/wp-content/uploads/2015/05/unnamed.png 623w, https://robohub.org/wp-content/uploads/2015/05/unnamed-425x370.png 425w, https://robohub.org/wp-content/uploads/2015/05/unnamed-344x300.png 344w" sizes="(max-width: 623px) 100vw, 623px" />
<p>&nbsp;</p>
<p>Maple and MapleSim provide a testing and analysis environment based on the virtual prototypes of the model. A number of analysis can be performed:</p>
<ul>
<li><strong><em>Virtual testing and analysis:</em></strong> an engineer can easily test the operations of the robot for any design in a virtual environment through simulations in MapleSim. Using Maple, different terrain surface conditions and tire force models to fit different test scenarios can be generated. As an example, the plot below shows different battery energy consumption (state of charge) rates under different terrain conditions.</li>
</ul>
<img decoding="async" class="aligncenter size-full wp-image-49725" src="http://robohub.org/wp-content/uploads/2015/05/graph.png" alt="graph" width="723" height="451" srcset="https://robohub.org/wp-content/uploads/2015/05/graph.png 723w, https://robohub.org/wp-content/uploads/2015/05/graph-425x265.png 425w, https://robohub.org/wp-content/uploads/2015/05/graph-481x300.png 481w" sizes="(max-width: 723px) 100vw, 723px" />
<ul>
<li><strong><em>Battery optimization:</em></strong> the developed MapleSim model can be coupled with Maple’s powerful optimization toolboxes to determine the optimal battery size and optimize the Battery Management System (BMS) to minimize energy consumption, reduce battery temperature, and increase battery service life.</li>
<li><strong><em>Motor sizing:</em></strong> the robot is equipped with four electric motors that are independently controlled to provide wheel torques and steering maneuvers. The seamless integration with Maple will allow the motor sizing optimization to be performed based on MapleSim simulations.</li>
<li><strong><em>Chassis design and payload distribution:</em></strong> the virtual prototype of the system will allow engineers to easily vary payload locations and distributions and analyze their effects, e.g., roll-over, stability, controllability, etc., on certain tasks.</li>
<li><strong><em>Path planning:</em></strong> Using Maple, different terrain surface conditions and tire force models to fit different test scenarios can be generated for path planning.</li>
<li><strong><em>Model-based controller design:</em></strong> the MapleSim model will allow the control strategies to be designed and tested for accuracy before being deployed on a real vehicle.</li>
<li><strong><em>Localization and mapping:</em></strong> the high-fidelity dynamic model of the robot will allow state estimation algorithms, such as Kalman filter and other Bayesian-based filtering algorithms, to be performed at a high accuracy.</li>
<li><strong><em>Optimized code generation:</em></strong> optimized C code can be generated from the MapleSim model for purpose of implementations of control, localization, and path planning strategies.</li>
</ul>
<p><a href="http://www.maplesoft.com/products/maplesim/ModelGallery/detail.aspx?id=310" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">See here for more information on simulating the Grizzly in MapleSim.</a></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AgBot Robotic Seeding Challenge powered by $50K grant for Grizzly RUV</title>
		<link>https://robohub.org/agbot-robotic-seeding-challenge-powered-by-50k-grant-for-grizzly-ruv/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Thu, 14 May 2015 20:05:34 +0000</pubDate>
				<category><![CDATA[news]]></category>
		<category><![CDATA[competitions]]></category>
		<category><![CDATA[environment & agriculture]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[industrial]]></category>
		<category><![CDATA[robohub focus on agricultural robotics]]></category>
		<guid isPermaLink="false">http://robohub.org/agbot-robotic-seeding-challenge-powered-by-50k-grant-for-grizzly-ruv/</guid>

					<description><![CDATA[<p>By Rachel Gould Clearpath Robotics,&#160;in conjunction with airBridge, is proud to offer a $50,000 grant&#160;toward the purchase of the Grizzly Robotic Utility Vehicle for teams in 2016&#8217;s agBOT Robotic Seeding Challenge. Participants are challenged to build unmanned robotic equipment to plant, measure and track multiple crop seeds, vital to improving farming efficiency. The objective of [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/grant-for-agbot-challenge-2015/" data-wpel-link="external" target="_blank">AgBot 2016 Powers $50,000 Grant for Grizzly RUV</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-49677 size-full" src="http://robohub.org/wp-content/uploads/2015/05/agbot_seeding_challenge_2016_clearpath.jpg" alt="agbot_seeding_challenge_2016_clearpath" width="900" height="400" srcset="https://robohub.org/wp-content/uploads/2015/05/agbot_seeding_challenge_2016_clearpath.jpg 900w, https://robohub.org/wp-content/uploads/2015/05/agbot_seeding_challenge_2016_clearpath-425x189.jpg 425w, https://robohub.org/wp-content/uploads/2015/05/agbot_seeding_challenge_2016_clearpath-500x222.jpg 500w" sizes="(max-width: 900px) 100vw, 900px" /> By Rachel Gould</em></p>
<p>The 2016 <a href="http://www.agbot.ag/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">agBOT Robotic Seeding Challenge</a> challenges participants to build unmanned robotic equipment to plant, measure and track multiple crop seeds to improve farming efficiency. The objective of the agBOT challenge is to reduce the harmful chemical by-products and erosion caused by inefficient farming techniques. The challenge will also inspire new solutions to reduce farms’ carbon footprints while increasing production &#8211; essential given that the agricultural sector must support the projected global population of nine billion by the year 2050. <a href="http://www.clearpathrobotics.com/?utm_source=blog&amp;utm_medium=blog&amp;utm_campaign=agBOT_Challenge" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Clearpath Robotics</a>, in conjunction with airBridge, is proud to offer a $50,000 grant toward the purchase of the <a href="http://www.clearpathrobotics.com/grizzly?utm_source=blog&amp;utm_medium=blog&amp;utm_campaign=agBOT_Challenge" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grizzly Robotic Utility Vehicle</a> for teams in the 2016 challenge.<span id="more-49575"></span><span id="more-4138"></span></p>
<h2>More about agBOT</h2>
<p>The 2016 agBOT competition will be held on May 7, 2016. Additional challenges are set for 2017 and 2018. The 2016 competition will be hosted by Gerrish Farms in Rockville, Indiana, where competitors will be challenged to revolutionize the industry by improving precision and efficiency.</p>
<div class="sprfocus5"><a class="sprfocusl" href="/tag/robohub-focus-on-agricultural-robotics/" data-wpel-link="internal"> </a></div>
<h2>Feeding the world’s nine billion people</h2>
<p>Although farming has become mechanized, the evolution of agricultural techniques to include unmanned robots provides a unique opportunity. The agricultural sector can increase productivity and sustainability by using intelligent robotics to analyze current farming practices including fertilization and seedling variety. This concept is paramount in the world of shrinking farming circles and an ever-growing population.</p>
<h2>The bot to get it done!</h2>
<div id="attachment_49680" style="width: 310px" class="wp-caption alignleft"><img decoding="async" aria-describedby="caption-attachment-49680" class="size-full wp-image-49680" src="http://robohub.org/wp-content/uploads/2015/05/Clearpath_Agbot_Seeding_Challenge.jpg" alt="Grizzly RUV seeding a field. " width="300" height="200" /><p id="caption-attachment-49680" class="wp-caption-text">Grizzly RUV seeding a field.</p></div>
<p>This year’s agBOT competition requires a robot that can function as an unmanned crop seeder; it must plant two types of seeds over half-mile-long rows. It must also supply real-time data using a mobile tracking antenna and a variety of analytics including down pressure and variety placement. Participating teams are responsible for developing all software, sensors and human-machine control interfaces to control tasks.</p>
<p>This complex list of requirements requires a flexible, rugged, high performing solution, which is why we’re excited to partner with airBridge to offer a $50,000 grant for Grizzlies that are used in the competition.</p>
<div id="attachment_49679" style="width: 310px" class="wp-caption alignleft"><img decoding="async" aria-describedby="caption-attachment-49679" class="wp-image-49679 size-full" src="http://robohub.org/wp-content/uploads/2015/05/Clearpath_Grizzly_Agbot_Seeding_Challenge.jpg" alt="Clearpath_Grizzly_Agbot_Seeding_Challenge" width="300" height="207" /><p id="caption-attachment-49679" class="wp-caption-text">Grizzly RUV in a corn field.</p></div>
<p>Grizzly is Clearpath’s largest all-terrain battery operated robot. The mobile research platform offers the performance of a mini-tractor and the precision of a robot with a max payload of 1320 lbs, max speed of 12 mph, 8 inches of ground clearance, and 5V, 12V, 24V and 48V user powers. See <a href="http://www.clearpathrobotics.com/grizzly/tech-specs/?utm_source=blog&amp;utm_medium=blog&amp;utm_campaign=agBOT_Challenge" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">here</a> for all technical specs.</p>
<p>Ready to participate in the agBOT 2016 challenge? Want to take advantage of this unique Grizzly grant opportunity? <a href="http://www.clearpathrobotics.com/grizzly/grizzly-request-quote/?utm_source=blog&amp;utm_medium=blog&amp;utm_campaign=agBOT_Challenge" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Get in touch</a> with one of our unmanned experts.</p>
<p><hr class="xh2  "><br />
<i>If you liked this article, you may also be interested in:</i></p>
<ul>
<li><a title="Drought and desertification: How robots might help" href="http://robohub.org/drought-and-desertification-how-robots-might-help/" rel="bookmark" data-wpel-link="internal">Drought and desertification: How robots might help</a></li>
<li><a title="2 agricultural robotics projects funded under latest Horizon 2020" href="http://robohub.org/2-agricultural-robotics-projects-funded-under-latest-horizon-2020/" rel="bookmark" data-wpel-link="internal">2 agricultural robotics projects funded under latest Horizon 2020</a></li>
<li><a title="Are agricultural robots ready? 27 companies profiled" href="http://robohub.org/are-agricultural-robots-ready-27-companies-profiled/" rel="bookmark" data-wpel-link="internal">Are agricultural robots ready? 27 companies profiled</a></li>
<li><a title="Will agricultural robots arrive in time to keep fruit and vegetable costs down?" href="http://robohub.org/will-agricultural-robots-arrive-in-time-to-keep-fruit-and-vegetable-costs-down/" rel="bookmark" data-wpel-link="internal">Will agricultural robots arrive in time to keep fruit and vegetable costs down?</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>Robots 101: Lasers</title>
		<link>https://robohub.org/robots-101-lasers/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Wed, 29 Apr 2015 21:05:36 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[LIDAR]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Vision]]></category>
		<guid isPermaLink="false">http://robohub.org/robots-101-lasers/</guid>

					<description><![CDATA[<p>By Ilia Baranov In this new Robots 101 series, we will be taking a look at how robots work, what makes designing them challenging, and how engineers at Clearpath Robotics tackle these problems. To successfully operate in the real world, robots need to be able to see obstacles around them, and locate themselves. Humans do [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/robots-101-lasers/" data-wpel-link="external" target="_blank">Robots 101 &#8211; Lasers</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 size-full wp-image-49067" src="http://robohub.org/wp-content/uploads/2015/04/mapping.jpg" alt="mapping" width="800" height="400" srcset="https://robohub.org/wp-content/uploads/2015/04/mapping.jpg 800w, https://robohub.org/wp-content/uploads/2015/04/mapping-425x212.jpg 425w, https://robohub.org/wp-content/uploads/2015/04/mapping-500x250.jpg 500w" sizes="(max-width: 800px) 100vw, 800px" /><br />
By Ilia Baranov</em></p>
<p>In this new <a href="http://robohub.org/tag/robots-101/" data-wpel-link="internal">Robots 101 series</a>, we will be taking a look at how robots work, what makes designing them challenging, and how engineers at Clearpath Robotics tackle these problems. To successfully operate in the real world, robots need to be able to see obstacles around them, and locate themselves. Humans do this mostly through sight, whereas robots can use any number of sensors. Today we will be looking at lasers, and how they contribute to robotic systems.</p>
<p><span id="more-48990"></span></p>
<h2><strong><img decoding="async" class="alignleft wp-image-49063 size-full" src="http://robohub.org/wp-content/uploads/2015/04/the-day-the-earth-stood-still-gort3.jpg" alt="the-day-the-earth-stood-still-gort3" width="475" height="317" srcset="https://robohub.org/wp-content/uploads/2015/04/the-day-the-earth-stood-still-gort3.jpg 475w, https://robohub.org/wp-content/uploads/2015/04/the-day-the-earth-stood-still-gort3-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2015/04/the-day-the-earth-stood-still-gort3-449x300.jpg 449w" sizes="(max-width: 475px) 100vw, 475px" />Overview</strong></h2>
<p>When you think of robots and lasers, the first image that comes to mind might come from science fiction; robots using laser weapons. However, almost all robots today use lasers for remote sensing. This means that the robot is able to tell, from a distance, some characteristics of an object. This can include size, reflective, color, etc. When the laser is used to measure distance in an arc around the robot, it is called LIDAR. <span style="line-height: 1.5;">LIDAR is a portmanteau of Light and Radar, essentially think of a sweeping radar beam shown in the films, using light.</span></p>
<p><strong style="color: #000000; background-color: #ffffff;">Function and Concepts</strong></p>
<div style="width: 651px" class="wp-caption alignleft"><img decoding="async" src="https://31.media.tumblr.com/e27ec98d7a33d1720021d87cd8e09e82/tumblr_nnl5uwaEoJ1s0pr7xo1_1280.gif" alt="" width="641" height="1391" /><p class="wp-caption-text">By Mike1024, via Wikimedia Commons</p></div>
<p>All LIDAR units operate using this basic set of steps:</p>
<p>1. Laser light is emitted from the unit (usually infrared)<br />
2. Laser light hits an object and is scattered<br />
3. Some of the light makes it back to the emitter<br />
4. The emitter measures the distance (more on how later)<br />
5. Emitter turns, and process begins again</p>
<p>A great visual deception of that process to the right.</p>
<h2><strong>Types of LIDAR sensing</strong></h2>
<p>How exactly the laser sensor measures the distance to an object depends on how accurate the data needs to be. Three different methods commonly found on LIDAR sensors are:</p>
<p><strong>Time of flight</strong><br />
The laser is emitted, and then received. The time difference is measured, and distance is simply (speed of light) x (time). This approach is very accurate, but also expensive due to the extremely high precision clocks needed on the sensor. Thus, it is usually only used on larger systems, and at longer ranges. Rare to use on robots</p>
<p><strong><br />
Phase difference</strong><br />
In this method, the emitted laser beam is modulated to a specific frequency. By comparing the phase shift of the returned signal on a few different frequencies, the distance is calculated. This is the most common way laser measurement is done. However, it tends to have limited range, and is less accurate than time of flight. Almost all of our robots use this.</p>
<p><strong><img decoding="async" class="alignleft wp-image-49062 size-full" src="http://robohub.org/wp-content/uploads/2015/04/Untitled-140x300.png" alt="Untitled-140x300" width="140" height="300" />Angle of incidence</strong><br />
The cheapest and easiest way to do laser range-finding is by angle of incidence. Essentially, by knowing what angle the reflected laser light hits the sensor, we can estimate the distance. However, this method tends to be of low quality. The Neato line of robotic vacuum cleaners use this technology.</p>
<p>Another thing to note is that so far, we have only discussed 2D LIDAR sensors. This means they are able to see a planar slice of the world around them, but not above or below. This has limitations, as the robot is then unable to see obstacles lower or higher than that 2d plane. To fix this issue, either multiple laser sensors can be used, or the laser sensor can be rotated or “nodded” up and down to take multiple scans. The first solution is what the Velodyne line of 3D LIDAR sensors employ, while the second solution tends to be a hack done by roboticists. The issue with nodding a LIDAR unit is a drastic reduction of refresh rate, from tens of Hz, down to 1 Hz or less.</p>
<h2><strong>Manufacturers and Uses</strong></h2>
<p>Some of the manufacturers we tend to use are SICK, Hokuyo, and Velodyne.<br />
This is by no means an exhaustive list, just the ones we use most often.</p>
<p><strong>SICK</strong><br />
Most of our LIDARs are made by SICK. Good combo of price, size, rugged build, and software support. Based in Germany</p>
<p><strong>Hokuyo</strong><br />
Generally considered cheaper than SICK, in larger quantities. Some issues with fragility, and software support is not great. Based in Japan</p>
<p><strong>Velodyne</strong><br />
Most expensive, used only when robot MUST see everything in the environment. Based in US.</p>
<p>Once the data is collected, it can be used for a variety of reasons. For robots, these tend to be:</p>
<ul>
<li>Mapping
<ul>
<li>Use the laser data to find out dimensions and locations of obstacles and rooms. This allows the robot to find its position (localisation) and also report dimensions of objects. The title image of this article shows the Clearpath Robotics Jackal mapping a room.</li>
</ul>
</li>
<li>Survey
<ul>
<li>Similar to mapping, however this tends to be outside. The robot collects long range data on geological formations, lakes, etc. This data can then be used to create accurate maps, or plan out mining operations.</li>
</ul>
</li>
<li>Obstacle Avoidance
<ul>
<li>Once an area is mapped, the robot can navigate autonomously around it. However, obstacles that were not mapped (for example, squishy, movable humans) need to be avoided.</li>
</ul>
</li>
<li>Safety Sensors
<ul>
<li>In cases where the robot is very fast or heavy, the sensors can be configured to automatically cut out motor power if the robot gets too close to people. Usually, this is a completely hardware-based feature.</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<h2><strong>Selection Criteria</strong></h2>
<p>A lot of criteria is used to select the best sensor for a given application. The saying goes that an engineer is someone who can do for $1 what any fool can do for $2. Selecting the right sensor for the job not only reduces cost, but also ensures that the robot has the most flexible and useful data collection system.</p>
<ul>
<li>Range
<ul>
<li>How far can laser sensor see? This impacts how fast a robot is able to move, and how well it is able to plan.</li>
</ul>
</li>
<li>Light Sensitivity
<ul>
<li>Can the laser work properly outdoors in full sunlight? Can it work with other lasers shining at it?</li>
</ul>
</li>
<li>Angular Resolution
<ul>
<li>What is the resolution of the sensor? More angular resolution means more chances of seeing small objects.</li>
</ul>
</li>
<li>Field of view
<ul>
<li>What is the field of view? A greater field of view provides more data.</li>
</ul>
</li>
<li>Refresh rate
<ul>
<li>How long does it take the sensor to return to the same point? The faster the sensor is, the faster the robot can safely move.</li>
</ul>
</li>
<li>Accuracy
<ul>
<li>How much noise is in the readings? How much does it change due to different materials?</li>
</ul>
</li>
<li>Size
<ul>
<li>Physical dimensions, but also mounting hardware, connectors, etc</li>
</ul>
</li>
<li>Cost
<ul>
<li>What fits the budget?</li>
</ul>
</li>
<li>Communication
<ul>
<li>USB? Ethernet? Proprietary communication?</li>
</ul>
</li>
<li>Power
<ul>
<li>What voltage and current is needed to make it work?</li>
</ul>
</li>
<li>Mechanical (strength, IP rating)
<ul>
<li>Where is the sensor going to work? Outdoors? In a machine shop?</li>
</ul>
</li>
<li>Safety
<ul>
<li>E-stops</li>
<li>regulation requirements</li>
<li>software vs. hardware safety</li>
</ul>
</li>
</ul>
<p>For example, here is a collected spec sheet of the SICK TIM551.</p>
<table style="height: 593px; width: 476px;" border="1" width="1009">
<tbody>
<tr>
<td width="227">Range (m)</td>
<td width="227">0.05 – 10 (8 with reflectivity below 10%)</td>
</tr>
<tr>
<td width="227">Field of View (degrees)</td>
<td width="227">270</td>
</tr>
<tr>
<td width="227">Angular Resolution (degrees)</td>
<td width="227">1</td>
</tr>
<tr>
<td width="227">Scanning Speed (Hz)</td>
<td width="227">15</td>
</tr>
<tr>
<td width="227">Range Accuracy (mm)</td>
<td width="227">±60</td>
</tr>
<tr>
<td width="227">Spot Diameter (mm)</td>
<td width="227">220 at 10m</td>
</tr>
<tr>
<td width="227">Wavelength (nm)</td>
<td width="227">850</td>
</tr>
<tr>
<td width="227">Voltage (V)</td>
<td width="227">10 – 28</td>
</tr>
<tr>
<td width="227">Power (W) (nominal/max)</td>
<td width="227">3</td>
</tr>
<tr>
<td width="227">Weight (lb/kg)</td>
<td width="227">0.55/0.25</td>
</tr>
<tr>
<td width="227">Durability (poor) 1 – 5 (great)</td>
<td width="227">4 (It is IP67, metal casing)</td>
</tr>
<tr>
<td width="227">Output Interface</td>
<td width="227">Ethernet, USB (non-IP67)</td>
</tr>
<tr>
<td width="227">Cost (USD)</td>
<td width="227">~2,000</td>
</tr>
<tr>
<td width="227">Light sensitivity</td>
<td width="227">This sensor can only be used indoors.</td>
</tr>
<tr>
<td width="227">Other</td>
<td width="227">Can synchronize for multiple sensors.Connector mount rotates nicely.</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><hr class="xh2  "><br />
<i>If you liked this article, you may also be interested in:</i></p>
<ul>
<li><a title="ROS 101: Intro to the Robot Operating System" href="http://robohub.org/ros-101-intro-to-the-robot-operating-system/" rel="bookmark" data-wpel-link="internal">ROS 101: Intro to the Robot Operating System</a></li>
<li><a title="ROS 101: A practical example" href="http://robohub.org/ros-101-a-practical-example/" rel="bookmark" data-wpel-link="internal">ROS 101: A practical example</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="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="Robots Podcast: Soft Robotics Toolkit, with Donal Holland" href="http://robohub.org/robots-soft-robotics-toolkit/" rel="bookmark" data-wpel-link="internal">Robots Podcast: Soft Robotics Toolkit, with Donal Holland</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>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Clearpath and Christie demo 3D video game with robots</title>
		<link>https://robohub.org/clearpath-and-christie-demo-3d-video-game-with-robots/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Tue, 31 Mar 2015 17:05:13 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[mapping & surveillance]]></category>
		<category><![CDATA[research]]></category>
		<guid isPermaLink="false">http://robohub.org/clearpath-and-christie-demo-3d-video-game-with-robots/</guid>

					<description><![CDATA[<p>By Ryan Gariepy For our&#160;recent &#8220;hack week,&#8221; we teamed up with one of the most innovative visual technology companies in the world: Christie, which happens to be a quick 15 minute drive from the Clearpath HQ. What we made&#160;was, well, awesome&#8230; As seems to be the norm, let&#8217;s start with the&#160;awesome: This is something that [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/hack-week-augmented-reality/" data-wpel-link="external" target="_blank">Clearpath and Christie Make 3D Video Game with Robots</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="alignleft wp-image-47737 size-full" src="http://robohub.org/wp-content/uploads/2015/03/Christie-Clearpath-Hack-Week.jpg" alt="Christie-Clearpath-Hack-Week" width="520" height="260" srcset="https://robohub.org/wp-content/uploads/2015/03/Christie-Clearpath-Hack-Week.jpg 520w, https://robohub.org/wp-content/uploads/2015/03/Christie-Clearpath-Hack-Week-425x212.jpg 425w, https://robohub.org/wp-content/uploads/2015/03/Christie-Clearpath-Hack-Week-500x250.jpg 500w" sizes="(max-width: 520px) 100vw, 520px" /></em><div style="clear:both"></div></p>
<p><em>By Ryan Gariepy </em></p>
<p>For our recent “hack week” we teamed up with one of the most innovative visual technology companies in the world, Christie, to make a 3D video game with robots. How did it all come together?<span id="more-47722"></span></p>
<p>As seems to be the norm, let’s start with the awesome:</p>
<div class="keep-aspect"><iframe title="Clearpath and Christie Make a 3D Video Game with Robots" width="500" height="281" src="https://www.youtube-nocookie.com/embed/Jb7vJxH-CSU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p></p>
<p>&nbsp;</p>
<h2><strong>Inspiration</strong></h2>
<p>In late October, a <a title="Video from MIT" href="http://newsoffice.mit.edu/2014/system-shows-robot-intentions-1029" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">video from MIT</a> was making the rounds around at Clearpath. Since we usually have a lot of robots on hand and like doing <a title="Interesting Demos" href="http://www.clearpathrobotics.com/blog/myo-ros-robots/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">interesting demos</a>, we reached out to <a title="Shayegan" href="http://www.mit.edu/~shayegan/research_ar.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Shayegan </a>to see if we could get some background information. He provided some insights into the challenges he faced when implementing this, and I was convinced that our team could pull a similar demo together so we could see how it worked in person.</p>
<p>Here’s what MIT’s setup looked like:</p>
<p>(Video: Melanie Gonick, MIT News. Additional footage and computer animations: Shayegan Omidshafiei)</p>
<div class="keep-aspect"><iframe title="Reading robots&#039; minds" width="500" height="281" src="https://www.youtube-nocookie.com/embed/utM9zOYXgUY?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>At the most fundamental, this demo needs:</p>
<ul>
<li>A small fleet of robots</li>
<li>A way for those robots to know where they are in the world</li>
<li>A computer to bring all of their information together and render a scene</li>
<li>A method of projecting the scene in a way which is aligned with the same world the robots use</li>
</ul>
<p>In MIT’s case, they have a combination of iRobot Creates and quadrotors as their robot fleet, a <a title="VICON" href="http://www.clearpathrobotics.com/vicon/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">VICON </a>motion capture system for determining robot location, a Windows computer running ROS in a virtual machine as well as projector edge-blending software, and a set of 6 projectors for the lab.</p>
<p>There were three things we wanted to improve on for our demo. First, we wanted to run all-ROS, and use RViz for visualizations. That removes the performance hit from running RViz in a VM, and also means that any visualization plugins we came up with could be used anywhere Clearpath uses ROS. Second, we wanted to avoid using the VICON system. Though we have a VICON system on hand in our lab and are big fans, we were already using it for some long-term navigation characterization at the time, so it wasn’t available to us. Finally, we wanted to make the demo more interactive.</p>
<h2><strong>Improvement #1: All-ROS, all the time!</strong></h2>
<p>To get this taken care of, we needed a way to either run edge-blending software on Linux, or to use projectors that did the edge blending themselves. Fortunately, something that might be a little known fact to our regular audience is that <a title="Christie Digital" href="http://www.christiedigital.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Christie</a> is about 10 minutes away from Clearpath HQ and they make some of the best digital projectors in the world that, yes, do edge blending and more. A few emails back and forth, and they were in!</p>
<p>For this project, Christie arrived with four Christie HD14K-M 14,000 lumens DLP® projectors and two cameras. The projectors use Christie AutoCal<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> software and have Christie Twist<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> software embedded right in. Christie rigged the four projectors in a 2 x 2 configuration on the ceiling of our warehouse. The cameras captured what was happening on the floor and sent that information on the Christie AutoCal<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> software, which then automatically aligned and blended the four projectors into one giant seamless 30 foot projection mapped digital campus.</p>
<div id="attachment_47735" style="width: 1034px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-47735" class="size-full wp-image-47735" src="http://robohub.org/wp-content/uploads/2015/03/A002_C013_0204QN.0000137-1024x413.jpg" alt="Christie sets up the 3D Projection system. (Photo courtesy of Christie.)" width="1024" height="413" srcset="https://robohub.org/wp-content/uploads/2015/03/A002_C013_0204QN.0000137-1024x413.jpg 1024w, https://robohub.org/wp-content/uploads/2015/03/A002_C013_0204QN.0000137-1024x413-425x171.jpg 425w, https://robohub.org/wp-content/uploads/2015/03/A002_C013_0204QN.0000137-1024x413-500x201.jpg 500w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-47735" class="wp-caption-text">Christie sets up the 3D Projection system. (Photo courtesy of Christie.)</p></div>
<p>&nbsp;</p>
<h2><strong>Improvement #2: No motion capture</strong></h2>
<p>Getting rid of the motion capture system was even easier. We already have localization and mapping software for our robots and the <a title="Jackal" href="http://www.clearpathrobotics.com/jackal/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Jackals</a> we had on hand already had LIDARs mounted. It was a relatively simple matter to map out the world we’d operate in and share the map between the two robots.</p>
<p>Now, I will make a slight aside here… Multi-robot operation in ROS is still not yet what one would call smooth. There are a few good solutions, but not one that is clearly “the one” to use. Since all of our work here had to fit into a week, we took the quick way out. We configured all of the robots to talk to a single ROS Master running on the computer connected to the computers, and used namespaces to ensure the data for each robot stayed tied to each robot. The resulting architecture was as follows:</p>
<img decoding="async" class="aligncenter size-full wp-image-47736" src="http://robohub.org/wp-content/uploads/2015/03/Augmented-Reality-Blog-Diagram-1.png" alt="Augmented-Reality-Blog-Diagram-1" width="808" height="465" srcset="https://robohub.org/wp-content/uploads/2015/03/Augmented-Reality-Blog-Diagram-1.png 808w, https://robohub.org/wp-content/uploads/2015/03/Augmented-Reality-Blog-Diagram-1-425x244.png 425w, https://robohub.org/wp-content/uploads/2015/03/Augmented-Reality-Blog-Diagram-1-175x100.png 175w, https://robohub.org/wp-content/uploads/2015/03/Augmented-Reality-Blog-Diagram-1-500x287.png 500w" sizes="(max-width: 808px) 100vw, 808px" />
<p>All we had to do to sync the robot position and the projector position was to start training the map from a marked (0,0,0) point on the floor.</p>
<h2><strong>Improvement #3: More interactivity</strong></h2>
<p>This was the fun part. We had two robots and everyone loves video games, so we wrote a new package that uses Python (via <a title="rospy" href="http://wiki.ros.org/rospy" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">rospy</a>), <a title="GDAL" href="http://www.gdal.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">GDAL</a>, and <a title="shapely" href="https://pypi.python.org/pypi/Shapely" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Shapely </a>to create a real-life PvP game with our Jackals. Each Jackal was controlled by a person and had the usual features we all expect from video games – weapons, recharging shields, hitpoints, and sound effects. All of the data was rendered and projected in real-time along with our robots’ understanding of their environment.</p>
<p>And, as a final bonus, we used our existing path planning code to create a entire “AI” for the robots. Since the robots already know where they are and how to plan paths, this part was done in literally minutes.</p>
<h2><strong>The real question</strong></h2>
<p>How do I get one for myself?</p>
<p><strong>Robots</strong>: Obviously, we sell these. I’d personally like to see this redone with <a title="Grizzly" href="http://www.clearpathrobotics.com/grizzly/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grizzlies</a>.</p>
<p><strong>Projectors</strong>: I’m sure there are open-source options or other prosumer options similar to how MIT did it, but if you want it done really well, Christie will be happy to help.</p>
<p><strong>Software</strong>: There is an experimental RViz branch <a title="RVIZ" href="https://github.com/krmoule/rviz" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">here </a>which enables four extra output windows from RViz.</p>
<p>The majority of the on-robot software is either standard with the Jackal or is slightly modified to accommodate the multi-robot situation (and can also be found at our Jackal <a title="github" href="https://github.com/jackal" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">github repository</a>). We intend on contributing our RViz plugins back, but they too are a little messy. Fortunately, there’s a good general tutorial <a title="Tutorial" href="http://docs.ros.org/indigo/api/rviz_plugin_tutorials/html/display_plugin_tutorial.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">here </a>on creating new plugins.</p>
<p>The game itself is very messy code, so we’re still keeping it hidden for now. Sorry (sad)<br />
If you’re a large school or a research group, please <a title="get in touch" href="http://www.clearpathrobotics.com/blog/hack-week-augmented-reality/sales@clearpathrobotics.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">get in touch directly</a> and we’ll see how we can help.</p>
<p>Happy gaming!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MATLAB Robotics System Toolbox and ROS</title>
		<link>https://robohub.org/matlab-robotics-system-toolbox-and-ros/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Thu, 26 Mar 2015 13:17:41 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://robohub.org/matlab-robotics-system-toolbox-and-ros/</guid>

					<description><![CDATA[<p>By Ilia Baranov Recently, Mathworks released a new toolbox for Matlab. This is exciting for a number of reasons: it includes everything from data analysis to coordination of multiple robots. In today&#8217;s post, we explore using this Robotics System Toolbox to connect to both real and virtual Jackal robots. The toolbox has made a number [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/matlab-robotics-system-toolbox-and-ros/" data-wpel-link="external" target="_blank">MATLAB Robotics System Toolbox and ROS</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="alignleft size-full wp-image-47557" src="http://robohub.org/wp-content/uploads/2015/03/Capture.jpg" alt="Capture" width="849" height="432" srcset="https://robohub.org/wp-content/uploads/2015/03/Capture.jpg 849w, https://robohub.org/wp-content/uploads/2015/03/Capture-425x216.jpg 425w, https://robohub.org/wp-content/uploads/2015/03/Capture-500x254.jpg 500w" sizes="(max-width: 849px) 100vw, 849px" />
<p><em>By Ilia Baranov</em></p>
<p>Recently, Mathworks released a new toolbox for Matlab. This is exciting for a number of reasons: it includes everything from data analysis to coordination of multiple robots. In today’s post, we explore using this Robotics System Toolbox to connect to both real and virtual Jackal robots.<span id="more-47539"></span></p>
<p>The toolbox has made a number of improvements since the “beta” version that we wrote <a title="Introducting Matlab for ROS" href="http://www.clearpathrobotics.com/blog/ros-for-matlab/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">a tutorial on a while ago</a>. Matlab now supports services, parameters, analyzing rosbag data, and has a very robust series of tutorials. They even support generating code in Matlab Simulink, and then having it run on a ROS robot, with no extra downloads needed. This should make development of control algorithms faster for robots, and enable fairly detailed testing outside of ROS.</p>
<p>The following video looks at running a Jackal in circles, in both real and virtual space. It also compares a simple obstacle avoidance program, using lidar, that wanders around the environment.</p>
<p>https://youtu.be/K8_wjMCHQMw</p>
<p>To run the obstacle avoidance sample on a Jackal, ensure that the Matlab Robotics System Toolbox is installed, and download this file: <a title="Jackal_New.m" href="https://s3.amazonaws.com/CPR_PUBLIC/Jackal_New.m" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Jackal_New.m</a></p>
<p>Change the first IP address to your Jackal (real or simulated) and the second to your own computer (the one running Matlab).</p>
<p>If you are ready to try analyzing bag data, download our sample file from the run shown in the video, and plot the laser data.</p>
<p><a title="laserAvoid_Real.bag" href="https://s3.amazonaws.com/CPR_PUBLIC/laserAvoid_Real.bag" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">laserAvoid_Real.bag</a> , <a title="scan_plot.m" href="https://s3.amazonaws.com/CPR_PUBLIC/scan_plot.m" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">scan_plot.m</a></p>
<p>Link to the toolbox:</p>
<p><a href="http://www.mathworks.com/products/robotics/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://www.mathworks.com/products/robotics/</a></p>
<p>Looking for other Clearpath tutorials? Check <a href="http://robohub.org/archives/authors/clearpath-robotics/" data-wpel-link="internal">these </a>out.</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>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>NERVE Center: The robot playground</title>
		<link>https://robohub.org/nerve-center-the-robot-playground/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Wed, 19 Nov 2014 16:27:24 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[research]]></category>
		<guid isPermaLink="false">http://robohub.org/nerve-center-the-robot-playground/</guid>

					<description><![CDATA[<p>By Meghan Hennessey NERVE Center, nerve-racking? Not for our bots! We put them to the test across all of the courses at NERVE Center and, we&#8217;re proud to say, they passed with flying colors. What&#8217;s the NERVE Center you ask? It&#8217;s the&#160;robot testing facility at the University of Massachusetts Lowell and THE&#160;place to be when [&#8230;]</p>
<p>The post <a rel="nofollow external noopener noreferrer" href="http://www.clearpathrobotics.com/blog/robot-playground-nerve-center/" data-wpel-link="external" target="_blank">NERVE Center: The Robot Playground</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[<div id="attachment_42672" style="width: 810px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-42672" class="size-full wp-image-42672" alt="Jackal on the water ramp at the University of Massachusetts Lowell NERVE Center in Boston." src="http://robohub.org/wp-content/uploads/2014/11/Nerve-Centre-3.jpg" width="800" height="531" srcset="https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre-3.jpg 800w, https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre-3-425x282.jpg 425w, https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre-3-451x300.jpg 451w" sizes="(max-width: 800px) 100vw, 800px" /><p id="caption-attachment-42672" class="wp-caption-text">Jackal on the water ramp at the University of Massachusetts Lowell NERVE Center in Boston.</p></div>
<p><em>By Meghan Hennessey</em></p>
<p>What’s the <a href="http://nerve.uml.edu/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">NERVE Center</a>, you ask? It’s the robot testing facility at the University of Massachusetts Lowell and THE place to be when visiting the Boston area. We couldn’t pass up the opportunity to check out the site and test our bots across all NERVE Center courses. <span id="more-41399"></span></p>
<div id="attachment_42674" style="width: 810px" class="wp-caption alignleft"><img decoding="async" aria-describedby="caption-attachment-42674" class=" wp-image-42674 " alt="Kingfisher in the NERVE Center's fording basin." src="http://robohub.org/wp-content/uploads/2014/11/Nerve-Centre_1.jpg" width="800" height="531" srcset="https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre_1.jpg 800w, https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre_1-425x282.jpg 425w, https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre_1-451x300.jpg 451w" sizes="(max-width: 800px) 100vw, 800px" /><p id="caption-attachment-42674" class="wp-caption-text">Kingfisher in the NERVE Center&#8217;s fording basin.</p></div>
<h2><strong>What to expect at NERVE Center</strong></h2>
<p>Since we were in Boston for <a title="RoboBusiness" href="http://www.robobusiness.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">RoboBusiness </a>2014, the NERVE Center opened its doors to robot manufactures who were in town for the conference; we took full advantage of the invitation to run <a title="Husky" href="http://www.clearpathrobotics.com/husky" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Husky</a>, <a title="Jackal" href="http://www.clearpathrobotics.com/jackal" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Jackal </a>and <a title="Kingfisher" href="http://www.clearpathrobotics.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Kingfisher </a>on as many test courses as we could. We drove through the sand and gravel bays, the “Ant Farm” (a series of tunnels filled with obstacles), and ran up and down the wet ramp in simulated rain. We even threw Kingfisher into the mix so it could swim some laps in the water filled “fording basin.” All the course layouts (and additional details about NERVE Center) can be seen here: <a title="Nerve Center" href="http://nerve.uml.edu/test-courses.php" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://nerve.uml.edu/test-courses.php</a></p>
<p>It was a blast to run to run our robots through the courses, and we’re proud to say, they passed with flying colors! We owe a huge thanks to the center for allowing us to stop by for some fun on the robot-friendly playground.<br />
<img decoding="async" class="aligncenter size-full wp-image-42673" alt="Nerve-Centre-2" src="http://robohub.org/wp-content/uploads/2014/11/Nerve-Centre-2.jpg" width="800" height="531" srcset="https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre-2.jpg 800w, https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre-2-425x282.jpg 425w, https://robohub.org/wp-content/uploads/2014/11/Nerve-Centre-2-451x300.jpg 451w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h2><strong>Why is NERVE Center so useful?</strong></h2>
<p>The NERVE Center was started in 2012 to provide standardized test courses, testing services, and applications prototyping robotic vehicles – it’s like it was made for our bots!</p>
<p>With the NERVE Center’s standardized courses, developers can test and validate their robots’ specifications, durability and function. Field robots are often required to meet strict performance requirements, and the NERVE Center offers 3rd party validation for questions such as:</p>
<ul>
<li>How large a gap can the robot cross?</li>
<li>How steep of a slope can the robot climb?</li>
<li>What kind of obstacles can a robot traverse?</li>
</ul>
<p>This type of testing is incredibly useful for robot developers as it provides 3rd party validation of the robot’s performance and specs. Many of the courses were developed in conjunction with NIST (National Institute of Standards and Technology) and the US army.</p>
<h2><strong>See the robot testing for yourself!</strong></h2>
<p>We’ve told you how awesome this robot wonderland is, and now, it’s time to see it for yourself. Watch as the Clearpath robots invade NERVE Center and get tested to the max!</p>
<p>http://youtu.be/IjEa3ob88s4</p>
<p><em>This post originally appeared on the <a href="http://www.clearpathrobotics.com/blog/robot-playground-nerve-center/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Clearpath Robotics</a> blog.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Building a robotics company</title>
		<link>https://robohub.org/building-a-robotics-company/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Tue, 30 Sep 2014 17:39:51 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[Ryan Gariepy]]></category>
		<category><![CDATA[startups]]></category>
		<guid isPermaLink="false">http://robohub.org/building-a-robotics-company/</guid>

					<description><![CDATA[By Ryan Gariepy
As we’ve made more of a name for ourselves within various startup communities,we’re commonly asked how we moved from our beginnings with little resources and no connections to a worldwide concern in robotics, especially with the ﬁ...]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="size-full wp-image-36405" alt="gariepy-ryan_Clearpath" src="http://robohub.org/wp-content/uploads/2014/08/gariepy-ryan_Clearpath.jpg" 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" /><br />
<em>By Ryan Gariepy</em></p>
<p>As we’ve made more of a name for ourselves within various startup communities, we’re commonly asked how we moved from our beginnings with little resources and no connections to a worldwide concern in robotics, especially with the ﬁeld exploding as it has. In truth, there is a great deal to be said for “being in the right place at the right time”, but there are a few key simple lessons we’ve learned along the way that others with good ideas might be able to beneﬁt from.<span id="more-38939"></span></p>
<p>Some relevant background ﬁrst. McKinsey &amp; Company popularized the “3 Horizons” concept, where an existing company should be doing three things:</p>
<ul>
<li>It should be looking for new opportunities and markets (Horizon 3)</li>
<li>It should build businesses from these new opportunities and markets when they become viable (Horizon 2)</li>
<li>It should sustain and extend its core businesses (Horizon 1)</li>
</ul>
<p>One way to frame the goal of a startup is to get a business model from Horizon 3 to Horizon 1 before the money runs out. The big diﬀerence between a startup and an established company is that an established company tends to have time and resources on its side. A group of four of us working from a combination of school labs, living rooms, and basements doesn’t.</p>
<p>However, the concept still holds. How does one get from having an Idea to being a Company, where the latter hopefully implies things like having vacation time and salaries?</p>
<p>I’m not going to go into detail here about how one should or should not deﬁne or develop a product best, because there are innumerable ways and opinions put forth on that topic in particular, but we’ve found there are three basic stages you’ll probably go through while building out your team and company that correspond very closely to the 3 Horizons. Ideally, you’ll make it through these stages as fast as you can, because making it to the end means you can start all over again…but bigger! First, there’s the Idea.</p>
<div id="attachment_38992" style="width: 299px" class="wp-caption"><img decoding="async" aria-describedby="caption-attachment-38992" src="http://robohub.org/wp-content/uploads/2014/09/startup_blog.png" alt="Phase 1: The Idea" width="289" height="217" class="size-full wp-image-38992" /><p id="caption-attachment-38992" class="wp-caption-text">Phase 1: The Idea</p></div>
<p>This is why I’m usually asked about this. I run into a person or six at a conference and they have an Idea. Since this is probably a robotics conference of some kind, this Idea has a Prototype already, which is probably good enough for putting up on a crowdfunding site. And, because startup communities in tech hubs the world over are doing their jobs, these people probably have a Market in mind. Our initial work is done. Unfortunately, they’re wanting to know what they need next, and the answer is usually “everything”. Or, at least, a “Startup”.</p>
<div id="attachment_38993" style="width: 299px" class="wp-caption"><img decoding="async" aria-describedby="caption-attachment-38993" src="http://robohub.org/wp-content/uploads/2014/09/startup_blog-1.png" alt="Phase 2: The Everything" width="289" height="217" class="size-full wp-image-38993" /><p id="caption-attachment-38993" class="wp-caption-text">Phase 2: The Everything</p></div>
<p>The idea is still important, but now getting it into shape for customers is important. Of equal importance is deﬁning or creating your market, supporting your customers, making sure there’s cash in the bank, determining which features are releasing when, and it goes on. Here lies the difficulty; every new idea needs a startup built with a slightly different recipe.</p>
<p>The common theme I’d like to get across is that once you’ve decided to move past that ﬁrst idea, you’re on the path of having to build the rest of the Startup, and you’re going to be learning a lot along the way. You’ll have a lot of different things to start caring about all of a sudden over and above your idea, and you’ll also be taking on more ﬁnancial and personal risk. So, it’s best that you stop being a Startup as soon as possible and become a Company. This is one of the key reasons behind the “Lean Startup” approach – <span  class="tweetquote"><a href="https://twitter.com/home/?status=startups are risky and unstable, so get from Idea to Company as fast as possible https://robohub.org/building-a-robotics-company/ @Robohub " target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"> startups are risky and unstable, so get from Idea to Company as fast as possible&nbsp;</a></span>.</p>
<div id="attachment_38994" style="width: 299px" class="wp-caption"><img decoding="async" aria-describedby="caption-attachment-38994" src="http://robohub.org/wp-content/uploads/2014/09/startup_blog-2.png" alt="Phase 3: Sustainability" width="289" height="217" class="size-full wp-image-38994" /><p id="caption-attachment-38994" class="wp-caption-text">Phase 3: Sustainability</p></div>
<p>Now, you’ve not only incorporated the idea into a sustainable business (Horizon 1), you’re building a team and structure that help you get your other ideas into the world, whether by applying your ideas into similar products and markets (Horizon 2), or by going all the way back to formula with new ideas based on the experience and team you’ve built so far (Horizon 3).</p>
<p>For those of you with ideas, don’t be discouraged by how small the idea might appear in the end once it’s examined as part of the greater whole. It is necessary. However, it’s not sufficient by far, and it’s best to go into starting an endeavour like this with at least a bit of awareness of what’s waiting on the other side.</p>
<p>—</p>
<p><strong>About the Author</strong></p>
<p>Ryan Gariepy is Co-Founder and CTO of Clearpath Robotics. He drives the development of Clearpath’s autonomous control software modules while guiding the continued expansion of Clearpath’s research platform lines, environmental surveying technology, and custom industrial automation solutions.</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>Grizzly on the Mars Emulation Terrain at NCFRN</title>
		<link>https://robohub.org/grizzly-on-the-mars-emulation-terrain-at-ncfrn/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Wed, 09 Jul 2014 19:18:03 +0000</pubDate>
				<category><![CDATA[opinions]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Clearpath]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[research]]></category>
		<guid isPermaLink="false">http://www.clearpathrobotics.com/?p=3421</guid>

					<description><![CDATA[By Ryan Gariepy
I recently spent over a week in Montreal talking with – and learning from – the Canadian field robotics community, first at the Computer and Robot Vision (CRV) conference and then at the NCFRN Field Trials. This was my first time a...]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="alignleft size-full wp-image-34469" alt="ncfrnblog3" src="http://robohub.org/wp-content/uploads/2014/06/ncfrnblog3.jpg" width="800" height="571" srcset="https://robohub.org/wp-content/uploads/2014/06/ncfrnblog3.jpg 800w, https://robohub.org/wp-content/uploads/2014/06/ncfrnblog3-425x303.jpg 425w, https://robohub.org/wp-content/uploads/2014/06/ncfrnblog3-420x300.jpg 420w" sizes="(max-width: 800px) 100vw, 800px" />
<p><em>by Ryan Gariepy</em></p>
<p>I recently spent over a week in Montreal talking with – and learning from – the Canadian field robotics community, first at the <a title="CRV" href="http://www.computerrobotvision.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Computer and Robot Vision</a> (CRV) conference and then at the <a title="ncfrn" href="http://ncfrn.mcgill.ca/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">NCFRN Field Trials</a>. <span id="more-34276"></span>This was my first time attending CRV since I spoke at the 2012 conference in Toronto, and it’s quite inspiring how much robotics is spreading throughout Canada. Keynote speakers were Raff D’Andrea from ETH-Z and Frank Dellaert from Georgia Tech, both of whom had excellent talks. Bonus points to Frank for pointing out <a title="factor graphs" href="http://en.wikipedia.org/wiki/Factor_graph" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">factor graphs</a> to me for the first time, and Raff for bringing the <a title="tabletop demo" href="https://www.youtube.com/watch?v=n_6p-1J551Y" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">best tabletop demo</a> ever!</p>
<img decoding="async" class="alignleft size-full wp-image-34470" alt="ncfrnblog4" src="http://robohub.org/wp-content/uploads/2014/06/ncfrnblog4.jpg" width="800" height="571" srcset="https://robohub.org/wp-content/uploads/2014/06/ncfrnblog4.jpg 800w, https://robohub.org/wp-content/uploads/2014/06/ncfrnblog4-425x303.jpg 425w, https://robohub.org/wp-content/uploads/2014/06/ncfrnblog4-420x300.jpg 420w" sizes="(max-width: 800px) 100vw, 800px" />
<div class="minitext">Testing out new software algorithms on Kingfisher</div>
<p>CRV transitioned right into the opening meetings of the NCFRN Field Trials. Or, for those of you who don’t like nested acronyms, the National Science and Engineering Research Council Canadian Field Robotics Network Field Trials. The NCFRN makes up Canada’s leading field robotics researchers, companies, and supporting government organizations, and has just marked its second year in existence. The first two days are filled with presentations, seminars, and poster sessions, and from there it’s into the eponymous field. Something which was both surprising and inspiring for me was seeing that Clearpath hardware represented every single ground vehicle and surface vessel in the poster session.</p>
<p>Spread from the Mars Emulation Terrain at the Canadian Space Agency to the east (aka, the “Mars Yard”) to the McGill MacDonald campus to the west, the field trials were quite the experience. Researchers and partners were able to see the algorithms operating live. They were able to collaborate on combining their technologies, and, in the most extreme cases, swapped code between robots to test how robust their approaches were. In my opinion, one of the most valuable aspects of the field trials is improving how testing and deploying autonomous vehicles in remote locations is completed. Teams’ preparations ranged from being as minimal and lightweight as possible to turning an entire cube van into a remote lab.</p>
<p>This years’ field trials also mark an important milestone for Clearpath Robotics: It’s the first time we’ve seen someone make coffee using our robots (at least, the first time we’re aware of it). Apparently it’s easier to plug a coffee maker into a <a title="Grizzly" href="http://clearpathrobotics.com/grizzly" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grizzly </a>than it is to run an extension cord. I can understand why they were making coffee; this was the <a title="asrl team" href="http://asrl.utias.utoronto.ca/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ASRL team</a> which did 26 repeated traverses of nearly a kilometer each based on a single, visually taught route. And, since the ASRL has a thing for setting videos of our robots to music, here’s the <a title="Teddy Bear picnic" href="https://www.youtube.com/watch?v=EiUC9RvSXUY" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">research set to music</a>.</p>
<img decoding="async" class="alignleft size-full wp-image-34468" alt="ncfrnblog5" src="http://robohub.org/wp-content/uploads/2014/06/ncfrnblog5.jpg" width="800" height="571" srcset="https://robohub.org/wp-content/uploads/2014/06/ncfrnblog5.jpg 800w, https://robohub.org/wp-content/uploads/2014/06/ncfrnblog5-425x303.jpg 425w, https://robohub.org/wp-content/uploads/2014/06/ncfrnblog5-420x300.jpg 420w" sizes="(max-width: 800px) 100vw, 800px" />
<div class="minitext">Taking Husky for a walk in Montreal at NCFRN</div>
<p>I’ll close off by sharing the kind of experience which keeps us going: On the last day of the trials, I could only see six robots left rolling around the Mars Yard. There were three kinds, and all were robots designed and built by the Clearpath team – we’re thrilled to see that our work is having an impact on the robotics community and we can’t wait to see how Year 3 Trials will go next spring!</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>Tweet to drive a robot!</title>
		<link>https://robohub.org/tweet-to-drive-a-robot/</link>
		
		<dc:creator><![CDATA[Clearpath Robotics]]></dc:creator>
		<pubDate>Fri, 13 Jun 2014 20:04:01 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Clearpath Robotics]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[Husky]]></category>
		<guid isPermaLink="false">http://robohub.org/?p=33052</guid>

					<description><![CDATA[Happy Birthday!! Clearpath is officially 5 years old and what better way to celebrate than let all of our fans drive a robot. No matter where you are in the world, you can experience what it’s like to drive Husky – well, a very mini, hacked-together Husky that is. We’ve put together ‘twit-bot’ for your [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="alignleft  wp-image-33053" alt="tweetbot" src="http://robohub.org/wp-content/uploads/2014/06/tweetbot-425x212.jpg" width="340" height="170" srcset="https://robohub.org/wp-content/uploads/2014/06/tweetbot-425x212.jpg 425w, https://robohub.org/wp-content/uploads/2014/06/tweetbot-500x250.jpg 500w, https://robohub.org/wp-content/uploads/2014/06/tweetbot.jpg 520w" sizes="(max-width: 340px) 100vw, 340px" />
<p>Happy Birthday!! Clearpath is officially 5 years old and what better way to celebrate than let all of our fans drive a robot. No matter where you are in the world, you can experience what it’s like to drive Husky – well, a very mini, hacked-together Husky that is. We’ve put together ‘twit-bot’ for your enjoyment so you can move our bot around all from the convenience of your smartphone using Twitter.</p>
<h2>Here’s how it works:</h2>
<p>Step 1: Mention Clearpath’s Twitter handle (<a title="CPR Twitter" href="http://twitter.com/clearpathrobots" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">@ClearpathRobots</a>)<br />
Step 2: Hash tag #MoveRobot<br />
Step 3: Write the action you’d like it to take (examples are below)<br />
Step 4: Watch it move on the live feed: <a title="Live Moving Twitter Husky" href="http://www.twitch.tv/twitbot_cpr" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://www.twitch.tv/twitbot_<wbr />cpr</a><br />
Step 5: Share with your friends!</p>
<h2>How does it move?</h2>
<p>This little twit-bot can go just about anywhere and in any direction using the commands below (case insensitive).  The delay between the tweet and the streaming is about 30 seconds:</p>
<ul>
<li>“forward” or “fwd”</li>
<li>“backward” or “bck”</li>
<li>“right” or “rght”</li>
<li>“left” or “ft”</li>
<li>“stop” or “stp”</li>
</ul>
<p>You can also tweet colors to change the colors of the LED lights: blue, red, white, etc.</p>
<div>Of course, there are some hidden key words – easter eggs – in there too that you’ll just have to figure out on your own. I wonder if pop-a-wheelie is on the list?…</div>
<div class="divideronpost"></div>
<p><em>If you liked this article, you may also be interested in Clearpath&#8217;s ROS 101 Tutorials:</em></p>
<ul>
<li><a href="http://robohub.org/ros-101-intro-to-the-robot-operating-system/" data-wpel-link="internal">ROS 101: Intro to the Robot Operating System</a></li>
<li><a href="http://robohub.org/ros-101-a-practical-example/" data-wpel-link="internal">ROS 101: A practical example</a></li>
<li><a href="http://robohub.org/ros-101-drive-a-husky/" data-wpel-link="internal">ROS 101: Drive a Husky!</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: 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 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>
	</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-21 19:15:04 by W3 Total Cache
-->