Replies: 3 comments 8 replies
-
Thanks for your thoughts and suggestions, @knmcguire. Having never worked on a large, complex project like Crazyflie, I probably didn't appreciate the difficulty and downsides of doing a large PR like this. I'm still eager to contribute to Crazyflie in any way I can, and I have no problem going through several iterations of ideas before they're ready for public use. The core hack I wrote (threaded socket communication of the stick demands / telemetry) will still be usable in whatever form the new features take, I think, so the time certainly wasn't wasted. As for your point 2 (using simpler ad-hoc PID controller instead of firmware PID bindings), that was a modification that I made yesterday and attempted as part of my second PR. As for using the cflib instead of the client directly, that is also something that you mentioned earlier that I should have looked at (I keep mixing up the cflib and the cfclient!) Like you I'm working against a deadline this month (the Neuromorphic Vision Deck I've posted about) and am also teaching an intensive AI course for the next six weeks. Hence I agree that it makes sense to hold off on these modifications for a while. That would also give me time to look into the cflib, and possibly your toolbelt suggestion as well. For the time being, since you mentioned strategizing, I'm wondering what you think about a gradualist approach. For example, when I started this effort, I first simply added a "webots" item to the client's Interfaces pulldown, with a stubbed callback method, and of course tested that the actual connection to my Crazyflie2.1 still worked. With this approach there's a minimum likelihood of merge conflicts, but of course it creates more individual PRs and presents the user with unimplemented front-end features. I'll be eager to know your thoughts, and I look forward to returning to this when we both have time. |
Beta Was this translation helpful? Give feedback.
-
So this is what I have in mind for the PR strategy: 1- A simple socket example stand-alone in simulation repo. the simulation starts with the controller type initializing the socket connection, which sends back telemetry. So we have one pythons script to be executed separately, that listens to the socket and maybe send a simple commands. So both the standalone socket connector python script and the new python controller for webots are both in the PR for crazyflie-simulation. That is what I had in mind, but perhaps some things will change along the way! I think that step 1 is very easy to implement, so depending on your time, you can add that socket listening script. And there are already aspects that you have implemented already, but we just have to find the right spots for it. What do you think? |
Beta Was this translation helpful? Give feedback.
-
Thanks, that looks great! I'm looking forward to being and official contributor 8^) I appreciate the tip about where to do PRs, too. |
Beta Was this translation helpful? Give feedback.
-
A continuation of the discussion we had here https://github.com/orgs/bitcraze/discussions/796
@simondlevy is doing very awesome work with the simulator and connecting it with the cfclient (see Show&Tell). So this discussion is to coordinate the PRs necessary to achieve this and to coordinate the efforts!
My thoughts or some current events that are important:
@simondlevy let me know what your thoughts are!
sorry that means that the previous work you put in the PRs will be need to redone, but I do believe that if we plan this correctly, it will be a better integration and better future maintenance possible. I am genuinely excited for this feature so I'm more than happy to help out!
Beta Was this translation helpful? Give feedback.
All reactions