New Dual Manipulation Plugin

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

New Dual Manipulation Plugin

achint
Hello Openrave users
I introduce you all to the new Dual Arm Manipulation plugin in openrave. The plugin is called 'dualmanipulation' and an example python script file 'dualarmdemo_schunk.py' demonstrates its use.
This plugin is useful for situations where an object has to be grasped with two manipulators together and transported to some other location.
The functionality includes planning trajectories for two manipulators (which are parts of a robot) together. They can be planned independent of each other but with collision checking for all intermediate configurations. This is useful, for instance, when the two manipulators have to move from their home positions to the grasping position for an object.
With constrained planning, the trajectories for the two manipulators can be planned while maintaining their EEFs' relative transformations. This is required while moving an object while holding it with the two manipulators together.
Feel free to explore the plugin and contact us for any questions..


Best
Achint

--


------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|

Re: New Dual Manipulation Plugin

Eohan
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: New Dual Manipulation Plugin

Rosen Diankov
Administrator
hi eohan,

i'm not sure what the error is. the last lines look like ikfast was
still working on creating the IK solvers... this process can take up
to ~10 minutes

rosen,

2010/3/26 Eohan <[hidden email]>:

> Hi Achint, Thanks for the dual manipulation plugin. Would be really useful.
> I get the following error when running python dualarmdemo_schunk.py
> [openravepy_int.cpp:2452] viewer qtcoin successfully attached X Error:
> BadWindow (invalid Window parameter) 3 Major opcode: 20 (X_GetProperty)
> Resource id: 0x1faf033 /usr/local/share/openrave/openravepy/metaclass.py:22:
> DeprecationWarning: object.__new__() takes no parameters self =
> super(InstanceTracker, cls).__new__(*args, **kwargs) [ikfastproblem.h:190]
> /home/eohan/.openrave/robot.89cb5a02aba7fa18f5da10c149f68bfb/ikfast.leftarm.Transform6D.i686.so:
> cannot open shared object file: No such file or directory
> [ikfastproblem.h:124] failed to load library
> /home/eohan/.openrave/robot.89cb5a02aba7fa18f5da10c149f68bfb/ikfast.leftarm.Transform6D.i686.so
> Generating inverse kinematics Transform6D [0, 1, 2, 3, 4, 5, 6] generating
> inverse kinematics file
> /home/eohan/.openrave/robot.89cb5a02aba7fa18f5da10c149f68bfb/ikfast.leftarm.Transform6D_0_1_3_4_5_6_f2.cpp
> moved translation [0, 0.182499999999999995559107901499, 0] to right end
> moved translation [0, 0, 0] to left end moved translation on intersecting
> axis [0, 0, 0] to left attempting j2 = 0 attempting j2 = pi/2 attempting j2
> = pi attempting j2 = -pi/2 attempting None = None [ikfastproblem.h:190]
> /home/eohan/.openrave/robot.89cb5a02aba7fa18f5da10c149f68bfb/ikfast.rightarm.Transform6D.i686.so:
> cannot open shared object file: No such file or directory
> [ikfastproblem.h:124] failed to load library
> /home/eohan/.openrave/robot.89cb5a02aba7fa18f5da10c149f68bfb/ikfast.rightarm.Transform6D.i686.so
> Generating inverse kinematics Transform6D [7, 8, 9, 10, 11, 12, 13]
> generating inverse kinematics file
> /home/eohan/.openrave/robot.89cb5a02aba7fa18f5da10c149f68bfb/ikfast.rightarm.Transform6D_7_8_10_11_12_13_f9.cpp
> moved translation [0, 0.182499999999999995559107901499, 0] to right end
> moved translation [0, 0, 0] to left end moved translation on intersecting
> axis [0, 0, 0] to left Regards, Eohan
> ________________________________
> View this message in context: Re: New Dual Manipulation Plugin
> Sent from the OpenRAVE Users List mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Openrave-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/openrave-users
>
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|

Re: New Dual Manipulation Plugin

Eohan
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: New Dual Manipulation Plugin

Rosen Diankov
Administrator
hi eohan,

one call to inversekinematics.py generates the IK for the specified
manipulator. If no manipulator is specified, the first one is chosen.
To get the set of options that can be specified, you can type

python inversekinematics.py --help

For example, to solve the IK for the 'rightarm' in
schunk-lwa3-dual.robot.xml, you can do:

python inversekinematics.py --robot=robots/schunk-lwa3-dual.robot.xml
--manipname=rightarm

That being said, all the openrave demos dynamically track whether IK
and other models are present, and if not openrave will build those
models. So you didn't need to call inversekinematics.py ahead of time.

rosen,

2010/3/26 Eohan <[hidden email]>:

>
> Rosen,
> That makes sense. I didn't wait enough because i ran "python
> inversekinematics.py --robot=robots/schunk-lwa3-dual.robot.xml" before
> executing the dual arm manipulation script.
>
> Doesn't Running the following generate the inverse kinematics for both the
> arms ? If not , what does it generate ?
>
> python inversekinematics.py --robot=robots/schunk-lwa3-dual.robot.xml
> /usr/local/share/openrave/openravepy/metaclass.py:22: DeprecationWarning:
> object.__new__() takes no parameters
>  self = super(InstanceTracker, cls).__new__(*args, **kwargs)
> Generating inverse kinematics  Transform6D [0, 1, 2, 3, 4, 5, 6]
> destroying environment
>
> Eohan
>
> Rosen Diankov wrote:
>>
>> hi eohan,
>>
>> i'm not sure what the error is. the last lines look like ikfast was
>> still working on creating the IK solvers... this process can take up
>> to ~10 minutes
>>
>> rosen,
>>
>>
>>
> --
> View this message in context: http://n3.nabble.com/New-Dual-Manipulation-Plugin-tp663193p676636.html
> Sent from the OpenRAVE Users List mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Openrave-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/openrave-users
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|

Re: New Dual Manipulation Plugin

Goutham Mallapragada
In reply to this post by achint
Hi Achint,

Thanks for the plugin. I have been playing with the plugin for a few days now. I am using it directly in C++ code and ran into an issue.

In the CM::DualArmManipulation::DualArmConstrained function while the vprev and vcur are joint angle vectors for the entire robot with two arms,
vsolution in bool a= _pmanipI->FindIKSolution(tInew,vsolution, false); is the joint angle vector just for the inactive manipulator (hence of different dimension).
Due to this the check if(fabs(vsolution[i]-vprev[i])<errorRot*2) was failing. So I modified the code as follows:


 bool a= _pmanipI->FindIKSolution(tInew,vsolution, false);
            const std::vector<int>& _Ijoints=_pmanipI->GetArmJoints();

            if(a){
                for (int i=0;i<7;i++) //this check is important to make sure the IK solution does not fly too far away since there are multiple Ik solutions possible
                    if(fabs(vsolution[i]-vprev[_Ijoints[i]])<errorRot*2)
                        vcur[_Ijoints[i]]=vsolution[i];

                  ........

Goutham Mallapragada

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|

Re: New Dual Manipulation Plugin

Goutham Mallapragada
Please ignore my previous mail. The issue seems to be resolved in r1365. I apologize for posting without checking the latest version.

Goutham

On Fri, Mar 26, 2010 at 11:07 AM, Goutham Mallapragada <[hidden email]> wrote:
Hi Achint,

Thanks for the plugin. I have been playing with the plugin for a few days now. I am using it directly in C++ code and ran into an issue.

In the CM::DualArmManipulation::DualArmConstrained function while the vprev and vcur are joint angle vectors for the entire robot with two arms,
vsolution in bool a= _pmanipI->FindIKSolution(tInew,vsolution, false); is the joint angle vector just for the inactive manipulator (hence of different dimension).
Due to this the check if(fabs(vsolution[i]-vprev[i])<errorRot*2) was failing. So I modified the code as follows:


 bool a= _pmanipI->FindIKSolution(tInew,vsolution, false);
            const std::vector<int>& _Ijoints=_pmanipI->GetArmJoints();

            if(a){
                for (int i=0;i<7;i++) //this check is important to make sure the IK solution does not fly too far away since there are multiple Ik solutions possible
                    if(fabs(vsolution[i]-vprev[_Ijoints[i]])<errorRot*2)
                        vcur[_Ijoints[i]]=vsolution[i];

                  ........

Goutham Mallapragada



--
Goutham Mallapragada, Ph.D.
Machine Learning Scientist
Universal Robotics, Inc.
2518 Smith Springs Rd
Nashville, TN - 37217


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users