ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Where can I get ChainJntToJacDotSolver?

asked 2017-07-11 15:55:38 -0500

GuiRitter gravatar image

updated 2017-07-12 11:51:42 -0500

Hi everyone.

I'm working with both ROS Indigo (Ubuntu 14.04) and Lunar (Debian 9) and I already have KDL up and running.

I wanted to use the ChainJntToJacDotSolver C++ class, but it's not present in either setup.

Do I have to install KDL from source to get this class or is there another way?

Thanks in advance.

EDIT: additional information that I forgot. ROS Indigo was already installed, but I installed ROS Lunar following these instructions. I'm trying to implement a controller for this package, in the same manner as is done there. There is a /opt/ros/<distro>/include/kdl/chainjnttojacsolver.hpp, I can include it in my code, compile it, run it and it works. But there's no chainjnttojacdotsolver.hpp anywhere.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2017-07-15 16:02:30 -0500

GuiRitter gravatar image

I couldn't install KDL from source because I couldn't find a way to link it to Eigen (or the other way around). But I've managed to get a workaround running.

  1. I copied chainjnttojacdotsolver.hpp's source to my header file.
  2. I replaced #include "solveri.hpp" by #include <kdl/solveri.hpp>, and likewise for the rest.
  3. I copied chainjnttojacdotsolver.cpp's source to my source file, making sure that it got pasted after my #include <my_header.h>, and removed #include "chainjnttojacdotsolver.hpp".

Seems to be working as if I had that class the normal way.

edit flag offensive delete link more

Comments

Good hack to avoid installing all of KDL from source just to get one function, but hopefully they address the issue you raised on Github so it gets included in the release.

adamconkey gravatar image adamconkey  ( 2017-10-15 14:35:40 -0500 )edit
0

answered 2017-07-12 05:10:56 -0500

gvdhoorn gravatar image

updated 2017-07-12 15:10:32 -0500

That should be available from the orocos_kdl package, so if you depend on that correctly you should be able to include the header and reference the symbol.

See orocos_kdl/KDL::ChainJntToJacDotSolver for the API docs in Indigo.


Edit:

ROS Indigo was already installed, but I installed ROS Lunar following these instructions.

Are Indigo and Lunar installed on the same (Debian) machine? Are you mixing "upstream" packages and OSRF provided ones? If you are, please read wiki/UpstreamPackages.

And I linked to the API docs because that shows that the file is there - the docs are generated from the sources. If the file wasn't there, the doc wouldn't be either.

And just to check, orocos_kdl/KDL::ChainJntToJacDotSolver is the same set of docs, but for Lunar.


Edit2: just checked a Lunar Docker image, and it appears that the version of orocos_kdl that is shipped with Lunar does not include the file for some reason. The docs do include it, as they are built from the sources.

I think this would be something to report over at orocos_kinematics_dynamics/issues, as the file is clearly there in the source tree, but somehow not included in the set of files that gets installed.

edit flag offensive delete link more

Comments

I've added additional information in my first post, and I'm aware of the API docs. I was even going to link to that page, but I forgot.

GuiRitter gravatar image GuiRitter  ( 2017-07-12 11:52:25 -0500 )edit

As I've written in the first post, ROS Indigo is installed in a machine with Ubuntu 14.04, and ROS Lunar is installed in a machine with Debian 9.

GuiRitter gravatar image GuiRitter  ( 2017-07-12 15:01:31 -0500 )edit

As I've written in the first post, ROS Indigo is installed in a machine with Ubuntu 14.04, and ROS Lunar is installed in a machine with Debian 9.

I saw that, but your 'additional information' said:

ROS Indigo was already installed, but I installed ROS Lunar

and then linked to the ..

gvdhoorn gravatar image gvdhoorn  ( 2017-07-12 15:12:06 -0500 )edit

.. Debian install instructions. That confused me.

gvdhoorn gravatar image gvdhoorn  ( 2017-07-12 15:12:53 -0500 )edit

Ok, sorry about the misleading writing. I'll look into reporting the issue. In the meanwhile, I'll have to compile from source to use this class, right? Oh, and I've mentioned both Indigo and Lunar because it doesn't matter in which one I get this to work.

GuiRitter gravatar image GuiRitter  ( 2017-07-12 15:16:39 -0500 )edit

Just checked Indigo, and it doesn't appear to be installed there either. Not sure what is going on:

$ docker run -it --rm osrf/ros:indigo-desktop
root@df5e6d536489:/# dpkg -S chainjnttojacdotsolver.hpp
dpkg-query: no path found matching pattern *chainjnttojacdotsolver.hpp*
gvdhoorn gravatar image gvdhoorn  ( 2017-07-12 15:23:07 -0500 )edit

You could build it from sources in your workspace. That should overlay the package in /opt, and as long as you don't use an install space the file should be available.

I would really recommend you open an issue about this, as it seems like a problem to be solved.

gvdhoorn gravatar image gvdhoorn  ( 2017-07-12 15:29:00 -0500 )edit

Yeah, I did it before. In the meanwhile, I'm working on building it from source. Too bad that it's bugged, but thanks for your help so far!

GuiRitter gravatar image GuiRitter  ( 2017-07-12 15:38:27 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2017-07-11 15:55:38 -0500

Seen: 324 times

Last updated: Jul 15 '17