GithubHelp home page GithubHelp logo

gisma / uavrmp Goto Github PK

View Code? Open in Web Editor NEW
20.0 5.0 12.0 53.28 MB

Unmanned Aerial Vehicle R based Mission Planner

Home Page: https://gisma.github.io/uavRmp

License: GNU General Public License v3.0

R 40.11% JavaScript 17.83% Python 37.75% CSS 4.32%
r drone terrain-mapping cultural-heritage photogrammetry terrain-following forest-mapping dji flight-planning pixhawk-controller

uavrmp's Introduction

Unmanned Aerial Vehicle R based Mission Planning - uavRmp

cran checks monthly total CRAN License

The uavRmp package is designed for a light weighted uav autonomous mission planning including full documentation capabilities. In the first place it is a simple and open source planning tool for monitoring flights of low budget drones based on R. It provide an easy workflow for planning autonomous surveys including battery-dependent task splitting, save departures, and approaches of each monitoring chunks.

Introduction

The majority of the open UAV community is using the PixHawk autopilot unit and for planning probably the MissionPlanner or a bit more basic QGroundControl ground station software. Both are well documented and provide APIs (Application program interface) and easy to use GUIs (graphical user interface). Nevertheless both have only a poor planning support for terrain following autonomous flights (basically SRTM data) and no straightforward support for battery-dependent task splitting and save departures and approaches (MissionPlanner).

The uavRmp bridges this gap and generates MAVLINK format compliant mission files that can be uploaded to the Pixhawk controller using an integrated function or externally by any Ground Control Station software.

Supported UAV platforms

Up to now the uavRmp package has been dedicated to low budget rtf-UAVs (ready-to-fly) as the DJI series that are supported by Litchi and Pixhawk based platforms as the Yuneec UAVs or the outdated but still running 3DR Solo.

The core planning tool makeAP (make arial flight plan) creates either intermediate flight control files for the DJI UAVs or waypoint files for the PixHawk family. Furthermore the option useMP unifies flight planning for PixHawk based platforms and DJI consumer drones. as it offers an easy conversion of surveys planned with QgroundControl into the format readable by Litchi.

News

NOTE: The Litchi export for DJI Consumer drones is significantly improved now. For details have a look at the vignette.

NOTE: Starting with Version 0.6.3 the raster package is removed and you need to provide the terra package SpatRaster format only.

NOTE: You may use now the survey planning tool of QGroundControl or Missionplanner and convert it either to DJI compatible Litchi format or MavLink files. Both with safe flights to the mission start and RTH as well as task splitting. You will find an simple GUI interface calling shiny::runApp(system.file("shiny/plan2litchi/", "/app.R", package = "uavRmp")).

NOTE: The DJI control files are designed for using with the proprietary Litchi flight control app exchange format, while the PixHawk/3DR Solo files are using the MAVLINK common message format, that is used by the PixHawk flight controller family.

Installation

You need GDAL to be installed. For using some of the the 3DR Solo related functions you need to install the python libs in addition.

To install the most actual version do it from github you need to have installed the devtools package.

install.packages("devtools")

devtools::install_github("gisma/uavRmp", ref = "master")

uavrmp's People

Contributors

gisma avatar ludwigm6 avatar opgenoorth avatar richte4d avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

uavrmp's Issues

warning caused by new sf version

With sf 0.7-0 (submitted to CRAN) I now see

> library(uavRmp)
Warning message:
replacing previous importgdalUtils::gdal_rasterizebysf::gdal_rasterizewhen loadinguavRmp

It looks like this is not caused by uavRmp but by one of its dependencies; I couldn't find out which. Selectively importing from them instead of importing most packages completely might resolve this.

Failed to install

Package install fails with error below. I guess this is because of R 4.0.0?
CRAN check also failed (you probably know already)

✓  checking for file ‘/tmp/RtmpyIA9Ej/remotes158937e85a783/gisma-uavRmp-6706210/DESCRIPTION’ ...
─  preparing ‘uavRmp’:
✓  checking DESCRIPTION meta-information ...
   Warning in grepl(e, files, perl = TRUE, ignore.case = TRUE) :
     PCRE pattern compilation error
   	'unrecognized character follows \'
   	at 'inst\examples$'
   Error in grepl(e, files, perl = TRUE, ignore.case = TRUE) : 
     invalid regular expression '^\inst\examples$'
   Execution halted
Error: Failed to install 'uavRmp' from GitHub:
  System command 'R' failed, exit status: 1, stdout + stderr:
E> * checking for file ‘/tmp/RtmpyIA9Ej/remotes158937e85a783/gisma-uavRmp-6706210/DESCRIPTION’ ... OK
E> * preparing ‘uavRmp’:
E> * checking DESCRIPTION meta-information ... OK
E> Warning in grepl(e, files, perl = TRUE, ignore.case = TRUE) :
E>   PCRE pattern compilation error
E> 	'unrecognized character follows \'
E> 	at 'inst\examples$'
E> Error in grepl(e, files, perl = TRUE, ignore.case = TRUE) : 
E>   invalid regular expression '^\inst\examples$'
E> Execution halted

Please remove dependencies on **rgdal**, **rgeos**, and/or **maptools**

This package depends on (depends, imports or suggests) raster and one or more of the retiring packages rgdal, rgeos or maptools (https://r-spatial.org/r/2022/04/12/evolution.html). Since raster 3.6.3, all use of external FOSS library functionality has been transferred to terra, making the retiring packages very likely redundant. It would help greatly if you could remove dependencies on the retiring packages as soon as possible.

makeAP for DJI Air 2S (dji32) returns NA altitudes in lichti

Design a plan in QGC for DJI Air 2S (survey mode, agl, corresponding camera parameters, etc.) and export the generated ".plan" file to uavRmp. I set up the makeAP call very similar to the example on https://gisma.github.io/uavRmp/articles/uavRmp_1.html#field-guide.

When loading the csv (generated in uavRmp) to lichti I get NA in all WP, i.e. I have no flight altitude values in agl mode. FYI I installed uavRmp again from the github. Here an example of the makeAP call

uavRmp::makeAP(surveyArea=fp,
useMP = TRUE,
projectDir = "E:/path",
followSurface = TRUE,
demFn = dsm,
horizonFilter = 3,
followSurfaceRes = 3,
altFilter = 2.5,
cameraType = "dji32",
uavType = "dji_csv",
above_ground = FALSE)

This code was working just a few hours ago with cameraType = dji4k . I'm trying to find the root cause of the error but I can't find the solution, thanks :)

Error message on tutorial code

Hello,
I was working through the examples in the vignettes to get an understanding of the functions of uavRmp. I was using the following code:

fa <- system.file("extdata", "flightarea.kml", package = "uavRmp")
fp<-makeAP(surveyArea=fa,
            maxSpeed =35,
            demFn = fn)

require(mapview)
 mapview(fp[[5]],color="red", alpha.regions =0.1,lwd=0.5)+
 mapview(fp[[1]],lwd=1,cex=4)+
 mapview(fp[[3]],color="red",cex=5)+
 mapview(fp[[4]],color="darkblue", alpha.regions =0.1,lwd=0.5)

The result was an error message " Error: NULL is not a directory! "

Most probably, it comes from fp[[3]], which was "NULL"
Screenshot uavRmp
sessionInfo uavRmp

UgCS

Hi, guys
what do you mean here - "Other commmerical competitors like the powerful ugcs software package are still lacking an advanced capability for generating smooth and save surface following flight tasks for low AGL (above ground level) altitudes."
I'm CTO of SPH Engineering and I think that I know functionality of UgCS...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.