Giter Club home page Giter Club logo

Comments (4)

antonilo avatar antonilo commented on August 13, 2024

Dear @random-user-in-space,

Thanks for using our repo. If you have a closer look at the readme, you will see that we report the following:
"
Edit the test_time_velocity and maneuver_velocity to the required speed. Note that the ckpt we provide will work for all speeds in the range [1,10] m/s. However, to reach the best performance at a specific speed, please consider finetuning the ckpt at the desired speed (see code below).
"
This means that if you want to get the same performance, you need to finetune a policy to one speed using the instruction in the paper. However, your numbers appear to be strange to me. If you visualize the policy, does it crash so often or does it just report a crash without actually going into an obstacle? There might be some communication problems between unity and the flight stack causing this.
A good unit test is to overfit to the environment and train on a single speed. You should be quickly get 100% success rate there. Could you try to run this test and let me know if that works?

from agile_autonomy.

random-user-in-space avatar random-user-in-space commented on August 13, 2024

@antonilo Thank you for your response. These are my concerns/questions. I'd be thankful if you could address these concerns.
A. "This means that if you want to get the same performance, you need to finetune a policy to one speed using the instruction in the paper." - While I understand that finetuning is required, there is already one checkpoint provided in the codebase. What configuration does that work on? Can you provide details of the environment and the configuration on which the given checkpoint works and mimics the results shown in the paper? It would be great if I can replicate performance you achieved on that checkpoint as a starting point.

B. I presume that you must have also trained for specific environment, as per the results claimed in the paper. Could you share the checkpoints for the other trainings as well? More concretely, this will help me verify the claims of the paper.

C. "However, your numbers appear to be strange to me. If you visualize the policy, does it crash so often or does it just report a crash without actually going into an obstacle? There might be some communication problems between unity and the flight stack causing this." - I verified it for all the 50 test runs, the drone actually crashes into the tree when the logger also agrees.

D. "A good unit test is to overfit to the environment and train on a single speed. You should be quickly get 100% success rate there. Could you try to run this test and let me know if that works?" - I am working on this, I will repost the results and claims once this is done.

Thank you for your time and consideration.

from agile_autonomy.

antonilo avatar antonilo commented on August 13, 2024

Dear @random-user-in-space,

A. That checkpoint was trained at all speeds, with a bias towards data at 7m/s. As a result, it should get an okaish performance more or less at all speeds. With the checkpoint provided, you should get a 60/70% success rate at 7m/s (the success rate will vary between runs and seeds). Note that this is inline with what other users found. Also, other users reported an improvement of approximately 10% when finetuning the provided checkpoint, so bringing performance up to 70/80%.

B. For getting 90% success rate at 7m/s, we trained on a huge set of environments specifically at that speed. This includes both the forest and the randomly generated environments (which are described in the paper). Getting that small improvement gain required some small changes to the codebase, together with quite a large dataset. I would be happy to share that code, feel free to send me an email. Overall, note that this repository was optimized for usability and make it easy for people to build on top of our research. We are very happy that people are using it in this fashion: already several great contributions came out of it, even showing some successes and failures we were not aware of at publishing time (for example https://arxiv.org/pdf/2301.07430.pdf found that our approach is quite good in finding optimal paths, even though it was not trained for it. However, it performs quite bad when the density of obstacle increases). In a similar spirit, I hope that this repository will help your research.

from agile_autonomy.

antonilo avatar antonilo commented on August 13, 2024

Sorry for the very late answer to this, but I've been very busy last year with other stuff and could not put my hands back on this code for a while. I used this spring break to try to reproduce the results and got the following. For simplicity, all next experiments are at 7m/s.

I took the pretraining data in https://zenodo.org/records/5517791 and trained a policy with it. The only change I did was not passing a reference trajectory (i.e., putting goal_dir=0 at training and testing time). The rationale is that when the goal is only to fly straight, there is no need to pass a reference direction. Getting the reference away speeds up pretraining and finetuning. This made the experiment a bit faster to do :) This policy's success was 7/10.

Then, I finetuned this policy at 7m/s on 1K rollouts from the forest with spacing 5. The best policy achieved a success rate of 9/10, and the second best of 8/10. You can find the logs of the evaluations attached to this comment.

Overall, it took me a while to get the code running. Unfortunately it was written more than 4 years ago so most of the dependencies are deprecated and I had to do suffer a lot to get it working. I unfortunately won't have the time to update all dependencies, I'm sorry! It is a bit easier to work with this repo (https://github.com/uzh-rpg/agile_flight) if you're interested in the general structure of the problem and less about the specifics of this work.

Finetune First
Finetune Second
Pretrained

from agile_autonomy.

Related Issues (20)

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.