- Posts: 56
- Thank you received: 2
Using IKFast to generate kinematics modules
- ross_dev
- Offline
- Senior Member
-
Less
More
6 years 9 months ago #154902
by ross_dev
Replied by ross_dev on topic Using IKFast to generate kinematics modules
Hi Andy, is that the mailing list on sourceforge? I am having difficulty finding his user page or some means of messaging him. Would it be best to just make a topic on there and hope he picks it up?
Please Log in or Create an account to join the conversation.
- ftkalcevic
- Offline
- Junior Member
-
Less
More
- Posts: 30
- Thank you received: 4
6 years 9 months ago #154907
by ftkalcevic
Replied by ftkalcevic on topic Using IKFast to generate kinematics modules
I struggled to build it against an up to date ubuntu. There is a web page that explains how to build openrave against ubuntu16
scaron.info/teaching/installing-openrave-on-ubuntu-16.04.html
. I could build the version from the openrave repository, but when I ran it, it failed with python numpy errors.
So, I ended up using ubuntu 12.04 - I have a VMWare VM that I used to just generate the c code and test in the simulator.
I could share that - compressed it is 11GB - it will take about 7hrs to upload.
So, I ended up using ubuntu 12.04 - I have a VMWare VM that I used to just generate the c code and test in the simulator.
I could share that - compressed it is 11GB - it will take about 7hrs to upload.
The following user(s) said Thank You: ross_dev
Please Log in or Create an account to join the conversation.
- ross_dev
- Offline
- Senior Member
-
Less
More
- Posts: 56
- Thank you received: 2
6 years 9 months ago #154922
by ross_dev
Replied by ross_dev on topic Using IKFast to generate kinematics modules
Hi Frank!
Firstly, thank you so much for the ikfast / openrave conversion, and for replying here!
I had a feeling something like using an older ubuntu might be needed. If you are happy to upload the VM that would be of enormous help, a known-good install will provide a great headstart.
Ross
Firstly, thank you so much for the ikfast / openrave conversion, and for replying here!
I had a feeling something like using an older ubuntu might be needed. If you are happy to upload the VM that would be of enormous help, a known-good install will provide a great headstart.
Ross
Please Log in or Create an account to join the conversation.
- ftkalcevic
- Offline
- Junior Member
-
Less
More
- Posts: 30
- Thank you received: 4
6 years 9 months ago #154990
by ftkalcevic
Replied by ftkalcevic on topic Using IKFast to generate kinematics modules
The VM can be downloaded here...
drive.google.com/open?id=1uMP1gTU6BwfQiRmfRrmuRrUNVr5kQZ7-
This is a development VM so it is quite large. Hopefully there is nothing sensitive or embarassing.
You can login as frankt/password.
There is a version of linuxcnc in ~/linuxcnc-dev.
openrave is in ~/openrave/openrave, but I compile it and install it when I make changes (make; make install)
In ~/linuxcnc/configs/sim_arm are some samples - only ./robotarm.wam seems to work.
In ~/linuxcnc/configs/sim_arm/moveolike2 is a sim version of my robot arm (./moveolike2), but it is configured to run with a USB pendant - you'll need to remove those hal references.
There is a script in that directory make_ikfast, which runs the command to build the ikfast solvers. If you build the c language version, you can't run the tests - this has to be c++. Running the tests gives performance numbers. I think my arm has the same kinematics as a PUMA arm - the timings are great - mean: 0.000005s, median: 0.000005s, min: 0.000005s, max: 0.000011s
Openrave output is in ~/.openrave
Other points.
* I'm not a robotics expert, but as I understand it, ikfast only provides forward and inverse kinematics code - you still get singularities. To avoid singularities you are supposed to use openrave's path planning.
* the ikfastkins.c is a wrapper to call the ikfast code generated by openrave. It may need work. The inverse kinematics function can return multiple solutions - ikfastkins.c is supposed to pick the best, but I had problems at times either returning no solution, or no close solution - I haven't looked into this - I just hacked the tolerances in ikfastkins.c and the error/ferror in my ini files to avoid problems.
* The ikfastkins.c on the VM may be out of date. The linuxcnc is from master a couple of months ago. Unfortunately, it isn't linked directly to the github version (I have a machinekit fork which blocks me from having a linuxcnc fork)
drive.google.com/open?id=1uMP1gTU6BwfQiRmfRrmuRrUNVr5kQZ7-
This is a development VM so it is quite large. Hopefully there is nothing sensitive or embarassing.
You can login as frankt/password.
There is a version of linuxcnc in ~/linuxcnc-dev.
openrave is in ~/openrave/openrave, but I compile it and install it when I make changes (make; make install)
In ~/linuxcnc/configs/sim_arm are some samples - only ./robotarm.wam seems to work.
In ~/linuxcnc/configs/sim_arm/moveolike2 is a sim version of my robot arm (./moveolike2), but it is configured to run with a USB pendant - you'll need to remove those hal references.
There is a script in that directory make_ikfast, which runs the command to build the ikfast solvers. If you build the c language version, you can't run the tests - this has to be c++. Running the tests gives performance numbers. I think my arm has the same kinematics as a PUMA arm - the timings are great - mean: 0.000005s, median: 0.000005s, min: 0.000005s, max: 0.000011s
Openrave output is in ~/.openrave
Other points.
* I'm not a robotics expert, but as I understand it, ikfast only provides forward and inverse kinematics code - you still get singularities. To avoid singularities you are supposed to use openrave's path planning.
* the ikfastkins.c is a wrapper to call the ikfast code generated by openrave. It may need work. The inverse kinematics function can return multiple solutions - ikfastkins.c is supposed to pick the best, but I had problems at times either returning no solution, or no close solution - I haven't looked into this - I just hacked the tolerances in ikfastkins.c and the error/ferror in my ini files to avoid problems.
* The ikfastkins.c on the VM may be out of date. The linuxcnc is from master a couple of months ago. Unfortunately, it isn't linked directly to the github version (I have a machinekit fork which blocks me from having a linuxcnc fork)
The following user(s) said Thank You: ross_dev
Please Log in or Create an account to join the conversation.
- ross_dev
- Offline
- Senior Member
-
Less
More
- Posts: 56
- Thank you received: 2
6 years 9 months ago #155002
by ross_dev
Replied by ross_dev on topic Using IKFast to generate kinematics modules
Thanks Frank, that's incredible. Not only uploading the VM but the instructions too ... I owe you a beer or three. Sounds like you have put a lot of heart and soul into the project, I am very interested to see it in action.
As an aside, I am curious if you know why official openrave doesn't support other languages? There seems to be an option in openrave.py to specify an output language, but as far as I can tell from a brief scan of the code it will error out if you put anything but "cpp". Did they ever approach you about incorporating your c generator module?
Anyways, thanks again, you have helped me enormously.
Ross
As an aside, I am curious if you know why official openrave doesn't support other languages? There seems to be an option in openrave.py to specify an output language, but as far as I can tell from a brief scan of the code it will error out if you put anything but "cpp". Did they ever approach you about incorporating your c generator module?
Anyways, thanks again, you have helped me enormously.
Ross
Please Log in or Create an account to join the conversation.
- ftkalcevic
- Offline
- Junior Member
-
Less
More
- Posts: 30
- Thank you received: 4
6 years 9 months ago #155007
by ftkalcevic
Replied by ftkalcevic on topic Using IKFast to generate kinematics modules
I'm not sure why there aren't other languages. I only see openrave used standalone or as part of ROS, so maybe there isn't much interest.
Good luck with your project. I'd love to hear how you go and any improvements you make. Let me know if you have any questions; I'm subscribed to this thread so I should see posts.
Frank
Good luck with your project. I'd love to hear how you go and any improvements you make. Let me know if you have any questions; I'm subscribed to this thread so I should see posts.
Frank
The following user(s) said Thank You: ross_dev
Please Log in or Create an account to join the conversation.
Time to create page: 0.365 seconds