Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Feature/ Smac wrapper Update, MADQN/QMIX/VDN upgrades and Dockerfile improvements #310

Merged
merged 143 commits into from
Dec 2, 2021

Conversation

KaleabTessera
Copy link
Contributor

@KaleabTessera KaleabTessera commented Sep 1, 2021

What?

  • Smac & Wrapper:
  • MADQN/QMIX/VDN:
    • Updates and minor fixes to action selectors.
    • Moved epsilon decay out of trainers to executors and evaluators.
    • Added support for timestep based epsilon decay e.g. decay for 50000 time steps.
  • All Systems:
    • Added optional LR decay and examples of usage.
  • Other:
    • Redesigned dockerfiles (i.e. dockerfile per env) & makefiles. @DriesSmit @arnupretorius @mmorris44 Please check the redesigned dockerfiles :)
    • Tested and updated versions of most packages.
    • Changed how github actions are done.

Why?

  • Fixes and more features.

How?

Extra

@KaleabTessera KaleabTessera self-assigned this Sep 1, 2021
@mmorris44
Copy link
Contributor

mmorris44 commented Nov 24, 2021

Remaining problems:

  • Robocup sudo not found -> fix by installing sudo in Dockerfile: RUN apt-get -y install sudo -> install now works, but run broken, can't find server file -> Robocup example itself is broken (Dries fixed in another PR), but Robocup build also broken
  • SC2 working fine -> turned out to just be a couple of faulty downloads on my side

@mmorris44
Copy link
Contributor

mmorris44 commented Nov 25, 2021

Error during robocup install that gets ignored, probably causing the issues:

#15 264.1 libtool: link: g++ -std=c++14 -W -Wall -g -O2 -o .libs/rcssserver audio.o bodysender.o coach.o csvsaver.o
 dispsender.o field.o fullstatesender.o heteroplayer.o initsender.o initsendercoach.o initsenderlogger.o initsender
monitor.o initsenderonlinecoach.o initsenderplayer.o landmarkreader.o logger.o main.o monitor.o pcombuilder.o pcomp
arser.o player.o playerparam.o object.o referee.o remoteclient.o resultsaver.o serializer.o serializercoachstdv1.o 
serializercoachstdv7.o serializercoachstdv8.o serializercoachstdv13.o serializercoachstdv14.o serializercommonstdv1
.o serializercommonstdv7.o serializercommonstdv8.o serializermonitor.o serializeronlinecoachstdv1.o serializeronlin
ecoachstdv6.o serializeronlinecoachstdv7.o serializeronlinecoachstdv8.o serializeronlinecoachstdv13.o serializeronl
inecoachstdv14.o serializerplayerstdv1.o serializerplayerstdv7.o serializerplayerstdv8.o serializerplayerstdv13.o s
erializerplayerstdv14.o serverparam.o stadium.o stdoutsaver.o stdtimer.o synctimer.o team.o utility.o visualsenderc
oach.o visualsenderplayer.o weather.o xmlreader.o xpmholder.o player_command_parser.o player_command_tok.o  -L../rc
ssbase/conf -L../rcssbase/net -L../rcssbase/gzip -L/usr/lib/x86_64-linux-gnu -lrcssclangparser /home/app/mava/rcsss
erver-rcssserver-16.0.0/rcssbase/conf/.libs/librcssconfparser.so /home/app/mava/rcssserver-rcssserver-16.0.0/rcssba
se/net/.libs/librcssnet.so /home/app/mava/rcssserver-rcssserver-16.0.0/rcssbase/gzip/.libs/librcssgz.so -lboost_fil
esystem -lboost_system -lz -lm
#15 264.3 /usr/bin/ld: cannot find -lrcssclangparser
#15 264.3 collect2: error: ld returned 1 exit status
#15 264.3 make[3]: *** [Makefile:913: rcssserver] Error 1
#15 264.3 make[3]: Leaving directory '/home/app/mava/rcssserver-rcssserver-16.0.0/src'
#15 264.3 make[2]: *** [Makefile:778: all] Error 2
#15 264.3 make[2]: Leaving directory '/home/app/mava/rcssserver-rcssserver-16.0.0/src'
#15 264.3 make[1]: *** [Makefile:439: all-recursive] Error 1
#15 264.3 make[1]: Leaving directory '/home/app/mava/rcssserver-rcssserver-16.0.0'
#15 264.3 make: *** [Makefile:371: all] Error 2
#15 264.3 --2021-11-25 09:58:11--  https://github.com/rcsoccersim/rcssmonitor/archive/rcssmonitor-16.0.0.tar.gz
#15 264.3 Resolving github.com (github.com)... 140.82.121.4
#15 264.3 Connecting to github.com (github.com)|140.82.121.4|:443... connected.```

@@ -1,4 +1,4 @@
sudo apt-get update \
apt-get update \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume the reason for this change is that the docker container doesn't need root access to run these commands. However, won't making this change cause problems for when people try to install robocup outside of docker?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. I will re-add sudo to the install. 👍

Copy link
Contributor

@mmorris44 mmorris44 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't find any further things that I would change, but my Mava knowledge isn't good enough for this to be terribly meaningful.
Nevertheless, great job @KaleabTessera!

Copy link
Contributor

@DriesSmit DriesSmit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR looks good, thanks @KaleabTessera 🔥 A lot of changes in here. Did you run some regression tests on this PR?

Copy link
Collaborator

@arnupretorius arnupretorius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a big one @KaleabTessera! Looks good to me, a massive effort 🔥 Good that we had multiple iterations across sections of the code because it is a big PR. @mmorris44 also thanks for your detailed checks and testing some of the changes. In the future, we can perhaps try to keep the PRs smaller and just more frequent.

For reference - Kale-ab confirmed we have test runs for the new smac wrapper and the eps scheduling changes for MADQN/QMIX/VDN and the learning rate decay which all look good.

@arnupretorius arnupretorius merged commit e4f9532 into develop Dec 2, 2021
@arnupretorius arnupretorius deleted the feature/smac-env-upgrades branch December 2, 2021 09:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants