Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Windows fixes #85

Merged
merged 66 commits into from
Apr 7, 2020
Merged

Windows fixes #85

merged 66 commits into from
Apr 7, 2020

Conversation

jredmondson
Copy link
Owner

@jredmondson jredmondson commented Apr 3, 2020

Major feature release to version 1.3.0. This version resumes Windows support and is also directly supported in plugins for Unreal Engine development (see GamsPlugins). The following features are worth noting:

  • Direct Windows/Visual Studio support and functional base_build.bat installation script
  • Updated Linux and Mac build via base_build.sh
  • Cmake support for Windows, Mac, Linux
  • Scrimmage support (feature scrimmage)
  • OSC transport and Unreal Engine support in UnrealGAMS from VertexStudio (feature osc)
  • Direct support for GamsPlugins for UE4
  • Hive controller, advanced Multicontroller, and various threading enhancements
  • Hundreds of bug fixes and quality-of-life improvements

Features removed:

  • Any type, capnp, cereal support

Features temporarily disabled:

  • ros support (ros2gams, rosbridge)

* Added capnp feature, similar to the one added to MADARA
* Fixed warnings about conversions in several places
* Updated base_build.bat script to be slightly better for windows
building but still requires forcing installation of capnp or other
tools. I may have to give up on .bat scripting and just use perl or
something else here to properly set variables and dictate installation
flow.
* Fixed some external linking issues involving usage of GAMS_EXPORT
* Fixed OSC linking on Windows
* Only current issue that needs looking into is a set of C4244 warnings involving xutility
…ears to be a linking error in clang for gams_controller involving MADARA linking
…currently has capnp baked in with no feature enabling
* Updated base_build.sh to use latest Eigen and clang 6.0
…m not entirely sure it's necessary at this point to support the Java and capnp build anymore
* Updated base_build.sh to respect the CC and CXX that is passed to the script as environment variables
* Updated travis.yml to force clang-5.0++
…ult. This allows for the creation of appropriate self_ variables within platforms without needing to call init_variables after an init_platform call
* Updated .travis.yml to include types checks on test_any test
  * Can invoke specific installation and compilation with clang-5, clang-6, clang-8, and clang-9
…FIX or any of the FORCE_CC/CXX options in your bashrc. It should automatically do things now for clang-8 or clang-9
* Updated Travis CI config with updated jobs/exclude keywords
jredmondson and others added 27 commits March 12, 2020 16:07
* Updating Mac build
  instead of the GAMS_ROOT environment variable (which may not be set
  yet)
  help with supporting Unreal Engine on Mac and future build features
  instead of requiring all variables to be initialized in swarm vars
* Added refresh_vars to Multicontroller
* Reduced memory footprint for large swarms substantially in
  Multicontroller
* Updated Cmake to install Boost and MADARA through find_package
* Added configuration and cmake system for GAMS
  creating swarm variables, when it should just init_vars with the id to
  start with for populating self_ variables
* Updated MADARA and GAMS installation so linkage
… Linux

* Updated CMakeLists.txt to build on Linux
* Fixed incompatibilities between Cmake Windows, Linux, Mac
* Added test for HiveController
* Added default installs for tests and programs in cmake
* Added exists function to PlatformFactoryRepository to check if an
  alias is already assigned for a platform factory
* Added more debugging to test_hivecontroller when errors occur
* Added updated base build script which includes scrimmage

* Change from SCRIMMAGE_ROOT to SCRIMMAGE_GIT_ROOT because of collisions in SCRIMMAGE setup.sh

* Copy pasta file for linking

* Added cleanenv option which resets the environment. Fixes a longtime running bug where switching environments will cause the dependencies to be installed in different locations

* Add scrimmage feature

* Added building and linking files for scrimmage

* Small fix

* Starting work for integrating the build of a SCRIMMAGE plugin

* Fixing long standing bug where GAMS re-clones itself disregarding the fact that gams was already cloned and installed on a PC. Now, if the present working directory name is gams, it will not do so

* Upd

* Fix cleanenv

* Fix circular dependency

* Fix plugin path setting to happen after GAMS_ROOT is set

* Add plugin stubs to test if plugin is loading

* Added xml files and fixed using_scrimmage for include paths

* Small bug fixes to build process. Trying to debug missing headers for plugin linking

* Fix ordering in base build

* Numerous changes and SCRIMMAGE_ROOT fixes

* Added fix for endif in GAMSAutonomy

* Fixed build files, temporarily forcing use of c++14 so it compiles.

* Added updated gams.pc

* Added updated base build script which includes scrimmage

* Change from SCRIMMAGE_ROOT to SCRIMMAGE_GIT_ROOT because of collisions in SCRIMMAGE setup.sh

* Merge capnp and scrimmage changes in basebuild

* Added building and linking files for scrimmage

* Small fix

* Starting work for integrating the build of a SCRIMMAGE plugin

* Fix circular dependency

* Fix plugin path setting to happen after GAMS_ROOT is set

* Small bug fixes to build process. Trying to debug missing headers for plugin linking

* Fix ordering in base build

* Numerous changes and SCRIMMAGE_ROOT fixes

* Add path to GAMSAutonomy.xml to scrimmage plugin path

* Add changes so that the plugin loads in. Though missing some variables, but loads in SCRIMMAGE

* Add default variables for car controller plugin?

* Add empty functions, still need to modify controller

* Lots of updates, added in scrimmage, still bugs for linking but mostly works

* Divided plugin and the full gams integration, compiles

* Fix 2 bugs with segfaults in gams_controller

* gams controller can now run a scrimmage instance and control its loops, as well as spawn in agents. more to come

* Fix missing env vars, works after a cleanenv now

* Runs and works tested with 1 agent now.

* Runs with 200 agents

* Change default world to just be a quadrotor base so we can control it with GAMS easy

* Some changes to scrimmage code

* Lots of changes, it runs now, just need to figure out how to get a madara file properly setting a KB through a gams controller

* Update

* Added temporary placement of scrimmage.mf

* Compiles and runs for now. No segfaults. But more coding to do as next position is not set

* Now moves

* Remove accidentally added scrimmage dir, now inside .gitignore

* Hooked up GAMSAutonomy plugin, now we're talking!

* Now moves exactly towards the positions given by GAMS

* Small changes

* Update

* Cleaning up of the GAMS repo with extra files/removal of non essential changes

* Add demo shell scripts

* Revert default world back to working model

* Spawning multiple agents programmatically now

* Now spawns at runtime, pending bugfix on scrimmage side

* Updated with most recent demo code

* Fixed off by 1 bug, agents move accordingly

* Fix multiple frame bugs and touch up some debug lines

* Add orientation function but there's a double orientation set bug atm

* Orientation setup needs to be rethough due to the way the scrimmage sim handles setting orientation

* Added run threaded support for super efficient running

* Update

* Add fixes to the pathing for mission path and plugin path for SCRIMMAGE inside base build

* Add change to prevent GAMS from being pulled from jredmondson master, super annoying when trying to develop

* Fix scrimmage mission path bug

* Add arg to print statement in Multicontroller

* Fix cleanenv params for paths

* Added singleton pattern and support for options for run_simcontrol_threaded and non threaded via KB/CLI scripts

* Added run threaded option as static var

* Fix exception in Follow bug after missed revert causing same bug again

* Update

* Add multiple types and passing of world file via madara mf/kb

* Add fixed wing support to GAMS scrimmage

* Add some function descriptions:

* Added log detailed statements

* Add demo scripts

* set SCRIMMAGE in base_build.sh

* Revert adding double line, already there.

* add $SCRIMMAGE support to testing

* Add #ifdef to SCRIMMAGEBasePlatform.cpp

* Add in #ifdef to SCRIMMAGEBasePlatform.h

* Remove simcontrol pointer in Multicontroller.h

* Remove simcontrol object use from Multicontroller.cpp

* Add auto yes option to PPA for SCRIMMAGE
@jredmondson jredmondson requested a review from dskyle as a code owner April 3, 2020 06:12
* Adding notes to changes to discuss with Devon about Scrimmage support
* Made sure to add the GAMS_SCRIMMAGE ifdefs in files where appropriate
  to prevent compilation in cmake and any other build system
* Added debug warnings for hive not being set in HiveController
@jredmondson jredmondson merged commit e09033e into master Apr 7, 2020
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants