<?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>how-to &#8211; Robohub</title>
	<atom:link href="https://robohub.org/tag/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>https://robohub.org</link>
	<description>Connecting the robotics community to the world</description>
	<lastBuildDate>Mon, 05 Oct 2026 00:34:49 +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>Developing ROS programs for the Sphero robot</title>
		<link>https://robohub.org/developing-ros-programs-for-the-sphero-robot/</link>
		
		<dc:creator><![CDATA[Ricardo Téllez]]></dc:creator>
		<pubDate>Mon, 13 Mar 2017 15:30:40 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Sphero]]></category>
		<guid isPermaLink="false">http://robohub.org/developing-ros-programs-for-the-sphero-robot/</guid>

					<description><![CDATA[You probably know the Sphero robot. It is a small robot with the shape of a ball. In case that you have one, you must know that it is possible to control it using ROS, by installing in your computer the Sphero ROS packages developed by Melonee Wise and connecting to the robot&#160;using the bluetooth]]></description>
										<content:encoded><![CDATA[<img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-73660" src="http://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736.jpg" alt="" width="1024" height="736" srcset="https://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736.jpg 1024w, https://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736-425x305.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736-768x552.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/sphero-robotic-ball-5-1024x736-417x300.jpg 417w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>You probably know the Sphero robot. It is a small robot with the shape of a ball. In case that you have one, you must know that it is possible to control it using ROS, by installing in your computer the Sphero ROS packages developed by Melonee Wise and connecting to the robot using the bluetooth of the computer.<span id="more-73602"></span></p>
<p>Now, you can use the ROS Development Studio to create ROS control programs for that robot, testing as you go by using the integrated simulation.</p>
<p>The ROS Development Studio (RDS) provides off-the-shelf a simulation of Sphero with a maze environment. The simulation provides the same interface as the ROS module created by Melonee, so you can test your develop and test the programs on the environment, and once working properly, transfer it to the real robot.</p>
<p>We created the simulation to teach ROS to the students of the Robot Ignite Academy. They have to learn ROS enough to make the Sphero get out of the maze by using odometry and IMU.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73661" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529.png" alt="" width="1024" height="529" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529-425x220.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529-768x397.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192857-1024x529-500x258.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" /><hr class="xh2  "></p>
<p><strong>Using the simulation</strong></p>
<p>To use the Sphero simulation on RDS go to rds.theconstructsim.com and sign in. If you select the Public simulations, you will quickly identify the Sphero simulation.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73662" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192251.png" alt="" width="717" height="554" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192251.png 717w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192251-425x328.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192251-388x300.png 388w" sizes="(max-width: 717px) 100vw, 717px" />Press the red Play button. A new screen will appear giving you details about the simulation and asking you which launch file you want to launch. The main.launch selected by default is the correct one, so just press Run.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73663" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318.png" alt="" width="815" height="704" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318.png 815w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318-425x367.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318-768x663.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-192318-347x300.png 347w" sizes="(max-width: 815px) 100vw, 815px" />After a few seconds the simulation will appear together with the development environment for creating the programs for Sphero and testing them.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73664" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528.png" alt="" width="1024" height="528" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528-425x219.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528-768x396.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193415-1024x528-500x258.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />On the left hand side you have a notebook containing information about the robot and how to program it with ROS. This notebook contains just some examples, but it can be completed and/or modified at your will. As you can see it is an iPython notebook and follows its standard. So it is up to you to modify it, add new information or else. Remember that any change you do to the notebook will be saved in a simulation in your private area of RDS, so you can come back later and launch it with your modifications.</p>
<img decoding="async" class="aligncenter size-full wp-image-73665" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705.png" alt="" width="1024" height="705" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705-425x293.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705-768x529.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-193920-1024x705-436x300.png 436w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>You must know that the code included in the notebook is directly executable by selecting the cell of the code (do a single click on it) and pressing the small play button at the top of the notebook. This means that, once you press that button, the code will be executed and start controlling the Sphero simulated robot for a few time-steps (remember to have the simulation activated (Play button of the simulation activated) to see the robot move).</p>
<p>On the center area, you can see the IDE. It is the development environment for developing the code. You can browse there all the packages related to the simulation or any other packages that you may create.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73666" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132.png" alt="" width="959" height="912" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132.png 959w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132-425x404.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132-768x730.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194132-315x300.png 315w" sizes="(max-width: 959px) 100vw, 959px" />On the right hand side, you can see the simulation and beneath it, the shell. The simulation shows the Sphero robot as well as the environment of the maze. On the shell, you can issue commands in the computer that contains the simulation of the robot. For instance, you can use the shell to launch the keyboard controller and move the Sphero around. Try typing the following:</p>
<ul>
<li><em>$ roslaunch sphero_gazebo keyboard_teleop.launch</em></li>
</ul>
<p>Now you must be able to move the robot around the maze by pressing some keys of the keyboard (instructions provided on the screen).</p>
<img decoding="async" class="aligncenter size-full wp-image-73667" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194551.png" alt="" width="500" height="987" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194551.png 500w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194551-215x425.png 215w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-194551-152x300.png 152w" sizes="(max-width: 500px) 100vw, 500px" />
<p>You can also launch there Rviz, and then watch the robot, the frames and any other additional information you may want of the robot. Type the following:</p>
<ul>
<li><em>$ rosrun rviz rviz</em></li>
</ul>
<p>Then press the Screen red icon located at the bottom-left of the screen (named the graphical tools). A new tab should appear, showing how the Rviz is loading. After a while, you can configure the Rviz to show the information you desire.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73668" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768.png" alt="" width="1024" height="768" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768-425x319.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768-768x576.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-195210-1024x768-400x300.png 400w" sizes="(max-width: 1024px) 100vw, 1024px" />There are many ways you can configure the screen to provide more focus to what interests you the most.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-73669" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527.png" alt="" width="1024" height="527" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527-425x219.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527-768x395.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200711-1024x527-500x257.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" /><img decoding="async" class="aligncenter size-full wp-image-73670" src="http://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531.png" alt="" width="1024" height="531" srcset="https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531.png 1024w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531-425x220.png 425w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531-768x398.png 768w, https://robohub.org/wp-content/uploads/2017/03/Screenshot-from-2017-03-09-200744-1024x531-500x259.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" />To end this post, I would like to indicate that you can download the simulation to your computer at any time, by doing right-click on the directories and selecting Download. You can also clone the The Construct simulations repository to download it (among other simulations available).</p>
<hr class="xh2  ">
<p><em>If you liked this tutorial, you may also enjoy these:</em></p>
<ul>
<li><a href="http://robohub.org/ugcs-photogrammetry-technique-for-uav-land-surveying-missions/" target="_blank" data-wpel-link="internal">UgCS photogrammetry technique for UAV land surveying missions</a></li>
<li><a href="http://robohub.org/programming-for-robotics-introduction-to-ros/" target="_blank" data-wpel-link="internal">Programming for robotics: Introduction to ROS</a></li>
<li><a href="http://robohub.org/python-programming-your-nao-robot/" target="_blank" data-wpel-link="internal">Python programming your NAO robot</a></li>
<li><a href="http://robohub.org/robotics-maths-python-a-fledgling-computer-scientists-guide-to-inverse-kinematics/" target="_blank" data-wpel-link="internal">Robotics, maths, python: A fledgling computer scientist’s guide to inverse kinematics</a></li>
<li><a href="http://robohub.org/3-d-printing-hydraulically-powered-robots-no-assembly-required/" target="_blank" data-wpel-link="internal">3-D printing hydraulically-powered robots, no assembly required</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UgCS photogrammetry technique for UAV land surveying missions</title>
		<link>https://robohub.org/ugcs-photogrammetry-technique-for-uav-land-surveying-missions/</link>
		
		<dc:creator><![CDATA[SPH Engineering]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 14:00:00 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[environment & agriculture]]></category>
		<category><![CDATA[exploration & mining]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[mapping & surveillance]]></category>
		<category><![CDATA[sensing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[surveying]]></category>
		<category><![CDATA[UAVs & drones]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://robohub.org/ugcs-photogrammetry-technique-for-uav-land-surveying-missions/</guid>

					<description><![CDATA[&#160; UgCS is easy-to-use software for planning and flying UAV drone-survey missions. It supports almost any UAV platform, providing convenient tools for areal and linear surveys and enabling direct drone control. What&#8217;s more, UgCS enables professional land survey mission planning using photogrammetry techniques. How to plan photogrammetry mission with UgCS Standard land surveying photogrammetry mission planning [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<div id="attachment_73423" style="width: 860px" class="wp-caption aligncenter"><a href="http://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png" data-wpel-link="internal"><img decoding="async" aria-describedby="caption-attachment-73423" class="size-full wp-image-73423" src="http://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /></a><p id="caption-attachment-73423" class="wp-caption-text">Figure 15: Adding 40m overshot to both ends of each survey line</p></div>
<p><a href="https://www.ugcs.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">UgCS</a> is easy-to-use software for planning and flying UAV drone-survey missions. It supports almost any UAV platform, providing convenient tools for areal and linear surveys and enabling direct drone control. What&#8217;s more, UgCS enables professional land survey mission planning using photogrammetry techniques.</p>
<p><strong>How to plan photogrammetry mission with UgCS</strong></p>
<p>Standard land surveying photogrammetry mission planning with UgCS can be divided into following steps :</p>
<ol>
<li>Obtain input data</li>
<li>Plan mission</li>
<li>Deploy ground control points</li>
<li>Fly mission</li>
<li>Image geotagging</li>
<li>Data processing</li>
<li>Map import to UgCS (optional)</li>
</ol>
<p><a href="https://www.youtube.com/watch?v=SalCQoG6WUw&#038;feature=youtu.be" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">https://www.youtube.com/watch?v=SalCQoG6WUw&amp;feature=youtu.be</a></p>
<hr class="xh2  ">
<p><strong>Step one: Obtain input data</strong></p>
<p>Firstly, to reach the desired result, input settings have to be defined:</p>
<ul class="txt">
<li>Required GSD (ground sampling distance &#8211; size of single pixel on ground),</li>
<li>Survey area boundaries,</li>
<li>Required forward and side overlap.</li>
</ul>
<p>GSD and area boundaries are usually defined by the customer’s requirements for output material parameters, for example by scale and resolution of digital map. Overlap should be chosen according to specific conditions of surveying area and requirements of data processing software.</p>
<p>Each data processing software (e.g., Pix4D, Agisoft Photoscan, Dronedeploy, Acute 3d) has specific requirements for side and forward overlaps for different surfaces. To choose correct values, please refer to documentation of chosen software. In general, 75% forward and 60% side overlap will be a good choice. Overlapping should be increased for areas with small amount of visual cues, for example for deserts or forests.</p>
<p>Often, aerial photogrammetry beginners are excited about the option to produce digital maps with extremely high resolution (1-2cm/pixel), and to use very small GSD for mission planning. This is very bad practice. Small GSD will result in longer flight time, hundreds of photos for each acre, tens of hours of processing and heavy output files. GSD should be set according to the output requirements of the digital map.</p>
<p>Other limitations can occur. For example, GSD of 10cm/pixel is required, but designed to use a Sony A6000 camera. Based on mentioned GSD and camera’s parameters, the flight altitude would be set to 510 meters. In most countries, maximum allowed altitude of UAV&#8217;s (without special permission) is limited to 120m/400ft AGL (above ground). Taking into account the maximum allowed altitude, the maximum possible GSD in this case could be no more than 2.3cm.</p>
<hr class="xh2  ">
<p><strong>Step two: Plan your mission</strong></p>
<p>Mission planning consists of two stages:</p>
<ul class="txt">
<li>Initial planning,</li>
<li>Route optimisation.</li>
</ul>
<p><em>-Initial planning:</em></p>
<p>The first step is to set surveying area using UgCS Photogrammetry tool. Area can be set using visual cues on underlying map or using exact coordinates of edges. The result &#8211; survey area is marked with yellow boundaries (Figure 1).</p>
<div id="attachment_73401" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73401" class="size-full wp-image-73401" src="http://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig1_set_survey_area-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73401" class="wp-caption-text">Figure 1: Setting the survey area</p></div>
<p>The next step is to set GSD and overlapping for the camera in Photogrammetry tool&#8217;s settings window (Figure 2).</p>
<div id="attachment_73402" style="width: 290px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73402" class="size-full wp-image-73402" src="http://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera.png" alt="" width="280" height="280" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera.png 280w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-220x220.png 220w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-32x32.png 32w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-50x50.png 50w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-64x64.png 64w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-96x96.png 96w, https://robohub.org/wp-content/uploads/2017/03/Fig2_set_camera-128x128.png 128w" sizes="(max-width: 280px) 100vw, 280px" /><p id="caption-attachment-73402" class="wp-caption-text">Figure 2: Setting camera&#8217;s Ground Sampling Distance and overlapping</p></div>
<p>To take photos in Photogrammetry tool&#8217;s setting window, define the control action of the camera (Figure 3). Set camera by distance triggering action with default values.</p>
<div id="attachment_73403" style="width: 339px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73403" class="size-full wp-image-73403" src="http://robohub.org/wp-content/uploads/2017/03/Fig3_camera_control_action.png" alt="" width="329" height="234" /><p id="caption-attachment-73403" class="wp-caption-text">Figure 3: Setting camera&#8217;s control action</p></div>
<p>At this point, initial route planning is completed. UgCS will automatically calculate photogrammetry route (see Figure 4).</p>
<div id="attachment_73404" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73404" class="size-full wp-image-73404" src="http://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig4_un-optimized_route-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73404" class="wp-caption-text">Figure 4: Calculated photogrammetry survey route before optimisation</p></div>
<p><em>-Route optimisation</em></p>
<p>To optimise the route, it&#8217;s calculated parameters should be known: altitude, estimated flight time, number of shots, etc.</p>
<p>Part of the route&#8217;s calculated information can be found in the elevation profile window. To access the elevation profile window (if it is not visible on screen) click the parameters icon on the route card (lower-right corner, see Figure 5), and from the drop-down menu select show elevation:</p>
<div id="attachment_73405" style="width: 281px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73405" class="size-full wp-image-73405" src="http://robohub.org/wp-content/uploads/2017/03/Fig5_parameters.png" alt="" width="271" height="178" /><p id="caption-attachment-73405" class="wp-caption-text">Figure 5: Accessing elevation window from Route cards Parameters settings</p></div>
<p>The elevation profile window will present an estimated route length, duration, waypoint count and min/max altitude data:</p>
<div id="attachment_73408" style="width: 665px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73408" class="size-full wp-image-73408" src="http://robohub.org/wp-content/uploads/2017/03/Fig6_elevation_profile_parameters.png" alt="" width="655" height="254" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig6_elevation_profile_parameters.png 655w, https://robohub.org/wp-content/uploads/2017/03/Fig6_elevation_profile_parameters-425x165.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig6_elevation_profile_parameters-500x194.png 500w" sizes="(max-width: 655px) 100vw, 655px" /><p id="caption-attachment-73408" class="wp-caption-text">Figure 6: Route values in elevation profile window</p></div>
<p>To get other calculated values, open route log by clicking on route status indicator: the green check-mark (upper-right corner, see Figure 7) of the route card:</p>
<div id="attachment_73409" style="width: 731px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73409" class="size-full wp-image-73409" src="http://robohub.org/wp-content/uploads/2017/03/Fig7_route_values-1.png" alt="" width="721" height="293" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig7_route_values-1.png 721w, https://robohub.org/wp-content/uploads/2017/03/Fig7_route_values-1-425x173.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig7_route_values-1-500x203.png 500w" sizes="(max-width: 721px) 100vw, 721px" /><p id="caption-attachment-73409" class="wp-caption-text">Figure 7: Route card and status indicator, Route log</p></div>
<p>Using route parameters, it can be optimised to be more efficient and safe.</p>
<p><em>-Survey line direction</em></p>
<p>By default, UgCS will trace survey lines from south to north. But, in most cases, it will be more optimal to fly parallel to the longest boundary line of the survey area. To change survey line direction, edit direction angle field in the photogrammetry tool. In the example, by changing angle to 135 degrees, the number of passes is reduced from five (Figure 4) to four (Figure 8) and route length is 1km instead of 1.3km.</p>
<div id="attachment_73410" style="width: 737px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73410" class="size-full wp-image-73410" src="http://robohub.org/wp-content/uploads/2017/03/Fig8_optimized_route_passes.png" alt="" width="727" height="490" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig8_optimized_route_passes.png 727w, https://robohub.org/wp-content/uploads/2017/03/Fig8_optimized_route_passes-425x286.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig8_optimized_route_passes-445x300.png 445w" sizes="(max-width: 727px) 100vw, 727px" /><p id="caption-attachment-73410" class="wp-caption-text">Figure 8: Changed survey line angle to be parallel to longest boundary</p></div>
<p><em>-Altitude type</em></p>
<p>UgCS Photogrammetry tool has the option to define how to trace the route according to altitude, with constant altitude above ground (AGL) or above mean sea level (AMSL). Please refer to your data processing software requirements as to which altitude tracking method it recommend.</p>
<p>In the UgCS team&#8217;s experience, the choice of altitude type depends on desired result. For orthophotomap (standard aerial land survey output format) it is better to choose AGL to ensure constant GSD for the entire map. If the aim is to produce DEM or 3D reconstruction, use AMSL so the data processing software has more data to correctly determine ground elevation by photos in order to provide more qualitative output.</p>
<div id="attachment_73411" style="width: 663px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73411" class="size-full wp-image-73411" src="http://robohub.org/wp-content/uploads/2017/03/Fig9_altitude_type_AMSL.png" alt="" width="653" height="254" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig9_altitude_type_AMSL.png 653w, https://robohub.org/wp-content/uploads/2017/03/Fig9_altitude_type_AMSL-425x165.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig9_altitude_type_AMSL-500x194.png 500w" sizes="(max-width: 653px) 100vw, 653px" /><p id="caption-attachment-73411" class="wp-caption-text">Figure 9: Elevation profile with constant altitude above mean sea level (AMSL)</p></div>
<p>In this case, UgCS will calculate flight altitude based on the lowest point of the survey area.</p>
<p>If AGL is selected in photogrammetry tool&#8217;s settings, UgCS will calculate the altitude for each waypoint. But in this case, terrain following will be rough if no “additional waypoints” are added (see Figure 10).</p>
<div id="attachment_73412" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73412" class="size-full wp-image-73412" src="http://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL.png" alt="" width="850" height="624" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL-425x312.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL-768x564.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig10_altitude_type_AGL-409x300.png 409w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73412" class="wp-caption-text">Figure 10: Elevation profile with AGL without additional waypoints</p></div>
<p>Therefore, if AGL is used, add some “additional waypoints” flags and UgCS will calculate a flight plan with elevation profile accordingly (see Figure 11).</p>
<div id="attachment_73413" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73413" class="size-full wp-image-73413" src="http://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints.png" alt="" width="850" height="612" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints-425x306.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints-768x553.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig11_AGL_with_additional_waypoints-417x300.png 417w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73413" class="wp-caption-text">Figure 11: Elevation profile with AGL with additional waypoints</p></div>
<p><em>-Speed</em></p>
<p>In general, if flight speed is increased it will minimise flight time. But high speed in combination with large camera exposure can result in blurred images. In most cases 10m/s is the best choice.</p>
<p><em>-Camera control method</em></p>
<p>UgCS supports 3 camera control methods (actions):</p>
<ol>
<li>Make a shot (trigger camera) in waypoint,</li>
<li>Make shot every N seconds,</li>
<li>Make shot every N meters.</li>
</ol>
<p>Not all autopilots support all 3 camera control options. For example (quite old) DJI A2 does support all three options, but newer (starting from Phantom 3 and up to M600) cameras support only triggering in waypoints and by time. DJI promised to implement triggering by distance, but it’s not available yet.</p>
<p>Here are some benefits and drawbacks for all three methods:</p>
<div id="attachment_73416" style="width: 832px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73416" class="size-full wp-image-73416" src="http://robohub.org/wp-content/uploads/2017/03/table.jpg" alt="" width="822" height="464" srcset="https://robohub.org/wp-content/uploads/2017/03/table.jpg 822w, https://robohub.org/wp-content/uploads/2017/03/table-425x240.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/table-768x434.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/table-175x100.jpg 175w, https://robohub.org/wp-content/uploads/2017/03/table-500x282.jpg 500w" sizes="(max-width: 822px) 100vw, 822px" /><p id="caption-attachment-73416" class="wp-caption-text">Table 1: Benefits and Drawback for camera triggering methods</p></div>
<p>In conclusion:</p>
<ul class="txt">
<li>Trigger in waypoints should be preferred when possible</li>
<li>Trigger by time should be used only if no other method is possible</li>
<li>Trigger by distance should be used when triggering in waypoints is not possible to use</li>
</ul>
<p>To select triggering method in UgCS Photogrammetry tool accordingly, use one of three available icons:</p>
<ul class="txt">
<li>Set camera mode</li>
<li>Set camera by time</li>
<li>Set camera by distance</li>
</ul>
<p><em>-Glibal control</em></p>
<p>Drones, e.g., DJI Phantom 3, Phantom 4, Inspire, M100 or M600 with integrated gimbal, have the option to control camera position as part of an automatic route plan.</p>
<p>It is advisable to set camera to nadir position in the first waypoint, and in horizontal position before landing to prevent lenses from potential damage.</p>
<p>To set camera position, select the waypoint preceding the photogrammetry area and click set camera attitude/zoom (Figure 12) and enter &#8220;90&#8221; in the &#8220;Tilt&#8221; field (Figure 13).</p>
<div id="attachment_73418" style="width: 346px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73418" class="size-full wp-image-73418" src="http://robohub.org/wp-content/uploads/2017/03/Fig12_Gimbal_control_set_camera.png" alt="" width="336" height="314" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig12_Gimbal_control_set_camera.png 336w, https://robohub.org/wp-content/uploads/2017/03/Fig12_Gimbal_control_set_camera-321x300.png 321w" sizes="(max-width: 336px) 100vw, 336px" /><p id="caption-attachment-73418" class="wp-caption-text">Figure 12: Setting camera attitude</p></div>
<div id="attachment_73420" style="width: 299px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73420" class="size-full wp-image-73420" src="http://robohub.org/wp-content/uploads/2017/03/Fig13_Gimbal_control_Tilt.png" alt="" width="289" height="438" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig13_Gimbal_control_Tilt.png 289w, https://robohub.org/wp-content/uploads/2017/03/Fig13_Gimbal_control_Tilt-280x425.png 280w, https://robohub.org/wp-content/uploads/2017/03/Fig13_Gimbal_control_Tilt-198x300.png 198w" sizes="(max-width: 289px) 100vw, 289px" /><p id="caption-attachment-73420" class="wp-caption-text">Figure 13: Setting camera position</p></div>
<p>As described previously, this waypoint should be a Stop&amp;Turn type, otherwise the drone could skip this action.</p>
<p>To set camera to horizontal position, select last waypoint of survey route and click set camera attitude/zoom and enter &#8220;0&#8221; in the &#8220;Tilt&#8221; field.</p>
<p><em>-Turn types</em></p>
<p>Most autopilots or multirotor drones support different turn types in waypoints. Most popular DJI drones have three turn-types:</p>
<ul class="txt">
<li>Stop and Turn: drone flies to the fixed point accurately, stays at that fixed point and then flies to next fixed point.</li>
<li>Bank Turn: the drone would fly with constant speed from one point to another without stopping.</li>
<li>Adaptive Bank Turn: It is almost the same performance like Bank Turn mode (Figure 13), but the real flight routine will be more accurately than Bank Turn.</li>
</ul>
<p>It is advisable not to use Bank Turn for photogrammetry missions. Drone interprets Bank Turns as “recommendation destination waypoint”. The drone will fly towards this direction but will almost never pass through the waypoint. Because drone will not pass the waypoint, no action will be executed, meaning the camera will not be triggered, etc.</p>
<p>Adaptive Bank Turn should be used with caution because a drone can miss waypoints and, again, no camera triggering will be initiated.</p>
<div id="attachment_73422" style="width: 410px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73422" class="size-full wp-image-73422" src="http://robohub.org/wp-content/uploads/2017/03/Fig14_dji_turn_types.png" alt="" width="400" height="189" /><p id="caption-attachment-73422" class="wp-caption-text">Figure 14: Illustration of typical DJI drone trajectories for Bank Turn and Adaptive Bank Turn types</p></div>
<p>Sometimes, adaptive bank turn type has to be used in order to have shorter flight time compared to stop and turn. When using adaptive bank turns, it is recommended to use overshot (see below) for the photogrammetry area.</p>
<p><em>-Overshot</em></p>
<p>Initially overshot was implemented for fixed wing (airplane) drones in order to have enough space for manoeuvring a U-turn.</p>
<p>Overshot can be set in photogrammetry tool to add an extra segment to both ends of each survey line.</p>
<div id="attachment_73423-2" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73423-2" class="size-full wp-image-73423" src="http://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig15_adding_overshot-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73423-2" class="wp-caption-text">Figure 15: Adding 40m overshot to both ends of each survey line</p></div>
<p>In the example (Figure 15) can be seen that UgCS added 40m additional segments to both ends of each survey line (comparing to Figure 8).</p>
<p>Adding overshot is useful for copter-UAVs in two situations:</p>
<ol>
<li>When Adaptive Bank Turns are used (or similar method for non-DJI drones), adding overshot will increase the chance that drone will precisely enter survey line and camera control action will be triggered. UgCS Team recommends to specify overshot that is approximately equal to distance between the parallel survey lines.</li>
<li>When Stop and Turn type is in use in combination with action to trigger camera in waypoints, there is a possibility that before making the shot, drone will start rotation to next waypoint &#8211; it can result in having photos with wrong orientation or blurred. To avoid that, shorter overshot has to be set, for example 5m. Don’t specify too short value (&lt; 3m) because some drones could ignore waypoints, that are too close.</li>
</ol>
<div id="attachment_73425" style="width: 1210px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73425" class="size-full wp-image-73425" src="http://robohub.org/wp-content/uploads/2017/03/Fig16_speed2.jpg" alt="" width="1200" height="675" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2.jpg 1200w, https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2-425x239.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2-768x432.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2-1024x576.jpg 1024w, https://robohub.org/wp-content/uploads/2017/03/Fig16_speed2-500x281.jpg 500w" sizes="(max-width: 1200px) 100vw, 1200px" /><p id="caption-attachment-73425" class="wp-caption-text">Figure 16: Example of blurred image taken by drone in rotation to next waypoint</p></div>
<p><em>-Takeoff point</em></p>
<p>It is important to <strong><em>check the takeoff area</em></strong> at site before flying any mission! To better explain best practice on how to set takeoff point, first discuss an example of how it should not be done. Supposing that the takeoff point in our example mission (Figure 17) would be from the point marked with the airplane-icon, and drone pilot would upload the route on the ground with set automatic mission for automatic take-off.</p>
<div id="attachment_73426" style="width: 655px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73426" class="size-full wp-image-73426" src="http://robohub.org/wp-content/uploads/2017/03/Fig17_take_off.png" alt="" width="645" height="434" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig17_take_off.png 645w, https://robohub.org/wp-content/uploads/2017/03/Fig17_take_off-425x286.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig17_take_off-446x300.png 446w" sizes="(max-width: 645px) 100vw, 645px" /><p id="caption-attachment-73426" class="wp-caption-text">Figure 17: Take-off point example</p></div>
<p>Most drones in automatic takeoff mode would climb to low altitude about 3-10meters and then fly straight towards the first waypoint. Other drones would fly towards first waypoint straight from ground. Looking closely at the example map (Figure 17), some trees between the takeoff point and the first waypoint can be noticed. In this example, the drone more likely will not reach a safe altitude and will hit the trees.</p>
<p>Not only the surroundings can affect takeoff planning. Drone manufacturers can change drones elevation behavior in drone firmware, therefore after firmware updates it is recommended that you check drones automatic takeoff mode.</p>
<p>Also, a very important consideration is that most small UAVs use relative altitude for mission planing. Altitude counted relatively according to first waypoint is a second reason why an actual takeoff point should be near the first waypoint, and on the same terrain level.</p>
<p>UgCS Team recommends placing the first waypoint as close as possible to actual takeoff point and specifying a safe takeoff altitude (≈30m in most situations will be above any trees, see Figure 18). This is the only method that warrants safe takeoff for any mission. It also protects from any weird drone behaviour and unpredictable firmware updates, etc.</p>
<div id="attachment_73427" style="width: 997px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73427" class="size-full wp-image-73427" src="http://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid.png" alt="" width="987" height="398" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid.png 987w, https://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid-425x171.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid-768x310.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig18_take_off_near_survey_grid-500x202.png 500w" sizes="(max-width: 987px) 100vw, 987px" /><p id="caption-attachment-73427" class="wp-caption-text">Figure 18: Route with safe take-off</p></div>
<p><em>-Entry point to the survey grid</em></p>
<p>In the previous example, (see Figure 18), it can be noticed, that after adding the takeoff point, the route&#8217;s survey grid entry point was changed. This is because if additional waypoint is added subsequently to the photogrammetry area, UgCS will plan to fly the survey grid starting from nearest corner to the previous waypoint.</p>
<p>To change the entry point to survey grid, set additional waypoint close to the desired starting corner (see Figure 19).</p>
<div id="attachment_73428" style="width: 930px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73428" class="size-full wp-image-73428" src="http://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid.png" alt="" width="920" height="409" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid.png 920w, https://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid-425x189.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid-768x341.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig19_entry_point_to_survey_grid-500x222.png 500w" sizes="(max-width: 920px) 100vw, 920px" /><p id="caption-attachment-73428" class="wp-caption-text">Figure 19: Changing survey grid entry point by adding additional waypoint</p></div>
<p><em>-Landing point</em></p>
<p>If no landing point will be added outside the photogrammetry area after the survey mission, the drone will fly and hover in the last waypoint. There are two options for landing:</p>
<ol>
<li>Take manual control over the drone and fly to landing point manually,</li>
<li>Activate the Return Home command in UgCS or from Remote Controller (RC).</li>
</ol>
<p>In situations when the radio link with the drone is lost, for example if the survey area is large or there are problems with the remote controller, depending on the drone and it’s settings, one of these actions can occur:</p>
<ul>
<li>Drone will return to home location automatically if lost radio link with ground station,</li>
<li>Drone will fly to last waypoint of survey area and hover as long as battery capacity will enable that, then: drone will perform emergency landing, or it will try to fly to home location.</li>
</ul>
<p>The recommendation is to add an explicit landing points to the route in order to avoid relying on unpredictable drone behavior or settings.</p>
<p>If the drone doesn’t support automatic landing, or the pilot prefers to land manually, place the route’s last waypoint over the planned landing point with an altitude for comfortable manual drone descending and landing above any obstacles in the surrounding area. In general 30m is best choice.</p>
<p><em>-Action execution</em></p>
<p>Photogrammetry tool has a <i>magic</i> parameter “Action Execution” with three possible values:</p>
<ul class="txt">
<li>Every point</li>
<li>At start</li>
<li>Forward passes</li>
</ul>
<p>This parameter defines how and where camera actions specified for photogrammetry tool will be executed.</p>
<p>The most useful option for photogrammetry/survey missions is to set forward passes, the drone will make photos only on survey lines, but will not make excess photos on perpendicular lines.</p>
<p><em>-Complex survey areas</em></p>
<p>UgCS enables photogrammetry/survey mission planning for irregular areas, having functionality to combine any number of photogrammetry areas in one route, avoiding splitting the area in separate routes.</p>
<p>For example, if a mission has to be planned for two fields connected in a T-shape, and if these two fields are marked as one photogrammetry area, the whole route will not be optimal, regardless any direction of survey lines.</p>
<div id="attachment_73431" style="width: 782px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73431" class="size-full wp-image-73431" src="http://robohub.org/wp-content/uploads/2017/03/fig20.png" alt="" width="772" height="569" srcset="https://robohub.org/wp-content/uploads/2017/03/fig20.png 772w, https://robohub.org/wp-content/uploads/2017/03/fig20-425x313.png 425w, https://robohub.org/wp-content/uploads/2017/03/fig20-768x566.png 768w, https://robohub.org/wp-content/uploads/2017/03/fig20-407x300.png 407w" sizes="(max-width: 772px) 100vw, 772px" /><p id="caption-attachment-73431" class="wp-caption-text">Figure 20: Complex survey area before optimisation</p></div>
<p>If the survey area is marked as two photogrammetry areas within one route, survey lines for each area can be optimised individually (see Figure 21).</p>
<div id="attachment_73434" style="width: 736px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73434" class="size-full wp-image-73434" src="http://robohub.org/wp-content/uploads/2017/03/Fig21_complex_survey_area_combined.png" alt="" width="726" height="597" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig21_complex_survey_area_combined.png 726w, https://robohub.org/wp-content/uploads/2017/03/Fig21_complex_survey_area_combined-425x349.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig21_complex_survey_area_combined-365x300.png 365w" sizes="(max-width: 726px) 100vw, 726px" /><p id="caption-attachment-73434" class="wp-caption-text">Figure 21: Optimised survey flight passes for each part of a complex photogrammetry area</p></div>
<hr class="xh2  ">
<p><strong>Step three: deploy ground control points</strong></p>
<p>Ground control points are mandatory if the survey output map has to be precisely aligned to coordinates on Earth.</p>
<p>There are lots of discussions about the necessity of ground control points in cases when a drone is equipped with Real Time Kinematics (RTK) GPS receivers with centimeter-level accuracy. This is useful, but the drone coordinates are not in themselves sufficient because, for precise map aligning, image center coordinates are necessary.</p>
<p>Data processing softwares like Agisoft Photoscan, Dronedeplay, Pix4d, Icarus OneButton and others will produce very accurate maps using geotagged images, but the real precision of the map will not be known without ground control points.</p>
<p>Conclusion: ground control points have to be used to create survey-grade result. For a map with approximate precision, it is sufficient to rely just on RTK GPS and the capabilities of data processing software.</p>
<hr class="xh2  ">
<p><strong>Step four: fly your mission</strong></p>
<p>For carefully planned missions, flying it is the most straightforward step. Mission execution differs according to the type of UAV and equipment used, therefore it will not be described in detail in this article (please refer to equipment’s and UgCS documentation).</p>
<p>Important issues before flying:</p>
<ul>
<li>In most countries there are strict regulations for UAV usage. Always comply with the regulations! Usually these rules can be found on web-site of local aviation authority.</li>
<li>In some countries special permission for any kind of aerial photo/video shooting is needed. Please check local regulations.</li>
<li>In most cases missions are planned before arriving to flying location (e.g., in office, at home) using satellite imaginary from Google maps, Bing, etc. Before flying always check actual circumstances at the location. There could be a need to adjust take-off/landing points, for example, to avoid tall obstacles (e.g., trees, masts, power lines) in your survey area.</li>
</ul>
<hr class="xh2  ">
<p><strong>Step five: image geotagging</strong></p>
<p>Image geotagging is optional if ground control points were used, but almost any data processing software will require less time to process geotagged images.</p>
<p>Some of the latest and professional drones with integrated cameras can geotag images automatically during flight. In other cases images can be geotagged in UgCS after flight.</p>
<p>Very important: UgCS uses the telemetry log from drone, that is received via radio channel, to extract the drone’s altitude for any given moment (when pictures were taken). To geotag pictures using UgCS, assure robust telemetry reception during flight.</p>
<p>For detailed information how to geotag images using UgCS refer to UgCS User Manual.</p>
<hr class="xh2  ">
<p><strong>Step six: data processing</strong></p>
<p>For data processing, use third party software or services available on the market.</p>
<p>From UgCS Team experience, the most powerful and flexible software is Agisoft Photoscan (<a href="http://www.agisoft.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://www.agisoft.com/</a>), but sometimes too much user input is required to get necessary results. The most uncomplicated solution for users is online service Dronedeploy (<a href="https://www.dronedeploy.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">https://www.dronedeploy.com/</a>). All other software packages and services will fit somewhere between these two in terms of complexity and power.</p>
<hr class="xh2  ">
<p><strong>Step seven (optional): import created map to UgCS</strong></p>
<p>Should the need arise for the mission to be repeated in the future, UgCS enables importing the GeoTiff file as a map layer and using it for mission planning. More detailed instructions can be found in UgCS User Manual. See the result of an imported map created using UgCS photogrammetry tool imported as GeoTiff file in Figure 22.</p>
<div id="attachment_73436" style="width: 860px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-73436" class="size-full wp-image-73436" src="http://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import.png" alt="" width="850" height="478" srcset="https://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import.png 850w, https://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import-425x239.png 425w, https://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import-768x432.png 768w, https://robohub.org/wp-content/uploads/2017/03/Fig22_UgCS_map_import-500x281.png 500w" sizes="(max-width: 850px) 100vw, 850px" /><p id="caption-attachment-73436" class="wp-caption-text">Figure 22: Imported GeoTiff map as layer. The map is output of a Photogrammetry survey mission panned with UgCS</p></div>
<p>Visit the <a href="https://www.ugcs.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">UgCS homepage</a></p>
<p>Download this tutorial as a <a href="https://www.ugcs.com/files/photogrammetry_tool/UgCS-for_Land_surveying-with-photogrammetry.pdf" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">PDF</a></p>
<hr class="xh2  ">
<p><em>If you liked this tutorial, you may also enjoy these:</em></p>
<ul>
<li><a href="http://robohub.org/programming-for-robotics-introduction-to-ros/" target="_blank" data-wpel-link="internal">Programming for robotics: Introduction to ROS</a></li>
<li><a href="http://robohub.org/python-programming-your-nao-robot/" target="_blank" data-wpel-link="internal">Python programming your NAO robot</a></li>
<li><a href="http://robohub.org/robotics-maths-python-a-fledgling-computer-scientists-guide-to-inverse-kinematics/" target="_blank" data-wpel-link="internal">Robotics, maths, python: A fledgling computer scientist’s guide to inverse kinematics</a></li>
<li><a href="http://robohub.org/adjust-how-you-learn-and-quickly-pick-up-robotics-programming/" target="_blank" data-wpel-link="internal">Adjust how you learn and quickly pick up robotics programming</a></li>
<li><a href="http://robohub.org/3-d-printing-hydraulically-powered-robots-no-assembly-required/" target="_blank" data-wpel-link="internal">3-D printing hydraulically-powered robots, no assembly required</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Programming for robotics: Introduction to ROS</title>
		<link>https://robohub.org/programming-for-robotics-introduction-to-ros/</link>
		
		<dc:creator><![CDATA[Péter Fankhauser]]></dc:creator>
		<pubDate>Tue, 07 Mar 2017 15:15:39 +0000</pubDate>
				<category><![CDATA[education]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[household]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ROS]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">http://robohub.org/programming-for-robotics-introduction-to-ros/</guid>

					<description><![CDATA[This handy video-tutorial course gives an introduction to the Robot Operating System (ROS), including many of the available tools that are commonly used in robotics. With the help of different examples, the tutorials offer a great starting point to learn programming robots. You will learn how to create software including simulation, to interface sensors and actuators, [&#8230;]]]></description>
										<content:encoded><![CDATA[<img decoding="async" class="aligncenter size-full wp-image-73310" src="http://robohub.org/wp-content/uploads/2017/03/bigstock-156822308.jpg" alt="" width="900" height="600" srcset="https://robohub.org/wp-content/uploads/2017/03/bigstock-156822308.jpg 900w, https://robohub.org/wp-content/uploads/2017/03/bigstock-156822308-425x283.jpg 425w, https://robohub.org/wp-content/uploads/2017/03/bigstock-156822308-768x512.jpg 768w, https://robohub.org/wp-content/uploads/2017/03/bigstock-156822308-450x300.jpg 450w" sizes="(max-width: 900px) 100vw, 900px" />
<p>This handy video-tutorial course gives an introduction to the Robot Operating System (ROS), including many of the available tools that are commonly used in robotics. With the help of different examples, the tutorials offer a great starting point to learn programming robots. You will learn how to create software including simulation, to interface sensors and actuators, and to integrate control algorithms.<span id="more-73240"></span></p>
<p>The course consists of a guided tutorial and exercises with increasing level of difficulty working with an autonomous robot. We provide recordings of the lectures and give an introduction to the exercises. From the course website, you can download all the material including exercise sheets and templates, and use the provided Virtual Machine (VM) image to start programming right away.</p>
<p><strong>Objectives:</strong></p>
<ul>
<li>ROS architecture: Master nodes, topics, messages, services, parameters and actions</li>
<li>Console commands: Navigating and analyzing the ROS system and the catkin workspace</li>
<li>Creating ROS packages: Structure, launch-files, and best practices</li>
<li>ROS C++ client library (roscpp): Creating your own ROS C++ programs</li>
<li>Simulating with ROS: Gazebo simulator, robot models (URDF) and simulation environments (SDF)</li>
<li>Working with visualizations (RViz) and user interface tools (rqt)</li>
<li>Inside ROS: TF transformation system, time, bags</li>
</ul>
<hr class="xh2  ">
<p><strong>Course 1:</strong></p>
<div class="keep-aspect"><iframe title="Programming for Robotics (ROS) Course 1" width="500" height="281" src="https://www.youtube-nocookie.com/embed/0BxVPCInS3M?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p></p>
<hr class="xh2  ">
<p><strong>Course 2:</strong></p>
<div class="keep-aspect"><iframe title="Programming for Robotics (ROS) Course 2" width="500" height="281" src="https://www.youtube-nocookie.com/embed/jYqDnuxTwK8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p></p>
<hr class="xh2  ">
<p><strong>Course 3:</strong></p>
<div class="keep-aspect"><iframe title="Programming for Robotics (ROS) Course 3" width="500" height="281" src="https://www.youtube-nocookie.com/embed/_GgHFuib_LU?start=6&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p></p>
<hr class="xh2  ">
<p><strong>Course 4:</strong></p>
<div class="keep-aspect"><iframe title="Programming for Robotics (ROS) Course 4" width="500" height="281" src="https://www.youtube-nocookie.com/embed/feXC7aQrkeM?start=33&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p></p>
<p>Download the <a href="https://www.researchgate.net/publication/314101187_Programming_for_Robotics_-_Introduction_to_ROS" target="_blank" rel="noopener follow external noreferrer" data-wpel-link="external">full presentation here.</a></p>
<p>P. Fankhauser, D. Jud, M. Wermelinger, M. Hutter, “Programming for Robotics – Introduction to ROS”, ETH Zurich, 2017. DOI: 10.13140/RG.2.2.14140.44161<br />
<hr class="xh2  "></p>
<p><em>If you liked this tutorial, you may also enjoy these:</em></p>
<ul>
<li><a href="http://robohub.org/python-programming-your-nao-robot/" target="_blank" rel="noopener" data-wpel-link="internal">Python programming your NAO robot</a></li>
<li><a href="http://robohub.org/robotics-maths-python-a-fledgling-computer-scientists-guide-to-inverse-kinematics/" target="_blank" data-wpel-link="internal" rel="noopener">Robotics, maths, python: A fledgling computer scientist’s guide to inverse kinematics</a></li>
<li><a href="http://robohub.org/sticky-business-five-adhesives-tested-for-3d-printing/" target="_blank" data-wpel-link="internal" rel="noopener">Sticky business: Five adhesives tested for 3D printing</a></li>
<li><a href="http://robohub.org/adjust-how-you-learn-and-quickly-pick-up-robotics-programming/" target="_blank" data-wpel-link="internal" rel="noopener">Adjust how you learn and quickly pick up robotics programming</a></li>
<li><a href="http://robohub.org/3-d-printing-hydraulically-powered-robots-no-assembly-required/" target="_blank" data-wpel-link="internal" rel="noopener">3-D printing hydraulically-powered robots, no assembly required</a></li>
</ul>
<p><em>See all <a href="http://robohub.org/" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://robohub.org/&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNFmCoRAKHuz2BWNf-njm6KSkgAacA" data-wpel-link="internal" rel="noopener">the latest robotics news</a> on Robohub, or <a title="" href="http://eepurl.com/t-UEf" target="_blank" rel="external follow noopener noreferrer" data-saferedirecturl="https://www.google.com/url?hl=en-GB&amp;q=http://eepurl.com/t-UEf&amp;source=gmail&amp;ust=1477500783522000&amp;usg=AFQjCNGjDpzB3aAol7pCzSfh7VU9iN6oQQ" data-wpel-link="external">sign up for our weekly newsletter</a>.</em></p>
]]></content:encoded>
					
		
		
			</item>
	</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-11 08:02:12 by W3 Total Cache
-->