GithubHelp home page GithubHelp logo

rolker / camp Goto Github PK

View Code? Open in Web Editor NEW
21.0 5.0 17.0 21.45 MB

Planning software for autonomous surface and underwater vehicles.

License: BSD 2-Clause "Simplified" License

C++ 98.92% CMake 1.08%

camp's Introduction

CCOM Autonomous Mission Planner

Planning software for autonomous surface and underwater vehicles.

This was initially a stand-alone offline application for planning missions. A ROS based monitoring component got added and this is now a ROS package part of Project11.

Build

Include into a ROS workspace and it should build alonside your other packages.

Building on Windows 10 (old instructions)

Initially, CAMP was a cross-platform application. It may still compile on system other than Ubuntu, but this has not been tested in a while.

These were the steps followed using the lastest versions at the time. May also work with different versions.

  • Installed Visual Studio Community 2017
  • Installed QT 5.9.1 (offline installer) (selecting VS 2017 64bit libraries)
  • Installed CMake 3.9.1
  • Built GDAL 2.2.1 from source.

Building GDAL

  • edited nmake.opt modifiying GDAL_HOME to desired install location
  • opened x64 Native Tools COmmand Prompt for VS 2017
  • cd'ed to GDAL source directory
  • nmake -f makefile.vc MSVC_VER=1910 WIN64=1
  • nmake -f makefile.vc MSVC_VER=1910 WIN64=1 devinstall

Building AutonomousMissionPlanner

  • Using CMake GUI, choose source directory and build directory (created ./build/ in source directory)
  • Picked Visual Studio 15 2017 Win64 as the generator.
  • Help CMake find QT5 by pointing Qt5_DIR at C:\Qt\Qt5.9.1\5.9.1\msvc2017_64\lib\cmake\Qt5
  • Specify GDAL header and library locations
  • Customized CMAKE_INSTALL_PREFIX. (Default gave access errors trying to install)
  • Generate project
  • Opened AutonomousMissionPlanner.sln in build directory.
  • Built INSTALL target.

Contributed by @shujaatak to solve issue with finding proj4 dll at runtime:

Building PROJ4

  • Download PROJ4 - https://github.com/OSGeo/proj.4
  • Unzip it.
  • In the source directory, edit nmake.opt modifiying INSTDIR to desired install/build location
  • Run "VS2015 x64 Native Tools Command Prompt" for VS 2015
  • Change directory to PROJ4 source directory
  • Run these commands one after other:
    • nmake /f makefile.vc MSVC_VER=1910 WIN64=1
    • nmake /f makefile.vc MSVC_VER=1910 WIN64=1 install-all
  • After completion, you will find the compiled PROJ4 lib, include and bin folders in your specified install/build location, From bin folder, copy proj.dll to the AutonomousMissionPlanner.exe folder. Done!

camp's People

Contributors

rolker avatar sjwo avatar valschmidt avatar

Stargazers

 avatar  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

camp's Issues

Display the lat/lon of first point and update the heading and length of the first line in real-time for survey patterns

For survey patterns, after the first click, display the lat/lon of first point and update the heading and length of the first line in real-time. After the second click display and update the distance of the second dimension of the pattern, the distance between successive lines, the cumulative distance of the entire pattern, and given a default speed the time to compete the pattern. After the survey pattern is drawn, display all these parameters allowing modification of any of them.

What's our vision for a more autonomous mission planner?

Do we take baby steps with the Survey Pattern element adding features such as this suggestion from @valschmidt ?

"Another feature (not critical) would be to a survey pattern whose line
spacing grows linearly across the survey. One would specify the rate of
line spacing growth as a parameter. Useful for mapping slopes."

Or, do we take a higher level approach where we specify a polygon, and let the vehicle (or team of vehicles) figure out how to best map the area?

Unable to load PROJ.4 library

In the console, I get this error while opening a background:

ERROR 6: Unable to load PROJ.4 library (proj.dll), creation of OGRCoordinateTransformation failed.

Feature Requests

Converting the BSB to tiff using gdalwarp fixed any projection issues.

Here's a list of feature requests or minor fixes in nor order but as they occur to me:

Calculate distance between points in a trackline and cumulative distance. Give ability to specify speed (and to specify a default). Calculate time to complete the trackline.

For survey patterns, after the first click, display the lat/lon of first point and update the heading and length of the first line in real-time. After the second click display and update the distance of the second dimension of the pattern, the distance between successive lines, the cumulative distance of the entire pattern, and given a default speed the time to compete the pattern. After the survey pattern is drawn, display all these parameters allowing modification of any of them.

Add the ability to reorder items in a mission, moving them up or down relative to the others.

For a mission, calculate the total distance for the entire mission, including transits between entities, and total time given default or specified speeds.

The ability to add multiple backgrounds, adjust the layering of their display and transparency.

I suppose the menus could be re-arranged such that one creates and configures one or more platforms under the platform menu and then for any given platform creates one or missions. Then mission elements could be added under each mission created.

Buttons for adding each mission element.

Ability to select multiple mission elements (or a whole mission) and move them wholesale.

In the "survey pattern" tool, there's a small bug in which one cannot get a line to end at a point without inadvertently drawing the follow-on transit stub.

A measuring tool showing distance and bearing.

I did a series of clicks to specify a survey pattern which caused everything to crash. It was a east-to-west click at the same latitude followed by a third click above them.

I think that's it.
-val

Boat and track color

One needs the ability to change the color of the boat and track. I'm driving on a blue/green bathy surface from a geotiff and the dark green is hard to see. I changed the code to yellow in my checked-out code and it is much better, but of course yellow would be horrible on a chart.

UPDATE:
screenshot from 2018-05-24 12-39-42

Multiple Vessels

Maybe this is obvious, but it would be cool to be able to spawn multiple vehicles in simulation and assign different survey patterns to each.

GeoVizItem Enhancements

I've been publishing GeoVizItems recently and have come up with some feature requests to discuss!

It would be nice if objects posted had a time-out, such that they fade away after that duration, with the option to make them permanent (or cleared manually).

It would be nice to be able to post in the vehicle's map reference frame.

It would be nice to have a toolbox from which one could generate some basic shapes with little code. For example, a service that would generate basic polygons. Or maybe an ellipse when passed a covariance. What else would be useful?

Some files are missing

The project does not have subfolders and files:

geographic_msgs/GeoPointStamped.h
ros/ros.h
std_msgs/Bool.h
std_msgs/String.h

The application does not compile without them:

C:\Qt_Workspace\AutonomousMissionPlanner\rosnode.h:6: error: C1083: Cannot open include file: 'geographic_msgs/GeoPointStamped.h': No such file or directory

Build issues on OSX

Val found some issues build on his Mac. Creating an issue to track that the changes get incorporated back in here.

Line-spacing on survey pattern creation.

I showed JB our survey pattern tool and he suggested that, in addition to dynamically showing the total distance and time as one manipulates the widgets, we also show the line spacing. I think it's a good idea.

I have some other ideas. I have a matlab script in which I specify the parameters of a survey area (mean water depth, length, width), sonar parameters (swath half angle, number of soundings per ping, number of swaths per ping cycle, equidistant vs equiangular) and some desired survey parameters (percent overlap, alteration fraction which changes the line spacing on alternating lines, desired survey speed and maximum survey time). The script calculates and displays in a plot the lines for the survey (which may or may not cover more the whole specified survey area), shows and calculates the area coverage in square km, estimates the time to complete with some assumptions about the time for turns, and calculates the resulting data density (soundings/m^2). Here's an example where the original survey area was 10km x 5km, the speed was 5.5 knots, the survey time was 10 hours:

image

It would be useful to do the same dynamically as we draw a survey. We could specify all these parameters ahead of time, and then maybe provide dynamic guides/widgets which indicate things like minimum estimated sounding density, when the survey can be completed in the time allotted, etc.

Loading...

When loading a large background file, the user needs some polite feedback so he/she knows that he needs to be patient. Otherwise, one fears that the delay is some problem.

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.