What does this library do?¶
This library computes and visualizes the "continuum" kinematics of robots such as the "Bionic Handling Assistant" (BHA), for which you can see a use case on youtube.
The kinematics are computed based on the constant curvature assumption, i.e. that the physical bending occurs homogeneously within each robot segment.
Yet, an arbitrary number of segments can be stacked. This technique, some computational tricks therein, and its usefulness on the BHA are described in this paper that appeared at the IROS 2012 conference.
More information can be found in this blog article.
Using the example binaries¶
Example 1: The ContinuumSegmentDemo (3D visualization)¶
This didactic example shows the geometric model underlying the simulated continuum kinematics, i.e. that each segment of a continuum robot behaves
like a torus segment. The example shows an animated movement of such a segment. Press Alt-T
(orus), Alt-G
(eometry) to toggle various visualization modes.
The code shows how to use the basic class ContinuumSegmentDrawable
, which takes take of the 3D rendering.
Example 2: The ContinuumRobotDemo (3D visualization)¶
Example 3: The BhaTrajectoryPrediction¶
Predict and visualize the end-effector trajectory for the "Bionic Handling Assistant" morphology given a posture-trajectory.
In the 3D visualization, press N
to generate a new trajectory.
Windows binaries¶
In order to execute the examples, you need some "Microsoft Visual C++" libaries:- The easiest way to get them is installing the "Microsoft Visual C++ 2010 Redistributable Package" from http://www.microsoft.com/download/en/details.aspx?id=5555
- Having the "Microsoft Visual C++ 2010" development environment installed does the same job, of course.
Linux Debian packages¶
There are debian-packages for "Ubuntu Linux Oneiric". Get them by adding the line
deb http://packages.cor-lab.de/ubuntu/ oneiric testing
to your
/etc/apt/sources.list
file. Then typesudo apt-get install continuumkinematics-bin
The example binaries will be installed to
/usr/bin/examples
.
ToDo: Make Public key public https://support.cor-lab.org/projects/ciserver/wiki/RepositoryUsage
Troubleshooting¶
Install and use from source¶
Dependencies¶
- Required: NemoMath
- Required: CMake
- Optional: libqglviewer-qt4-dev, in case you want to use the visualization. The pure kinematics part can be built and deployed without this dependency.
- Which requires: Qt 4
Building from source¶
- Get the source from https://code.cor-lab.org/svn/continuumkinematics, e.g.
svn co https://code.cor-lab.org/svn/continuumkinematics
- Build it under Linux or MacOS
cd continuumkinematics/build cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} .. make install
- Build it under Windows/MSVC
cd continuumkinematics call project\build_vs.bat
Troubleshooting¶
- During configuration, cmake says
Qt qmake not found!
. Simply check out where the qmake binary is located in your filesystem and put this in your cmake call:
-DQT_QMAKE_EXECUTABLE="${PATH_TO_QMAKE}/qmake"
- If you get linking errors like
undefined reference to `QGLViewer::***'
, you are probably linking againstlibqglviewer-qt3
instead ofqt4
- If you don't have the right version of
qglviewer
around, install it. - If cmake still does not configure the correct library, you can manually chose the correct path by setting the variables "
QGLVIEWER_*
":
cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} -DQGLVIEWER_INCLUDE_DIR=${QGL_QT4_DIR}/include -DQGLVIEWER_LIBRARIES=${QGL_QT4_DIR}/lib/${library_name} .. make install
- If you don't have the right version of
- When running the example binaries, you get the error message
QWidget: Must construct a QApplication before a QPaintDevice
- An annoying problem that is currently only observed under Windows/MSVC: It seems to happen when QGLViewer is built in
release
mode, but you build thecontinuumkinematics
code indebug
mode, or vice versa. - Solution: find out how QGLViewer was built (most likely as
release
) and set the build-configuration accordingly in the cmake call:
-DCMAKE_BUILD_TYPE=[release/debug]
- An annoying problem that is currently only observed under Windows/MSVC: It seems to happen when QGLViewer is built in
Platform/Compiler support¶
Currently, the following combinations are explicitly supported and known to work:- Ubuntu Linux/GCC with Ubuntu version from
10.04 LTS (Lucid Lynx)
and newer, andGCC>=4.3
, 32bit as well as 64bit - MacOS/CLang3.0
- Windows 7/MSVC2010, 32bit
- GCC 4.2 or older
- MSVC 2008 or older