EADDDAS /recuv/ en Look ma, no hands! /recuv/2015/06/26/look-ma-no-hands <span>Look ma, no hands!</span> <span><span>Anonymous (not verified)</span></span> <span><time datetime="2015-06-26T00:02:49-06:00" title="Friday, June 26, 2015 - 00:02">Fri, 06/26/2015 - 00:02</time> </span> <div> <div class="imageMediaStyle focal_image_wide"> <img loading="lazy" src="/recuv/sites/default/files/styles/focal_image_wide/public/article-thumbnail/screenshot_from_2015-06-26_005106_0.png?h=c2c9c9f2&amp;itok=v0dYjaSk" width="1200" height="600" alt="Reese"> </div> </div> <div role="contentinfo" class="container ucb-article-tags" itemprop="keywords"> <span class="visually-hidden">Tags:</span> <div class="ucb-article-tag-icon" aria-hidden="true"> <i class="fa-solid fa-tags"></i> </div> <a href="/recuv/taxonomy/term/12" hreflang="en">EADDDAS</a> <a href="/recuv/taxonomy/term/10" hreflang="en">FieldNotes</a> </div> <div class="ucb-article-content ucb-striped-content"> <div class="container"> <div class="paragraph paragraph--type--article-content paragraph--view-mode--default"> <div class="ucb-article-content-media ucb-article-content-media-above"> <div> <div class="paragraph paragraph--type--media paragraph--view-mode--default"> <div> <div class="imageMediaStyle large_image_style"> <img loading="lazy" src="/recuv/sites/default/files/styles/large_image_style/public/article-image/screenshot_from_2015-06-26_005106.png?itok=F4bO5bj-" width="1500" height="1024" alt="Reese"> </div> </div> </div> </div> </div> <div class="ucb-article-text d-flex align-items-center" itemprop="articleBody"> <div><p>Now that the EA-DDDAS framework has been put through the paces, we're planning two days of flight testing that allow the system operate fully autonomously. This means that the high-level planner and trajectory optimization layer will be left to their own devices to communicate, generate&nbsp;energy-aware trajectories, and send seamlessly stitched trajectories to the aircraft in real-time. The goal is to have no user intervention once the system has been launched and a goal has been set. We're planning to use the decommissioned&nbsp;Reese airfield to conduct flights upwards to 1.75 km away from the ground station using stationed observers who are always in communication with the pilot in command.</p><p>One of the recent challenges faced in the field was the ability (or lack thereof) to continuously send new trajectories to the PixHawk autopilot without causing the aircraft to RTL (return to loiter). Since the planners are generating paths ahead of the aircraft position, a method was needed to feed the trajectories to the aircraft with the correct timing. An additional constraint was the number of waypoints that are manageable on-board the aircraft. Since we use a 900 MHz radio link for long distance&nbsp;command and control, data rates are slow and packets are often lost during transfer. We found that a 100 waypoint plan is workable with the given data rates we see over the 900 link. With this in mind, we designed a circular buffer mission plan algorithm that allows trajectories to be continuously updated to the aircraft. Using a partial write command, we update certain ranges in the 100 waypoint plan. If a plan goes beyond&nbsp;the 100 waypoint limit, the plan is broken into two plans that wrap around back to the 1st waypoint using a DO_JUMP command. While this works well, it introduces another issue. If plans are being generated too quickly for the aircraft to follow, a queue will develop. To prevent this queue from over-writing points that the aircraft still needs to fly, the MISSION_CURRENT MavLink message is checked to see where the aircraft is in the circular buffer. This provides the necessary logic to delay the next waypoint write so only old waypoints are overwritten!</p><p>Sorry for the lack of generated optimal trajectory pictures&nbsp;so far, we haven't had a chance to dig through all of the logged data. Once we're back in CO, we'll be sure to have some results up ASAP.</p></div> </div> </div> </div> </div> <h2> <div class="paragraph paragraph--type--ucb-related-articles-block paragraph--view-mode--default"> <div>Off</div> </div> </h2> <div>Traditional</div> <div>0</div> <div>On</div> <div>White</div> Fri, 26 Jun 2015 06:02:49 +0000 Anonymous 134 at /recuv Successful System Test! /recuv/2015/06/23/successful-system-test <span>Successful System Test!</span> <span><span>Anonymous (not verified)</span></span> <span><time datetime="2015-06-23T13:29:50-06:00" title="Tuesday, June 23, 2015 - 13:29">Tue, 06/23/2015 - 13:29</time> </span> <div> <div class="imageMediaStyle focal_image_wide"> <img loading="lazy" src="/recuv/sites/default/files/styles/focal_image_wide/public/article-thumbnail/dsc00906.jpg?h=1055184f&amp;itok=vh96p_HB" width="1200" height="600" alt="radar planner"> </div> </div> <div role="contentinfo" class="container ucb-article-tags" itemprop="keywords"> <span class="visually-hidden">Tags:</span> <div class="ucb-article-tag-icon" aria-hidden="true"> <i class="fa-solid fa-tags"></i> </div> <a href="/recuv/taxonomy/term/12" hreflang="en">EADDDAS</a> <a href="/recuv/taxonomy/term/10" hreflang="en">FieldNotes</a> </div> <div class="ucb-article-content ucb-striped-content"> <div class="container"> <div class="paragraph paragraph--type--article-content paragraph--view-mode--default"> <div class="ucb-article-content-media ucb-article-content-media-above"> <div> <div class="paragraph paragraph--type--media paragraph--view-mode--default"> </div> </div> </div> <div class="ucb-article-text d-flex align-items-center" itemprop="articleBody"> <div><p>We've flown a full system test with data flow originating from the dual-doppler radar synthesis, feeding the energy-aware path planner resulting in plans sent accordingly to the PixHawk autopilot on-board the Tempest aircraft. Several different radar and atmospheric planner configurations were tested today to see how the aircraft performance varied with the different types of wind data. Data is currently being processed but some more of the interesting trajectories will be posted later this week. For now, check out a POV video of our Tempest aircraft (the loop was NOT an energy-optimal path!)</p><p>&nbsp;</p><p>[video:https://www.youtube.com/watch?v=W5pUZ4PWlMk]</p></div> </div> </div> </div> </div> <h2> <div class="paragraph paragraph--type--ucb-related-articles-block paragraph--view-mode--default"> <div>Off</div> </div> </h2> <div>Traditional</div> <div>0</div> <div>On</div> <div>White</div> Tue, 23 Jun 2015 19:29:50 +0000 Anonymous 132 at /recuv End of Week 1 /recuv/2015/06/21/end-week-1 <span>End of Week 1</span> <span><span>Anonymous (not verified)</span></span> <span><time datetime="2015-06-21T21:35:18-06:00" title="Sunday, June 21, 2015 - 21:35">Sun, 06/21/2015 - 21:35</time> </span> <div> <div class="imageMediaStyle focal_image_wide"> <img loading="lazy" src="/recuv/sites/default/files/styles/focal_image_wide/public/article-thumbnail/dsc01064.jpg?h=25b231d6&amp;itok=OwMhOoUj" width="1200" height="600" alt="Tempest landing"> </div> </div> <div role="contentinfo" class="container ucb-article-tags" itemprop="keywords"> <span class="visually-hidden">Tags:</span> <div class="ucb-article-tag-icon" aria-hidden="true"> <i class="fa-solid fa-tags"></i> </div> <a href="/recuv/taxonomy/term/12" hreflang="en">EADDDAS</a> <a href="/recuv/taxonomy/term/10" hreflang="en">FieldNotes</a> </div> <div class="ucb-article-content ucb-striped-content"> <div class="container"> <div class="paragraph paragraph--type--article-content paragraph--view-mode--default"> <div class="ucb-article-content-media ucb-article-content-media-above"> <div> <div class="paragraph paragraph--type--media paragraph--view-mode--default"> <div> <div class="imageMediaStyle large_image_style"> <img loading="lazy" src="/recuv/sites/default/files/styles/large_image_style/public/article-image/dsc00737.jpg?itok=HpzwndL0" width="1500" height="999" alt="Tempest Launch"> </div> </div> </div> </div> </div> <div class="ucb-article-text d-flex align-items-center" itemprop="articleBody"> <div><p>Sorry for the lack of updates, things have been very busy here in Lubbock. We've run into a bunch of unforseen challenges along the way, but it wouldn't be an engineering field deployment if everything went perfectly the first time! Since our first week of the deployment has come to a close, we can recap our successes and what lies ahead for week 2.</p><p><strong>For the first week, we successfully:</strong></p><p>1. Collected and synced&nbsp;dual-doppler synthesis data</p><p>2. Ran this data through an Online Atmospheric Planner algorithm</p><p>3. Transferred this data to a MongoDB operating in the field</p><p>4. Connected a high-level graph planner with the trajectory optimization layer</p><p>5. Submitted energy-optimal paths to the aircraft in real-time (and flew them&nbsp;in AUTO mode)</p><p>6. Fixed a whole lot of bugs!</p><p>While the system still hasn't been run in its entirety, we are excited that the 2nd week will be more testing and less troubleshooting. Monday will contain another attempt to link every component of the EA-DDDAS and submit some loitering trajectories to the aircraft. These will be compared to simple "flat" circular trajectories to evaluate the efficacy of flying energy-optimal trajectories.</p><p>The Tempest has been flying great thanks to our excellent and dedicated flight crew. Spirits remain high as we are excited and optimistic about the flight tests that lay ahead.</p><p>That's all for now, I'll try to update more frequently this week to give a day-by-day breakdown of our progress.</p></div> </div> </div> </div> </div> <h2> <div class="paragraph paragraph--type--ucb-related-articles-block paragraph--view-mode--default"> <div>Off</div> </div> </h2> <div>Traditional</div> <div>0</div> <div>On</div> <div>White</div> Mon, 22 Jun 2015 03:35:18 +0000 Anonymous 130 at /recuv Deployment Update /recuv/2015/06/17/deployment-update <span>Deployment Update</span> <span><span>Anonymous (not verified)</span></span> <span><time datetime="2015-06-17T12:28:21-06:00" title="Wednesday, June 17, 2015 - 12:28">Wed, 06/17/2015 - 12:28</time> </span> <div> <div class="imageMediaStyle focal_image_wide"> <img loading="lazy" src="/recuv/sites/default/files/styles/focal_image_wide/public/article-thumbnail/img_0296.jpg?h=cf585d55&amp;itok=_-tJ8dsr" width="1200" height="600" alt="Radar connectivity testing"> </div> </div> <div role="contentinfo" class="container ucb-article-tags" itemprop="keywords"> <span class="visually-hidden">Tags:</span> <div class="ucb-article-tag-icon" aria-hidden="true"> <i class="fa-solid fa-tags"></i> </div> <a href="/recuv/taxonomy/term/12" hreflang="en">EADDDAS</a> <a href="/recuv/taxonomy/term/10" hreflang="en">FieldNotes</a> </div> <div class="ucb-article-content ucb-striped-content"> <div class="container"> <div class="paragraph paragraph--type--article-content paragraph--view-mode--default"> <div class="ucb-article-content-media ucb-article-content-media-above"> <div> <div class="paragraph paragraph--type--media paragraph--view-mode--default"> <div> <div class="imageMediaStyle large_image_style"> <img loading="lazy" src="/recuv/sites/default/files/styles/large_image_style/public/article-image/img_0296.jpg?itok=JR1OnCXx" width="1500" height="1125" alt="Radar connectivity testing"> </div> </div> </div> </div> </div> <div class="ucb-article-text d-flex align-items-center" itemprop="articleBody"> <div><p>The EA-DDDAS systems are being&nbsp;tested and steadily coming online. We successfully received Ka-doppler data, advanced the wind field through an online forecast system, and recorded the wind field to a MongoDB system operating in the field. This database is accessed in real-time by the trajectory optimization layer as well as the lattice planner.&nbsp;With a new set of&nbsp;forecasts being generated every three minutes, there's a lot of data to capture and index!</p><p>The Tempest/PixHawk platform has completed a successful flight test this morning and tested some key network and antenna tracker systems. If all goes well, tomorrow should be the first complete field test of the EA-DDDAS flight system. The recent tropical storm Bill that made landfall yesterday has spoiled a bit of the intereting wind shear pattern we are hoping to fly in. Fortunately, this calm will air will move on as the storm progress north towards Oklahoma. To give you an idea of the stillness, the radar reported a max East wind speed of 5 m/s at 100 meters altitude.</p><p>The next few days of testing should be pretty exciting: generating energy-aware trajectories using real-time wind field data and sending them to the aircraft to fly! Fingers are crossed for a favorable wind shear that we can play in.</p><p>More news to follow tomorrow after flight testing!</p><p>&nbsp;</p><p>&nbsp;</p></div> </div> </div> </div> </div> <h2> <div class="paragraph paragraph--type--ucb-related-articles-block paragraph--view-mode--default"> <div>Off</div> </div> </h2> <div>Traditional</div> <div>0</div> <div>On</div> <div>White</div> Wed, 17 Jun 2015 18:28:21 +0000 Anonymous 128 at /recuv FAA grants RECUV COA for Texas and Oklahoma panhandles for severe weather research /recuv/2015/05/28/faa-grants-recuv-coa-texas-and-oklahoma-panhandles-severe-weather-research <span>FAA grants RECUV COA for Texas and Oklahoma panhandles for severe weather research</span> <span><span>Anonymous (not verified)</span></span> <span><time datetime="2015-05-28T17:12:01-06:00" title="Thursday, May 28, 2015 - 17:12">Thu, 05/28/2015 - 17:12</time> </span> <div role="contentinfo" class="container ucb-article-tags" itemprop="keywords"> <span class="visually-hidden">Tags:</span> <div class="ucb-article-tag-icon" aria-hidden="true"> <i class="fa-solid fa-tags"></i> </div> <a href="/recuv/taxonomy/term/12" hreflang="en">EADDDAS</a> <a href="/recuv/taxonomy/term/8" hreflang="en">news</a> </div> <div class="ucb-article-content ucb-striped-content"> <div class="container"> <div class="paragraph paragraph--type--article-content paragraph--view-mode--default"> <div class="ucb-article-content-media ucb-article-content-media-above"> <div> <div class="paragraph paragraph--type--media paragraph--view-mode--default"> <div> <div class="imageMediaStyle large_image_style"> <img loading="lazy" src="/recuv/sites/default/files/styles/large_image_style/public/article-image/tempest_aviate.jpg?itok=nqfv1Nyo" width="1500" height="971" alt="Tempest"> </div> </div> </div> </div> </div> <div class="ucb-article-text d-flex align-items-center" itemprop="articleBody"> <div><p><a href="http://www.colorado.edu/news/releases/2015/05/27/faa-grants-drone-access-texas-and-oklahoma-panhandles-weather-research" target="_blank" rel="nofollow">RECUV has received permission from the Federal Aviation Administration</a> to start flying&nbsp;the Tempest UAS&nbsp;over parts of Texas and Oklahoma this spring in the heart of Tornado Alley to conduct weather research.&nbsp;The new “southern COA” complements the 48,000-square-mile “northern COA” previously granted by the FAA that covers portions of Colorado, Kansas, Nebraska and Wyoming.&nbsp;The northern and southern COA’s together cover an area about the size of Colorado. The Tempest is an Unmanned Aircraft System (UAS) with a wingspan of more than 10 feet developed at CU-«Ƶ to better understand the origin and development of severe storms by flying to their edges and measuring air pressure, temperature, relative humidity and wind velocities.</p><p>&nbsp;</p><p>&nbsp;</p></div> </div> </div> </div> </div> <h2> <div class="paragraph paragraph--type--ucb-related-articles-block paragraph--view-mode--default"> <div>Off</div> </div> </h2> <div>Traditional</div> <div>0</div> <div>On</div> <div>White</div> Thu, 28 May 2015 23:12:01 +0000 Anonymous 124 at /recuv MAVLink Protocol: Waypoints /recuv/2015/05/25/mavlink-protocol-waypoints <span>MAVLink Protocol: Waypoints</span> <span><span>Anonymous (not verified)</span></span> <span><time datetime="2015-05-25T17:42:01-06:00" title="Monday, May 25, 2015 - 17:42">Mon, 05/25/2015 - 17:42</time> </span> <div> <div class="imageMediaStyle focal_image_wide"> <img loading="lazy" src="/recuv/sites/default/files/styles/focal_image_wide/public/article-thumbnail/wpmavlink_0.png?h=c9fd1f8e&amp;itok=bw2CF2hW" width="1200" height="600" alt="MAVlink 1.0 Waypoint Protocol"> </div> </div> <div role="contentinfo" class="container ucb-article-tags" itemprop="keywords"> <span class="visually-hidden">Tags:</span> <div class="ucb-article-tag-icon" aria-hidden="true"> <i class="fa-solid fa-tags"></i> </div> <a href="/recuv/taxonomy/term/12" hreflang="en">EADDDAS</a> <a href="/recuv/taxonomy/term/10" hreflang="en">FieldNotes</a> </div> <div class="ucb-article-content ucb-striped-content"> <div class="container"> <div class="paragraph paragraph--type--article-content paragraph--view-mode--default"> <div class="ucb-article-content-media ucb-article-content-media-above"> <div> <div class="paragraph paragraph--type--media paragraph--view-mode--default"> <div> <div class="imageMediaStyle large_image_style"> <img loading="lazy" src="/recuv/sites/default/files/styles/large_image_style/public/article-image/wpmavlink_0.png?itok=ze8SLOUl" width="1500" height="1107" alt="MAVlink 1.0 Waypoint Protocol"> </div> </div> </div> </div> </div> <div class="ucb-article-text d-flex align-items-center" itemprop="articleBody"> <div><p>During the EA-DDDAS deployment this summer we'll be flying a Tempest with a PixHawk autopilot on-board. The PixHawk uses the well-known MAVLink protocol released&nbsp;by&nbsp;Lorenz Meier over at ETH Zürich. The protocol was designed to be language and (mostly) hardware agnostic which is great for portability but this means there isn't much existing framework to write your own simple programs to interface with the PixHawk. While the recently refreshed DroneKit released by 3DR includes a Python implementation (DroneAPI), it only runs as a MAVProxy module. This can be an issue if the code is running on a small supervisory computer like a Raspberry Pi because MAVProxy isn't terribly efficient.&nbsp;We prefer to use MAVProxy as a learning tool that provides a starting point to implementing our own PyMAVLink solution.</p><p>We've been developing a Python class for EA-DDDAS that implements a basic&nbsp;waypoint send functionality. Through mavutil.py and mavwp.py, the PyMAVLink library provides the required commands to form and send waypoints. Before&nbsp;diving into some code, it's important to understand how MAVLink accepts a set of waypoints. The sender intializes the request by sending a WAYPOINT_COUNT(N) message to the PixHawk. N represents the number of waypoints that will be sent. The PixHawk responds in turn by asking for the first waypoint through a MISSION_REQUEST(WP) message where WP is the waypoint index it's going to wait for. This process goes back and forth until the PixHawk receives the Nth waypoint and sends an ACK command to tell everyone involved that the transaction is finished.</p><p>Here is what it looks like in Python (connected to the ArduPilot SITL):</p><p><strong>The code assumes you have a three tuples called "lat", "lon", and "alt" which are "N" long.</strong></p><div class="ucb-box ucb-box-title-left ucb-box-alignment-none ucb-box-style-fill ucb-box-theme-lightgray"> <div class="ucb-box-inner"> <div class="ucb-box-title">Sending waypoints with PyMAVLink</div> <div class="ucb-box-content"><p>from pymavlink import mavutil, mavwp<br>master = mavutil.mavlink_connection('udp:localhost:14551') &nbsp;<br>master.wait_heartbeat(blocking=True) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br>wp = mavwp.MAVWPLoader() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>seq = 1<br>frame = mavutil.mavlink.MAV_FRAME_GLOBAL_RELATIVE_ALT<br>radius = 10<br>for i in range(N): &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wp.add(mavutil.mavlink.MAVLink_mission_item_message(master.target_system,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;master.target_component,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;seq,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;frame,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mavutil.mavlink.MAV_CMD_NAV_WAYPOINT,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0, 0, 0, radius, 0, 0,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lat[i],lon[i],alt[i]))<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; seq += 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</p><p>master.waypoint_clear_all_send() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br>master.waypoint_count_send(wp.count()) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><p>for i in range(wp.count()):<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;msg = master.recv_match(type=['MISSION_REQUEST'],blocking=True) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;master.mav.send(wp.wp(msg.seq)) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;print 'Sending waypoint {0}'.format(msg.seq) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</p></div> </div> </div><p>The basic procedure is as follows:</p><p>1. Establish a UDP connection to the aircraft</p><p>2. Listen for a heartbeat to make sure we're receiving MAVLink messages</p><p>3. Create a waypoint (wp) object and populate it with lat,lon,altitudes</p><p>4. Send a clear all waypoints command to the PixHawk</p><p>5. Send a MISSION_COUNT(N) to the PixHawk</p><p>6. Listen for MISSION_REQUEST messages and sent the appropriate waypoint</p><p>7. Repeat step 6 until complete</p><p>Whew! PyMAVLink is a great library, but it's still not the easiest to use. Something to note is that MAVLink has two released versions of the protocol: 0.9 and 1.0. This code assumes v1.0 and uses the "MISSION_REQUEST" message. In v0.9, this would be "WAYPOINT_REQUEST".</p><p>Cheers for now!</p><p>&nbsp;</p></div> </div> </div> </div> </div> <h2> <div class="paragraph paragraph--type--ucb-related-articles-block paragraph--view-mode--default"> <div>Off</div> </div> </h2> <div>Traditional</div> <div>0</div> <div>On</div> <div>White</div> Mon, 25 May 2015 23:42:01 +0000 Anonymous 120 at /recuv Introducing the Trajectory Optimization Layer /recuv/2015/05/14/introducing-trajectory-optimization-layer <span>Introducing the Trajectory Optimization Layer</span> <span><span>Anonymous (not verified)</span></span> <span><time datetime="2015-05-14T14:28:33-06:00" title="Thursday, May 14, 2015 - 14:28">Thu, 05/14/2015 - 14:28</time> </span> <div> <div class="imageMediaStyle focal_image_wide"> <img loading="lazy" src="/recuv/sites/default/files/styles/focal_image_wide/public/article-thumbnail/googleearth_screen.png?h=a9186c0a&amp;itok=RQgCSscL" width="1200" height="600" alt="A stitched two-segment guidance trajectory in Google Earth"> </div> </div> <div role="contentinfo" class="container ucb-article-tags" itemprop="keywords"> <span class="visually-hidden">Tags:</span> <div class="ucb-article-tag-icon" aria-hidden="true"> <i class="fa-solid fa-tags"></i> </div> <a href="/recuv/taxonomy/term/12" hreflang="en">EADDDAS</a> <a href="/recuv/taxonomy/term/10" hreflang="en">FieldNotes</a> </div> <div class="ucb-article-content ucb-striped-content"> <div class="container"> <div class="paragraph paragraph--type--article-content paragraph--view-mode--default"> <div class="ucb-article-content-media ucb-article-content-media-above"> <div> <div class="paragraph paragraph--type--media paragraph--view-mode--default"> <div> <div class="imageMediaStyle large_image_style"> <img loading="lazy" src="/recuv/sites/default/files/styles/large_image_style/public/article-image/pathplannerlayers-1.png?itok=UM67wjdX" width="1500" height="1024" alt="The Path Planner Hierarchy"> </div> </div> </div> </div> </div> <div class="ucb-article-text d-flex align-items-center" itemprop="articleBody"> <div><p>The Trajectory Optimization Layer (TOL) is a middleware component of the EA-DDDAS aircraft control system. It resides below the extended time-horizon path planner and above the aircraft path following controller. It's primary responsibility is generating energy-aware optimal flight trajectories in real-time using measured data of the wind environment.</p><p>By harnessing the wind energy already present in the storm environment, these energy-aware trajectories could extend the range and endurance of sUAS, especially in severe weather applications. &nbsp;The TOL is one of the primary EA-DDDAS components being tested this summer in Lubbock, TX.</p><p>At the moment, the TOL is capable of generating and stitching together several guidance trajectories (point A to point B flight) and sending this optimized path to the Pixhawk autopilot on-board the aircraft via a network link. Given a latitude, longitude, and altitude goal, the TOL logic hashes up the path to the goal into several smaller chunks which are then optimized individually and seamlessly stitched together. The goal of this software is to handle any goal provided to it (within a reasonable distance) and provide the aircraft with a single stitched trajectory to that goal. The code can also output KML and JSON versions of the trajectory so it can be viewed in Google Earth as the code runs (see picture).</p><p>Upcoming work includes developing a python wrapper for loitering-class trajectories (staying in or around a pre-designated region), testing the TOL within a software-in-the-loop system, and decreasing optimization times by pre-allocating wind data from the MongoDB server.</p><p>Stay tuned!&nbsp;</p></div> </div> </div> </div> </div> <h2> <div class="paragraph paragraph--type--ucb-related-articles-block paragraph--view-mode--default"> <div>Off</div> </div> </h2> <div>Traditional</div> <div>0</div> <div>On</div> <div>White</div> Thu, 14 May 2015 20:28:33 +0000 Anonymous 118 at /recuv Welcome to RECUV Field Notes /recuv/2015/04/10/welcome-recuv-field-notes <span>Welcome to RECUV Field Notes</span> <span><span>Anonymous (not verified)</span></span> <span><time datetime="2015-04-10T16:17:30-06:00" title="Friday, April 10, 2015 - 16:17">Fri, 04/10/2015 - 16:17</time> </span> <div> <div class="imageMediaStyle focal_image_wide"> <img loading="lazy" src="/recuv/sites/default/files/styles/focal_image_wide/public/article-thumbnail/skywalker_air.jpg?h=e4eed6d6&amp;itok=SuGZmcun" width="1200" height="600" alt="Skywalker"> </div> </div> <div role="contentinfo" class="container ucb-article-tags" itemprop="keywords"> <span class="visually-hidden">Tags:</span> <div class="ucb-article-tag-icon" aria-hidden="true"> <i class="fa-solid fa-tags"></i> </div> <a href="/recuv/taxonomy/term/12" hreflang="en">EADDDAS</a> <a href="/recuv/taxonomy/term/10" hreflang="en">FieldNotes</a> </div> <div class="ucb-article-content ucb-striped-content"> <div class="container"> <div class="paragraph paragraph--type--article-content paragraph--view-mode--default"> <div class="ucb-article-content-media ucb-article-content-media-above"> <div> <div class="paragraph paragraph--type--media paragraph--view-mode--default"> <div> <div class="imageMediaStyle large_image_style"> <img loading="lazy" src="/recuv/sites/default/files/styles/large_image_style/public/article-image/recuv_logo2.png?itok=i5hsxmQj" width="1500" height="600" alt="RECUV"> </div> </div> </div> </div> </div> <div class="ucb-article-text d-flex align-items-center" itemprop="articleBody"> <div><p>This is where we will be providing the latest news and updates on our EA-DDDAS field deployments this June in Lubbock, TX. Check back closer to June for news!</p><p></p></div> </div> </div> </div> </div> <h2> <div class="paragraph paragraph--type--ucb-related-articles-block paragraph--view-mode--default"> <div>Off</div> </div> </h2> <div>Traditional</div> <div>0</div> <div>On</div> <div>White</div> Fri, 10 Apr 2015 22:17:30 +0000 Anonymous 100 at /recuv