@WBS00001
THIS IS AWESOME! I checked the MaxScript and I guess it will take me some time to figure it out...IF I can figure it out!
Looks supercool, I cannot wait to try it out! As I am attending my dads birthday in Southwest Germany right now it will be some hard time for me to wait until I can go for further testing! stress
It is so cool that you found a way to debug and stop/crash the script...this has always been a pain!
I will run a quick test now, to see if I can get it up and running, putting it all together will have to wait until I get back home I guess!
Talking about MaxScript and creating GUI objects...this would also be some great idea, creating an interface that features the servos listed in the script plus creating the dependencies right at startup!
But I don't want to start daydreaming, this is an awesome piece of code...I'll try to put myself to decryption mode now! eek
Can't thank you enough for your help! Lets have fun with this...I will create a rig for a JD asap so we can get some animation going!
And yes...if you need help with 3ds max, let me know! I know it inside out!
Also I guess once you reached the limit of your copy, there should have been at least three new versions. They should give the new ones to you to use for free to learn and study too! I would not worry too much, these days Autodesk seems to be very kind to students and enthusiasts!
If you are giving me the servo structure of you Meccano I will rig him up too..
Lets rock!
@fxrtst
It's kind of cool to think of it this way, maybe you could just download and install 3ds max to give it a try...
So we would all stay on the same platform while doing this?
I know, there is a servoplugin for Maya, and some other cool stuff that 3ds max does not offer and vice versa, but as you said in the end all of those applications sort of work the same way!
One of my goals would of course be IK/FK rigging of the virtual robot model, and importing some clean MOCAP data, .bip .bvh .fbx or the like and link those to my robot model to get readable motion!
Lets see how far we can push this!
Also I think Max and Maya integration should be on its way...
A flaw (or 3 ) has been discovered in the code submitted in Post #21 of this thread. The code window of that post now contains the revised version. If you are using it, please go there and copy and paste it to replace the old code with the new.
I do indeed have max installed. I have used it many times. The reason I am using Maya is the program I am using only has a plug in for Maya and i believe motion-builder to stream live which interests me more than pre recorded motions, for uses inside and outside of robotics. I certainly can use prerecorded motions for alot things too. Thats why i am following here as well. If i have recorded motion inside this program I can save as FBX and then can use with Max or lightwave or what ever program as long as i can tie the programs and serovs together. Exactly how are you doing this now from Max to ARC? Remember im no programmer but i know hardware and programs...ie laymen terms please. If you have already described how you are doing this forgive me. Perhaps a video as well.
Also I believe PhP was working on streaming motion capture directly to DJ.
The sensor i was telling you about also is no longer available as Apple bought them two years ago. Uses same tech as kinect TOF (time of flight), but higher resolution. But not as high as the Kinect 2, but i believe it uses something different than TOF.
The company below has kinect 2 working with motion capture he has body and face capture affordable and he is accessible to chat with.
On the same thread concept, I had proposed a visual animation plugin for auto position. This way creating animations are a little more intuitive. Here is a link to that thread. Used alot of CGI based animation parameters.
Exactly how are you doing this now from Max to ARC?
Without going into excessive (and probably confusing) detail, it is a matter of placing an HTTP Server component in your project and sending a properly formatted text string to it. The HTTP Server control is found under the General tab in the Controls window. If you have a functioning network up and running, it should show you 2 numbers (in blue) on that component. It is the upper one we will be concerned with. That is the IP address used by the control. The lower one is the address of your Router.
Normally a program is used to send something to it. In this thread, that program is the one I presented the code for in Post 21. However, for purposes of this discussion we will use a browser to do it. Start up your browser and, if possible, set it to a blank page.
Now you will put an address in the Address Bar[/i] at the top of your browser. This is where you usually put in web addresses. I will provide the address so you can simply copy and paste it in.
Here we are talking about that "properly formatted text string" I mentioned earlier. The string consists of two basic parts: The HTTP (Hypertext Transfer Protocol) part and the data.part. The HTTP (and IP) part is this:
[b]HTTP://NN.NNN.NNN.NNN/
That's the actual IP (Internet Protocol) address of the HTTP Server control in your ARC project. You will need to replace the NN.NNN.NNN.NNN part with the number in blue from your HTTP Server control (the upper one). Don't worry if yours doesn't have exactly the same pattern as shown above.
Then comes the data part. Everything after the last slash is data of some kind. It is up to the receiving software component to interpret it and do something accordingly. In this particular example, the first part of the data is the Command and Login information. In this case it is
Exec?password=admin&
The Command is Exec (Execute), and the login is password=admin. The question mark and ampersand are separator characters between the parts of the data.
The final part is the ARC Script Instruction that will be sent to be executed. In this example it will be to move a servo:
Servo(D1,60)
It is this line you will copy and paste into the address area of your browser. Again, you will want to replace the NN.NNN ... etc. part with the address from your HTTP servo control. Also, you can make the servo port number which ever you wish, as well as, change the 60 to whatever you wish. Be sure to save the string in which you replaced the values to something, like Notepad, because it will often be overwritten in the address bar if something is wrong.
Now, be certain that a servo is attached to it in the D-number port you have in the Instruction part of the address string (or change the number in the string to a servo of your choice). Then connect to your EZ-B and Press Start at the bottom of the HTTP Control. If all is well, you should see a green area appear. It is ready to receive commands.
The servo should move when you press Enter in your browser address bar (assuming it is not already at 60 degrees). Additionally, "OK" should appear in the main body of your browser window. Change the number at the end of the address (the servo degree number) to make it move to a different position.
And add whatever Script Instruction you wish to perform. No script is needed at the ARC end. The HTTP Server control does what is necessary.
All that is what my Maxscript program does. It takes data from the virtual robot as it is moving along the animation time-line and creates the appropriate text string, then sends it to the network to be received by the HTTP Server control and executed. As currently applied, it sends out thousands since it moves the servo(s) in tiny increments.
Basically it is a simple, plug in the appropriate data and send it kind of thing. All the messy details are taken care of by the Maxscript routines and the HTTP Server control within ARC.
@fxrtst
Sounds very good, if you already have 3ds max installed we would have a common ground for our discussion! It is quiet understandable that you would like to stay on the platform integrating your favorite plug in that also supports a special piece of hardware you are using, but since you obviously do know a lot about exporting motion data in different file formats cross platform it should be fairly easy for you to use our build for your needs too!
I saw your post about implementing some animation features for ARC and was very interested, but since the main purpose of ARC is being a multi purpose robotic platform rather than an interface for processing correctly timed motion, I guess it makes a lot of sense to start researching how we can use a piece of software specially build to fulfill this task and tie the strings together!
Not saying of course that it would be great if there was a way to build those animations directly within ARC!
I remember using a Kinect and some early build of the software that Brekel provided to transfer live MOCAP into Motion Builder, but was a bit disappointed by the noise and the overall unsatisfying results I was getting...but this was way before they had the two Kinect tied together, I was thinking of this as a solution to get real 3d MOCAP, but was far from getting the math done to do so by myself!
Motion Builder is well implemented within 3ds max, so if this is one of you main platforms it is even better!
I am traveling right now, but once I get back home my plan is to make a JD rig, so we would have a common testing ground for the community...I would share the .max scene, and could also make a quick tutorial on how to load it, start the script and how to keyframe animation.
WBS00001 is currently working on improving the code, you could help on finding ways to import motion since this seems to be your main field!
I guess one of the biggest advantages we would have rigging up our robots in our animation packages are the advanced FK/IK options plus all the joint dependencies that could make robots with a high number of servo joints to work smoothly!
This was just a one click search on YouTube, but I guess there is a lot of info on how 3ds max and Motion Builder are tied together....probably the most common groung would be the .fbx file format?
I would also be interested in any ideas on how to import motion, live or pre recorded! I used to make animations in 3ds max years ago...just stopped because it was just eating up too much of my time back then!
@WBS00001 THIS IS AWESOME! I checked the MaxScript and I guess it will take me some time to figure it out...IF I can figure it out!
Looks supercool, I cannot wait to try it out! As I am attending my dads birthday in Southwest Germany right now it will be some hard time for me to wait until I can go for further testing! stress
It is so cool that you found a way to debug and stop/crash the script...this has always been a pain! I will run a quick test now, to see if I can get it up and running, putting it all together will have to wait until I get back home I guess!
Talking about MaxScript and creating GUI objects...this would also be some great idea, creating an interface that features the servos listed in the script plus creating the dependencies right at startup!
But I don't want to start daydreaming, this is an awesome piece of code...I'll try to put myself to decryption mode now! eek
Can't thank you enough for your help! Lets have fun with this...I will create a rig for a JD asap so we can get some animation going!
And yes...if you need help with 3ds max, let me know! I know it inside out! Also I guess once you reached the limit of your copy, there should have been at least three new versions. They should give the new ones to you to use for free to learn and study too! I would not worry too much, these days Autodesk seems to be very kind to students and enthusiasts!
If you are giving me the servo structure of you Meccano I will rig him up too.. Lets rock!
@fxrtst It's kind of cool to think of it this way, maybe you could just download and install 3ds max to give it a try... So we would all stay on the same platform while doing this? I know, there is a servo plugin for Maya, and some other cool stuff that 3ds max does not offer and vice versa, but as you said in the end all of those applications sort of work the same way!
One of my goals would of course be IK/FK rigging of the virtual robot model, and importing some clean MOCAP data, .bip .bvh .fbx or the like and link those to my robot model to get readable motion!
Lets see how far we can push this!
Also I think Max and Maya integration should be on its way...
And so it begins.
A flaw (or 3 ) has been discovered in the code submitted in Post #21 of this thread. The code window of that post now contains the revised version. If you are using it, please go there and copy and paste it to replace the old code with the new.
You can find that Post HERE.
I do indeed have max installed. I have used it many times. The reason I am using Maya is the program I am using only has a plug in for Maya and i believe motion-builder to stream live which interests me more than pre recorded motions, for uses inside and outside of robotics. I certainly can use prerecorded motions for alot things too. Thats why i am following here as well. If i have recorded motion inside this program I can save as FBX and then can use with Max or lightwave or what ever program as long as i can tie the programs and serovs together. Exactly how are you doing this now from Max to ARC? Remember im no programmer but i know hardware and programs...ie laymen terms please. If you have already described how you are doing this forgive me. Perhaps a video as well.
Also I believe PhP was working on streaming motion capture directly to DJ.
The sensor i was telling you about also is no longer available as Apple bought them two years ago. Uses same tech as kinect TOF (time of flight), but higher resolution. But not as high as the Kinect 2, but i believe it uses something different than TOF.
The company below has kinect 2 working with motion capture he has body and face capture affordable and he is accessible to chat with.
http://brekel.com/
I believe this is very noisy, something my program i use filters out.
On the same thread concept, I had proposed a visual animation plugin for auto position. This way creating animations are a little more intuitive. Here is a link to that thread. Used alot of CGI based animation parameters.
Animation plug in
@fxrtst
Without going into excessive (and probably confusing) detail, it is a matter of placing an HTTP Server component in your project and sending a properly formatted text string to it. The HTTP Server control is found under the General tab in the Controls window. If you have a functioning network up and running, it should show you 2 numbers (in blue) on that component. It is the upper one we will be concerned with. That is the IP address used by the control. The lower one is the address of your Router.Normally a program is used to send something to it. In this thread, that program is the one I presented the code for in Post 21. However, for purposes of this discussion we will use a browser to do it. Start up your browser and, if possible, set it to a blank page.
Now you will put an address in the Address Bar[/i] at the top of your browser. This is where you usually put in web addresses. I will provide the address so you can simply copy and paste it in.
Here we are talking about that "properly formatted text string" I mentioned earlier. The string consists of two basic parts: The HTTP (Hypertext Transfer Protocol) part and the data.part. The HTTP (and IP) part is this: [b]HTTP://NN.NNN.NNN.NNN/
That's the actual IP (Internet Protocol) address of the HTTP Server control in your ARC project. You will need to replace the NN.NNN.NNN.NNN part with the number in blue from your HTTP Server control (the upper one). Don't worry if yours doesn't have exactly the same pattern as shown above.
Then comes the data part. Everything after the last slash is data of some kind. It is up to the receiving software component to interpret it and do something accordingly. In this particular example, the first part of the data is the Command and Login information. In this case it is Exec?password=admin&
The Command is Exec (Execute), and the login is password=admin. The question mark and ampersand are separator characters between the parts of the data.
The final part is the ARC Script Instruction that will be sent to be executed. In this example it will be to move a servo: Servo(D1,60)
That's it. So putting it all together then: HTTP://NN.NNN.NNN.NNN/Exec?password=admin&Servo(D1,60)
It is this line you will copy and paste into the address area of your browser. Again, you will want to replace the NN.NNN ... etc. part with the address from your HTTP servo control. Also, you can make the servo port number which ever you wish, as well as, change the 60 to whatever you wish. Be sure to save the string in which you replaced the values to something, like Notepad, because it will often be overwritten in the address bar if something is wrong.
Now, be certain that a servo is attached to it in the D-number port you have in the Instruction part of the address string (or change the number in the string to a servo of your choice). Then connect to your EZ-B and Press Start at the bottom of the HTTP Control. If all is well, you should see a green area appear. It is ready to receive commands.
The servo should move when you press Enter in your browser address bar (assuming it is not already at 60 degrees). Additionally, "OK" should appear in the main body of your browser window. Change the number at the end of the address (the servo degree number) to make it move to a different position.
That's it. You just use the basic part of the string: HTTP://NN.NNN.NNN.NNN/Exec?password=admin&
And add whatever Script Instruction you wish to perform. No script is needed at the ARC end. The HTTP Server control does what is necessary.
All that is what my Maxscript program does. It takes data from the virtual robot as it is moving along the animation time-line and creates the appropriate text string, then sends it to the network to be received by the HTTP Server control and executed. As currently applied, it sends out thousands since it moves the servo(s) in tiny increments.
Basically it is a simple, plug in the appropriate data and send it kind of thing. All the messy details are taken care of by the Maxscript routines and the HTTP Server control within ARC.
The professor will now entertain questions ...
@fxrtst Sounds very good, if you already have 3ds max installed we would have a common ground for our discussion! It is quiet understandable that you would like to stay on the platform integrating your favorite plug in that also supports a special piece of hardware you are using, but since you obviously do know a lot about exporting motion data in different file formats cross platform it should be fairly easy for you to use our build for your needs too!
I saw your post about implementing some animation features for ARC and was very interested, but since the main purpose of ARC is being a multi purpose robotic platform rather than an interface for processing correctly timed motion, I guess it makes a lot of sense to start researching how we can use a piece of software specially build to fulfill this task and tie the strings together! Not saying of course that it would be great if there was a way to build those animations directly within ARC!
I remember using a Kinect and some early build of the software that Brekel provided to transfer live MOCAP into Motion Builder, but was a bit disappointed by the noise and the overall unsatisfying results I was getting...but this was way before they had the two Kinect tied together, I was thinking of this as a solution to get real 3d MOCAP, but was far from getting the math done to do so by myself!
Motion Builder is well implemented within 3ds max, so if this is one of you main platforms it is even better!
I am traveling right now, but once I get back home my plan is to make a JD rig, so we would have a common testing ground for the community...I would share the .max scene, and could also make a quick tutorial on how to load it, start the script and how to keyframe animation.
WBS00001 is currently working on improving the code, you could help on finding ways to import motion since this seems to be your main field!
I guess one of the biggest advantages we would have rigging up our robots in our animation packages are the advanced FK/IK options plus all the joint dependencies that could make robots with a high number of servo joints to work smoothly!
Lets see how far we can push this!
This was just a one click search on YouTube, but I guess there is a lot of info on how 3ds max and Motion Builder are tied together....probably the most common groung would be the .fbx file format? I would also be interested in any ideas on how to import motion, live or pre recorded! I used to make animations in 3ds max years ago...just stopped because it was just eating up too much of my time back then!