CMM-22 / a2

CMM Assignment 2 - Kinematic walking controller
1 stars 0 forks source link

Ex 5 Computing Power #19

Open bazzif opened 2 years ago

bazzif commented 2 years ago

I unfortunately have too little computing power to create a video on uneven terrain (max. 0.5 FPS if the computer doesn't crash) What should I do?

eastskykang commented 2 years ago

Which fps do you get from your ex.1-2 implementation?

ZijunH commented 2 years ago

Did you compile in release?

bazzif commented 2 years ago

Yes, I compiled in release, and ex. 1-4 with the analytical Jacobian matrix I get 30 FPS. But if I change the ground to a challenging terrain the FPS drop down to less than one.

eastskykang commented 2 years ago

@bazzif hey I quickly tested your code. Your implementation seems correct but you may make it more efficient to run your application in real-time.

For instance, just consider to add offset to IK targets only instead of adding the offset for every single sample of feet trajectory.

bazzif commented 2 years ago

Hey thanks for checking out my code! But since I assume that my code is correct and I don't really have time to improve it anymore, I need a solution how to submit the project with the current implementation.

eastskykang commented 2 years ago

@bazzif I'm giving you a solution. It is very straight forward to add height offset in IK solver side rather than the planner side.

bazzif commented 2 years ago

@eastskykang I know, I am also grateful to you but for me such straight forward solutions are not easily implemented in 10 minutes. I was now able to partially solve it with your approach and can now record a video now with 1.27 FPS, thank you.

eastskykang commented 2 years ago

@bazzif Let me give you more hint. The reason of low FPS is not due to the limited computing power. The real problem is that you create the terrain instance everytime you call the function of planner / IK solver.

Constructing object could be very expensive especially for the case where the object has large data. So you may want to reuse the terrain object as it does not change over the time rather than create and delete it all the time.

There could be multiple way to circumvent this problem. I cannot provide more details than this because this is also part of the exercise.

I know you may be busy with other courses but please do consider to complete your implementation by making it real-time (30fps). Again, implementing your logic into neat and efficient C++ programming code is also part of our learning objectives. If you want a further discussion, I'm happy to have a quick chat over zoom.

p.s. as I didn't make it as a requirement, I would give 5% extra point once you manage to load, render, and make the robot walk over the complex terrain (but your IK should show a correct behavior) even if it does not run in real-time.

bazzif commented 2 years ago

Thank you very much, that was really helpful and now it's fun to play around with the simulation. As you might think, I'm still a C++ beginner, so I can only thank you for the tip! @eastskykang 🐐