Closed 130s closed 9 years ago
@rethink-imcmahon any ideas how to solve this?
Yep, this looks like a header name collision issue. The two ikfast.h
header files are identical (and copied from openrave itself). We can either
or
baxter_ikfast
, which only has an include
directory with ikfast.h
inside of it and have the left and right arm packages depend on this new package for their headersWhat would you consider to be more desirable/cleaner?
I think we should put ikfast.h
to the package local include directories,
/opt/ros/indigo/baxter_ikfast_left_arm_plugin.
I'm also afraid this could happens in all other ikfast plugin debs.
◉ Kei Okada
On Fri, Oct 16, 2015 at 4:59 AM, Ian McMahon notifications@github.com wrote:
Yep, this looks like a namespace collision issue. The two ikfast.h header files are identical (and copied from openrave itself). We can either
- rename both of the header files to be unique
or
- create another package, baxter_ikfast, which only has an include directory with ikfast.h inside of it and have the left and right arm packages depend on this new package for their headers
What would you consider to be more desirable/cleaner?
— Reply to this email directly or view it on GitHub https://github.com/ros-planning/moveit_robots/issues/37#issuecomment-148504376 .
Great point @k-okada. That seems like the cleanest solution, and could be applied to all ikfast packages.
we may have to manually change _solve.cpp file because that is auto generated by opnerave program. http://wiki.ros.org/Industrial/Tutorials/Create_a_Fast_IK_Solution/moveit_plugin
Oh, yes. change_solve.cpp will need to be changed. I think moving the ikfast.h location works as a solution for the baxter
and nextage
packages, but if anyone wants to create a custom IKFast, they will need to move the files / edit the resulting cpp by hand.
I'm not sure who to ask but we may better to change tutorials at http://wiki.ros.org/Industrial/Tutorials/Create_a_Fast_IK_Solution/moveit_plugin . And also I'm not sure if https://github.com/ros-planning/moveit_ikfast/blob/jade-devel/scripts/create_ikfast_moveit_plugin.py is related to the ros-i tutorials but this package seems to use file like 'include/ikfast.h' ( https://github.com/ros-planning/moveit_ikfast/blob/jade-devel/scripts/create_ikfast_moveit_plugin.py#L203) and it may better to fix this.
◉ Kei Okada
On Tue, Nov 3, 2015 at 1:13 AM, Isaac I.Y. Saito notifications@github.com wrote:
Closed #37 https://github.com/ros-planning/moveit_robots/issues/37 via
38 https://github.com/ros-planning/moveit_robots/pull/38.
— Reply to this email directly or view it on GitHub https://github.com/ros-planning/moveit_robots/issues/37#event-452144559.
Fyi @shaun-edwards @gavanderhoorn the last comment about ROS-I tutorial. I tried to update the wiki but wasn't sure if I should make a change there.
@130s, the comment at the top of the wiki says that the MoveIt tutorial should be used instead. I updated the link to the new tutorials location, here. I would recommend making the changes to the moveit wiki (and perhaps the Industrial wiki should redirect there automatically in order to avoid confusion). @gavanderhoorn, thoughts?
Bit late, but still.
In recent moveit_ikfast
generated pkgs, we don't actually install that header (see CMakeLists.txt, removed in ros-planning/moveit_ikfast#19), as the typical use case is for those packages to provide a MoveIt IKFast plugin that just gets loaded via pluginlib
et al.
That being said, if there is a desire to actually install it, I would agree with @k-okada and install it in an include
dir relative to the providing package (in this case include/baxter_ikfast_left_arm_plugin
). That would automatically namespace things and would seem to avoid the issue reported here. It would of course need an update to the generated .cpp
as well.
Installing things without namespacing into the global include
dir is never a good idea (as is done now in baxter/baxter_ikfast_left_arm_plugin/CMakeLists.txt).
Installing
baxter_moveit_config
deb fails since its dependencybaxter-ikfast-{left, right}-arm-plugin
both tries to install/opt/ros/indigo/include/ikfast.h
and apt seems to not be able to handle it.With
catkin_make install
, this isn't an issue since I assume either package just overwrites the .h file that's installed by the other?I don't know what's the best solution for this. Apparently we can extract the shared portion as a common package but that may sound a bit overkill.