Rotated STL's vs rotationaxis tags difference

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

Rotated STL's vs rotationaxis tags difference

Antons Rebguns-2
Hello Rosen,

I have the following problem:

I created an XML description of an arm for OpenRAVE and successfully generated an IK solver using ikfast. This particular version of the arm used STL models that weren't rotated right, i.e. I had rotate them in the XML file using <rotationaxis> tags, so I decided to go back and rotate the models instead and generate new STLs so that OpenRAVE XML file has only translations and looks less complicated. The problem is that ikfast now fails to generate solvers for this new configuration, even though an arm looks, behaves and has the same degrees of freedom as the previous version. Am I missing something obvious here, what might be the problem?

Here's ikfast output when it fails:

./openrave.py --database inversekinematics --robot=`rospack find wubble_arm_kinematics`/openrave_description/wubble_arm_robot.xml --freejoint=ShoulderPitchJoint --freeinc=0.01 --iktests=1000 --debug=DEBUG
[KinBody.cpp:2418] Successfully computed joint hierarchy for number of joints 9!
Generating inverse kinematics for manip arm : Transform6D [1, 2, 3, 4, 5, 6] (this might take ~10 min)
generating inverse kinematics file /home/anton/.openrave/kinematics.469509ecbe3e2c6da0bc3496502da1da/ikfast10.Transform6D_1_2_3_4_5_6_f0.cpp
moved translation  [0, 0.0640000000000000013322676295502, 0] to left end
Taking the inverse of the mechanism (sometimes intersecting joints are on the base)
rotvars:  [j1, j2]  transvars:  [j3, j4, j5, j6]  not 3 dims
failed to genreate ik solution
[environment-core.h:187] Environment destructor
[environment-core.h:195] destroy problems
[environment-core.h:206] resetting raveviewer
Traceback (most recent call last):
  File "./openrave.py", line 101, in <module>
    database.run(args=args)
  File "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/databases/inversekinematics.py", line 590, in run
    InverseKinematicsModel.RunFromParser(*args,**kwargs)
  File "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/databases/inversekinematics.py", line 562, in RunFromParser
    OpenRAVEModel.RunFromParser(Model=Model,parser=parser,args=args,**kwargs)
  File "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/openravepy_ext.py", line 583, in RunFromParser
    model.autogenerate(options=options)
  File "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/databases/inversekinematics.py", line 237, in autogenerate
    self.generate(iktype=iktype,freejoints=freejoints,usedummyjoints=usedummyjoints,accuracy=accuracy,precision=precision,forceikbuild=forceikbuild,outputlang=outputlang)
  File "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/databases/inversekinematics.py", line 320, in generate
    raise ValueError('failed to generate ik solver for robot %s:%s'%(self.robot.GetName(),self.manip.GetName()))
ValueError: failed to generate ik solver for robot WubbleArm:arm
[environment-core.h:187] Environment destructor
[environment-core.h:195] destroy problems
[environment-core.h:206] resetting raveviewer
[plugindatabase.h:288] shutting down
[plugindatabase.h:64] RaveDatabase: closing plugin /home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/plugins/libbasecontrollers.so
[plugindatabase.h:64] RaveDatabase: closing plugin /home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/plugins/libikfastsolvers.so
[plugindatabase.h:64] RaveDatabase: closing plugin /home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/plugins/liboderave.so
[plugindatabase.h:64] RaveDatabase: closing plugin /home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/plugins/libbaserobots.so
[plugindatabase.h:301] cleaning libraries

I've also attached XML's for both versions.

Thanks for any insight you might have,
Anton

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users

ikfast_fail_arm_kinbody.xml (10K) Download Attachment
ikfast_fail_arm_robot.xml (2K) Download Attachment
ikfast_success_arm_kinbody.xml (11K) Download Attachment
ikfast_success_arm_robot.xml (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Rotated STL's vs rotationaxis tags difference

Rosen Diankov
Administrator
hi antons,

Thanks for the files. There was actually two files. One one on the
ikfast side in simplifying the transformation hierarchy (not a bug,
just an edge case that wasn't being considered). This is fixed in
r1741 and in jsk-ros-pkg r683.

The other problem i think is on your side. On WristPitchLink you have
the offset to

        <translation>0.255 0 0.00001</translation>

The 0.00001 is getting in the way of all 3 axes intersecting at a
single point, is it really necessary?

rosen,

2010/9/20 Antons Rebguns <[hidden email]>:

> Hello Rosen,
> I have the following problem:
> I created an XML description of an arm for OpenRAVE and successfully
> generated an IK solver using ikfast. This particular version of the arm used
> STL models that weren't rotated right, i.e. I had rotate them in the XML
> file using <rotationaxis> tags, so I decided to go back and rotate the
> models instead and generate new STLs so that OpenRAVE XML file has only
> translations and looks less complicated. The problem is that ikfast now
> fails to generate solvers for this new configuration, even though an arm
> looks, behaves and has the same degrees of freedom as the previous version.
> Am I missing something obvious here, what might be the problem?
> Here's ikfast output when it fails:
> ./openrave.py --database inversekinematics --robot=`rospack find
> wubble_arm_kinematics`/openrave_description/wubble_arm_robot.xml
> --freejoint=ShoulderPitchJoint --freeinc=0.01 --iktests=1000 --debug=DEBUG
> [KinBody.cpp:2418] Successfully computed joint hierarchy for number of
> joints 9!
> Generating inverse kinematics for manip arm : Transform6D [1, 2, 3, 4, 5, 6]
> (this might take ~10 min)
> generating inverse kinematics file
> /home/anton/.openrave/kinematics.469509ecbe3e2c6da0bc3496502da1da/ikfast10.Transform6D_1_2_3_4_5_6_f0.cpp
> moved translation  [0, 0.0640000000000000013322676295502, 0] to left end
> Taking the inverse of the mechanism (sometimes intersecting joints are on
> the base)
> rotvars:  [j1, j2]  transvars:  [j3, j4, j5, j6]  not 3 dims
> failed to genreate ik solution
> [environment-core.h:187] Environment destructor
> [environment-core.h:195] destroy problems
> [environment-core.h:206] resetting raveviewer
> Traceback (most recent call last):
>   File "./openrave.py", line 101, in <module>
>     database.run(args=args)
>   File
> "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/databases/inversekinematics.py",
> line 590, in run
>     InverseKinematicsModel.RunFromParser(*args,**kwargs)
>   File
> "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/databases/inversekinematics.py",
> line 562, in RunFromParser
>
>  OpenRAVEModel.RunFromParser(Model=Model,parser=parser,args=args,**kwargs)
>   File
> "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/openravepy_ext.py",
> line 583, in RunFromParser
>     model.autogenerate(options=options)
>   File
> "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/databases/inversekinematics.py",
> line 237, in autogenerate
>
>  self.generate(iktype=iktype,freejoints=freejoints,usedummyjoints=usedummyjoints,accuracy=accuracy,precision=precision,forceikbuild=forceikbuild,outputlang=outputlang)
>   File
> "/home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/openravepy/databases/inversekinematics.py",
> line 320, in generate
>     raise ValueError('failed to generate ik solver for robot
> %s:%s'%(self.robot.GetName(),self.manip.GetName()))
> ValueError: failed to generate ik solver for robot WubbleArm:arm
> [environment-core.h:187] Environment destructor
> [environment-core.h:195] destroy problems
> [environment-core.h:206] resetting raveviewer
> [plugindatabase.h:288] shutting down
> [plugindatabase.h:64] RaveDatabase: closing plugin
> /home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/plugins/libbasecontrollers.so
> [plugindatabase.h:64] RaveDatabase: closing plugin
> /home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/plugins/libikfastsolvers.so
> [plugindatabase.h:64] RaveDatabase: closing plugin
> /home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/plugins/liboderave.so
> [plugindatabase.h:64] RaveDatabase: closing plugin
> /home/anton/ros/jsk-ros-pkg/openrave_planning/openrave/share/openrave/plugins/libbaserobots.so
> [plugindatabase.h:301] cleaning libraries
> I've also attached XML's for both versions.
> Thanks for any insight you might have,
> Anton
> ------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing.
> http://p.sf.net/sfu/novell-sfdev2dev
> _______________________________________________
> Openrave-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/openrave-users
>
>

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users