opencog / rocca

Rational OpenCog Controlled Agent (ROCCA). Use OpenCog to control a rational agent in OpenAI Gym and Malmo environments.
GNU Affero General Public License v3.0
30 stars 18 forks source link

[WIP] Port to use MineRL for interfacing with Minecraft #16

Closed ntoxeg closed 3 years ago

ntoxeg commented 3 years ago

This changes ROCCA to use MineRL’s Gym API for Minecraft instead of the previous custom wrapper.

I had to extend the GymWrapper to handle dictionaries for observations and actions. There were no changes to underlying algorithms.

The later commits refactor the project to use nbdev and Jupyter notebooks, they are not required by anyone to use, nbdev handles some boilerplate for setup.py and documentation generation. The generated docs are currently pretty useless but there is no harm in keeping them around, to make them work one needs to setup Jekyll-compatible website hosting (like on Github itself).

The notebooks have an example agent adapted to run in the MineRLNavigateDense-v0 environment, which has a goal of touching a block of diamond placed somewhere. There are other environments as well, including MineRLObtainDiamond-v0.

ntoxeg commented 3 years ago

I’ve now added the VS Code devcontainer setup I use. This could be useful for people wanting to get a development environment working quick.

One thing that you still need to do is to install spacetime from the SintularityNET fork because it has not yet been merged into OpenCog upstream.

ngeiswei commented 3 years ago

Thanks @ntoxeg, only finding that one out now (somehow I didn't get notified). I won't have time to look at it before Friday 16 April. In the meantime you probably want to rebase it onto the master as I've just merged something else causing that PR to conflict. Thanks.

ntoxeg commented 3 years ago

Rebased.

ngeiswei commented 3 years ago

@ntoxeg, it's a huge PR, could I ask you to split it in multiple independent PRs if possible? For instance it seems to me jupyter, VS and MineRL contributions are independent, but correct me if I'm wrong.

Also, would you agree to schedule a call so you can walk me through all of that? Especially cause you're using tools I'm not familiar with.

ntoxeg commented 3 years ago

Understandable, I will try to cherry pick appropriate changes into separate branches and PR from those.

We can schedule a call, no problem. That said, there is no particular need to understand all the tools used, they are optional and I guess after splitting the PR you can leave them out if you don’t feel comfortable with having them in the repo.

ngeiswei commented 3 years ago

[the tools] are optional and I guess after splitting the PR you can leave them out if you don’t feel comfortable with having them in the repo.

No, I think it's cool to have them in the repo, and the call would be mostly for my own education.

ntoxeg commented 3 years ago

Cool, we can discuss timing outside of Github, whether through mail or PM on Discord, your choice.

ngeiswei commented 3 years ago

Sure I'll ping you when I know better my schedule for next week.

ngeiswei commented 3 years ago

@ntoxeg, I'm available next Friday for a call, likely any (European) time. Assuming that works for you, do you have a time to suggest?

ntoxeg commented 3 years ago

@ngeiswei if you mean April 23rd, I propose 16:00 CEST.

ngeiswei commented 3 years ago

@ntoxeg, turns out I'm busy from 16:00 to 19:00 CEST on April 23rd, so it would have to be before or after.

ntoxeg commented 3 years ago

@ngeiswei 14:00 CEST should be fine then?

ngeiswei commented 3 years ago

14:00 CEST Fri Apr 22 https://meet.jit.si/proto-agi sounds good. Do you mind if I advertise it on the opencog mailing list in case more people want to join?

ntoxeg commented 3 years ago

@ngeiswei I don’t mind, although considering we will be talking about the content of the PR, it’s probably not going to be as interesting to outside observers.

ngeiswei commented 3 years ago

@ntoxeg, there are two "competing" PRs, #16 and #18. Which one should I be looking at (assuming only one must remain)?

ntoxeg commented 3 years ago

I created #18 to isolate the changes related to just the introduction of MineRL. This PR has more proposed additions (nbdev and dev containers). I am not sure if this will be mergeable after #18 is merged, if not I will just close this.

ntoxeg commented 3 years ago

I also converted this PR to a draft, so it doesn’t get confused with the rest.

ntoxeg commented 3 years ago

Closing this because it doesn’t have anything interesting in it anymore (just some nbdev and dev container stuff) - the #19 PR is where the focus should be at the moment.