alecjacobson / computer-graphics-kinematics Goto Github PK
View Code? Open in Web Editor NEWComputer Graphics Assignment about Kinematics
Computer Graphics Assignment about Kinematics
Hi I am not experienced in C++. Would anyone mind explaining what the Eigen::aligned_allocatorEigen::Affine3d in the input vector for forward_kinematics.cpp is for? I have read the documentation but I still do not understand how it should be used in this context. Thanks in advance!
Hi Professor,
Just wondering, for the gifs you posted on the readme, are you using the same "exact" formula as the one given in the instructions?
It seems that your models are able to produce a very very smooth movement.
It seems like the time we will pass to the Catmull-Rom-Interpolation is exact the seconds in the software, which will easily pass the limitation within the maximum keyframe time we implemented.
I'm wondering shall we loop the 't' passed into the Catmull-Rom-Interpolation? if so, does this make sense that all the time passed the maximum keyframe time
will be instantly set into 0, or some gap time need to be set after maximum time?
Also, if we set the loop to happen, shall there be any Interpolation during the frame between maxium
-> first frame
, or there is nothing required to happen within that scope?
It seems like it wasn't allowed for the previous assignments unless it was specified, but can we make helper functions within the cpp files or is that still not allowed?
I've read the Catmull-Rom-Interpolation page given in the assignment, but what are we supposed to do when calculating the tangents involving an interval having an endpoint within the data?
Right now my output is very random, with same code, sometimes the animation behaves very well as expected, but sometimes the model will disappear in the end of animation. I am just curious what might cause this randomness?
Also a constant behaviour is when I run the executable, the first time animation will skip first couple key frames, but when I press R to reset it, first couple key frames will be played as normal every time. Any thoughts?
forward_kinematics returns T, which is a vector with 2 components.
std::vector<Eigen::Affine3d,Eigen::aligned_allocatorEigen::Affine3d > & T);
What is the meaning of these 2 components? Intuitively, I think the first component is the rotation and the 2nd one is the translation for each bone, but I'm not sure.
^^
As I understand it, the key "i" is used for toggling animation. But when I printed out the size of the parameter "keyframes" in "catmull_rom_interpolation.c", it is zero. Not sure what is wrong.
I have implemented the files including and up to Catmull-Rom Interpolation. However, I have noticed that the position of my end effector (the dot) is wrong before I start the animation. I have looked into main.cpp but I still don't understand why the end effector is currently associated with the bottom bone instead of the top bone. What might possibly be the reason?
Besides calculating the Jacobian matrix, it seems we still need to calculate the dE/dX vector. Do we apply the same trick to get dE/dX? i.e. add 10e-7 to the position vector and get the difference between the new E value and the old E value then divide by 10e-7.
Thanks in advance!
Do we have to find the smallest value? Say if we achieve the minimum at 50th iter then we should assign the z-value at 50th iter instead of z in the last iter?
Can we have a deadline extension? Many assignment due dates are piling up at this time for me :( Thanks!
Is there a typo in this equation ?
Shouldn't the numerator for each elements in the Jacobian matrix be x_i(a+h*delta_j) - x_i(a) ? @alecjacobson
After implementing a function, is there any way to verify the functionality after each step?
I've finished the first three functions and I still have no way of telling whether it's correct.
Is the chimpanzee hand animation in the README sped up? Looking at the json the animation should take 6 seconds but the one in the README definitely doesn't last as long.
From the equation below
We will easily find that if there is no rotation applied for each joint, we will get all the T_i = T_root, and mostly that will all be set as an identity matrix.
So I'm wondering if that is the thing we expected here, or I misunderstood things about T_i. Does T_i here only means a relative rotation compared to root, or some other information is expected there?
I'm working from the UG machines and the projects seems to compile and display properly, but I can't seem to switch the view to anything other than the default robot-arm model.
I see in the terminal that you can use "<,>" to switch models, but no key seems to work. All the other commands like toggle wireframe and switch to canonical view seem to function properly.
Is this implemented later in the lab or perhaps setup in a config file somewhere, or just an error?
Hi Professor,
Can you explain how the Cost function changes from ||x_b - q||^2 from equation 10 to ||x_b - hat_x_b||^2 ..
Isn't hat_x_b should be q instead? Since we are still trying to reduce the distance between each effector from the desired goal location, q ? I just don't really understand how the cost function becomes like the one in equation 11. Thanks!
Hey, in most previous assignments we can check the output after we have finished every or at least several functions. This time I noticed that this kind of intermediate output is not being provided. Right now I have finished some files but I am unable to tell if I did this correctly ( it compiled, but I may misinterpret some math equations or have other kind of issues) and I can see how hard it would be to debug or separate the problem if we can only see result after finish everything. Thus, I am wondering if there is some plausible way to check each function's correctness?
I cloned the repo from Git and ran cmake .. on Windows 10. I did no modifications to the original code.
I got an exception at line 86 in DenseStorage.h: EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(0xf);
How can I resolve this framework problem?
Hi Professor,
In IK mode, How can I fix the problem of certain models (particularly beast.json) shaking even when I'm not moving the effector end points?
This is fine for other models such as chimpanzee-hands, robot-arm ..
Other than that, I can move the effectors around and the bone parts would follow around correctly
All the v.core
should be v.core()
As well as R, R should be R-hat or R^?
while running inverse kinematics, my model would initially be so rigid (won't move all the angles correctly) but once I changed the position by mistake and then the angles moved freely.
Anyone encounter a similar issue and can guess Why that might be happening?
thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.