Jump to content
Keyglove Forums


  • Content count

  • Joined

  • Last visited

  1. Autodesk Inventor COM API

    Jeff, You must have been very busy. Just want give a heads up I managed to figure out most of the things I need to do. Rotation and Translation works OK. You've been a big help. Thanks!.
  2. Autodesk Inventor COM API

    Jeff, I have successfully implemented the rotation using Gyro on all the three axes. Instead of using a scaled raw gyro value, I decided to take advantage of the DMP integrated on the MPU9050. The changeview() method readily accept rotation angles in radian. So just fed the fused euler angle and developed the algoritm I mentioned above. Turns out it works rather well. My implementation still definitely has lot of rough edges, tough. Next milestone is the translation. I'm aware double integration of the acceleration reading could result in distance. I have played with 1 dimensional distance measurement. Horrible error accumulation, though. However I can't quite grasp the following concepts : 1. The measurement of translation in 2 axes x-y (1 plane) using 3d accelerometer. Can we just cancel out the acceleration toward irrelevant angles/direction? 2. The basic algorithm for making object translation on Inventor. I know there are MoveFeatures.CreateMoveDefinition Method and MoveDefinition Object on Inventor. I appreciate that you've been really-really helpful since the beginning, Thanks in advance EDIT: I just re watched the video and realised the object translation is actually triggered by rotating gesture! Is that gyro reading in the works? (i.e. Roll for X movement and Pitch for Y movement) Let see if I can work something out
  3. Autodesk Inventor COM API

    Yes, I will definitely consider motion scaling and smoothness factor when I actually finalised the algorithm. The algorithm I pointed is still pretty rough Ohh I see, Yeah, I get what you mean, it's going to take some attention and time to revisit such dusty project, not to mention you must have other stuff more important to do. In that case, say, *if* you could be willing to share the COM interfacing code "as-is", I'll be grateful, there must be one or two thing I could learn from the codes. Of course if you decided to only release the working code to repository. I'm okay with that too. I'm going to watch your git repo for upcoming commit. Thanks Jeff.
  4. Autodesk Inventor COM API

    Okay, more or less I can understand the the whole gyro scaling thing after I inspected the ChangeView() code from Autodesk forum. Thanks for the heads up. Now I think what I should do next is to make a "update" method that will invoke changeview() should the gyro value changed. (i.e from serial stream). My algorithm is as follow: Start Get gyro reading Do rotation based on gyro value Do the gyro reading changed (significantly)? if yes go to step 2 if no, proceed Stop Am I going to the right direction? I could really use your expertise on this matter. Anyway, I'm sorry for being a little bit slow on the uptake, I'm kind of new on the embedded computing world. From the video I see you have already made a working implementation, on both translating and rotating the object. Initially, I was hoping to see and learn quite fast from your Inventor application source code, however I can understand if you do not wish to release your code, at least for now. So for now I'm making this from scratch. Thanks for your time, Jeff. I really appreciate your help.
  5. Autodesk Inventor COM API

    Jeff, thanks for replying. What kind of scaling I've got to do in order to make the measurement usable in the example inventor code? (I'd more than happy to find it myself if you're willing to point me to which .ino file and which line ) Say.. using your sketch here http://github.com/jrowberg/i2cdevlib/blob/master/Arduino/MPU6050/Examples/MPU6050_DMP6/MPU6050_DMP6.ino Which variables should I scale and use? Quaternion q; // [w, x, y, z] quaternion containerVectorInt16 aa; // [x, y, z] accel sensor measurementsVectorInt16 aaReal; // [x, y, z] gravity-free accel sensor measurementsVectorInt16 aaWorld; // [x, y, z] world-frame accel sensor measurementsVectorFloat gravity; // [x, y, z] gravity vectorfloat euler[3]; // [psi, theta, phi] Euler angle containerfloat ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vectorI think it's either VectorInt16 aaReal or VectorInt16 aaWorld. Also what about the serial port implementation..? Your help is much appreciated!
  6. Autodesk Inventor COM API

    Jeff, I just started looking into the code. If you don't mind I have a few questions: What exactly are gyroX, gyroY and gyroZ? are they simply the Euler angle of roll, yaw and pitch?I'll just assume you used serial communication to send the IMU readings, but what serial listener are you using in Inventor Add-in and how do you store the buffers?I'm aware there is IO.Ports.SerialPort in Vb, but I'm eager to know what implementation you do use.. Thanks! Edit: Just found keyglove has its own Github repo (http://github.com/jrowberg/keyglove), the answer to question #1 must be somewhere on the repo.
  7. Autodesk Inventor COM API

    Whoa, big thanks! I'll see what can I do with it. Of course I'm going to open-source my code if I think my changes are good enough. That's said I'm not a pro coder in any sense though, most likely it's going to take a while and I ended up with messy code. Haha hint: it's for capstone project
  8. HI Jeff, I'm interested on how you translates the IMU reading into spatial information in Inventor workspace. Any hint? Do you plan to release the source code? Thanks