Wiki » History » Version 16

M. Rolf, 01/24/2013 12:53 PM

1 1 M. Rolf
2 15 M. Rolf
h1. What does this library do?
3 15 M. Rolf
4 1 M. Rolf
{{>toc}}
5 15 M. Rolf
6 16 M. Rolf
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":http://www.youtube.com/watch?v=kk3w2VchgWA.
7 15 M. Rolf
The kinematics are computed based on the _constant curvature_ assumption, i.e. that the physical bending occurs homogeneously within each robot segment.
8 16 M. Rolf
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":http://www.cor-lab.de/bib/constant-curvature-continuum-kinematics-fast-approximate-model-bionic-handling-assistant that appeared at the IROS 2012 conference.
9 15 M. Rolf
10 15 M. Rolf
More information can be found in this "blog article":http://planet-robotics.net/articles/2012-04-16-simulating-festo-bionic-handling-assistant.html.
11 15 M. Rolf
12 15 M. Rolf
13 15 M. Rolf
h1. Using the example binaries
14 11 Anonymous
15 8 M. Rolf
h3. Example 1: The ContinuumSegmentDemo (3D visualization)
16 8 M. Rolf
17 8 M. Rolf
!/attachments/download/188/segmentdemo.jpg!
18 8 M. Rolf
19 8 M. Rolf
This didactic example shows the geometric model underlying the simulated continuum kinematics, i.e. that each segment of a continuum robot behaves
20 8 M. Rolf
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.
21 9 M. Rolf
The code shows how to use the basic class @ContinuumSegmentDrawable@, which takes take of the 3D rendering.
22 8 M. Rolf
23 8 M. Rolf
h3. Example 2: The ContinuumRobotDemo (3D visualization)
24 8 M. Rolf
25 8 M. Rolf
!/attachments/download/189/trunkdemo.jpg!
26 8 M. Rolf
27 10 M. Rolf
h3. Example 3: The BhaTrajectoryPrediction 
28 10 M. Rolf
29 10 M. Rolf
!/attachments/download/190/predictiondemo.jpg!
30 10 M. Rolf
31 10 M. Rolf
Predict and visualize the end-effector trajectory for the "Bionic Handling Assistant" morphology given a posture-trajectory.
32 10 M. Rolf
In the 3D visualization, press @N@ to generate a new trajectory.
33 10 M. Rolf
34 2 M. Rolf
h2. Windows binaries
35 2 M. Rolf
36 6 M. Rolf
In order to execute the examples, you need some "Microsoft Visual C++" libaries:
37 2 M. Rolf
* 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
38 2 M. Rolf
* Having the "Microsoft Visual C++ 2010" development environment installed does the same job, of course.
39 2 M. Rolf
40 2 M. Rolf
h2. Linux Debian packages
41 2 M. Rolf
42 12 M. Rolf
There are debian-packages for "Ubuntu Linux Oneiric". Get them by adding the line
43 12 M. Rolf
<pre>
44 12 M. Rolf
deb http://packages.cor-lab.de/ubuntu/ oneiric testing
45 12 M. Rolf
</pre>
46 12 M. Rolf
to your @/etc/apt/sources.list@ file. Then type
47 12 M. Rolf
<pre>
48 12 M. Rolf
sudo apt-get install continuumkinematics-bin
49 12 M. Rolf
</pre>
50 12 M. Rolf
The example binaries will be installed to @/usr/bin/examples@.
51 12 M. Rolf
52 13 M. Rolf
*ToDo*: Make Public key public https://support.cor-lab.org/projects/ciserver/wiki/RepositoryUsage
53 13 M. Rolf
54 2 M. Rolf
h2. Troubleshooting
55 8 M. Rolf
56 2 M. Rolf
57 2 M. Rolf
58 2 M. Rolf
59 2 M. Rolf
h1. Install and use from source
60 2 M. Rolf
61 2 M. Rolf
h2. Dependencies
62 2 M. Rolf
63 2 M. Rolf
* Required: "NemoMath":https://code.cor-lab.org/projects/nemomath/wiki/Wiki
64 2 M. Rolf
** Which requires: "Eigen 2":http://eigen.tuxfamily.org/index.php?title=Main_Page
65 2 M. Rolf
** Which requires: "Boost":http://www.boost.org/ (header-only parts)
66 2 M. Rolf
* Required: "CMake":http://www.cmake.org/
67 2 M. Rolf
* Optional: "libqglviewer-qt4-dev":http://www.libqglviewer.com/, in case you want to use the visualization. The pure kinematics part can be built and deployed without this dependency.
68 2 M. Rolf
** Which requires: "Qt 4":http://qt.nokia.com/
69 2 M. Rolf
70 2 M. Rolf
h2. Building from source
71 2 M. Rolf
72 5 M. Rolf
* Get the source from https://code.cor-lab.org/svn/continuumkinematics, e.g.
73 5 M. Rolf
  <pre>
74 5 M. Rolf
svn co https://code.cor-lab.org/svn/continuumkinematics</pre>
75 14 M. Rolf
* Build it under *Linux* or *MacOS*
76 1 M. Rolf
<pre>
77 1 M. Rolf
cd continuumkinematics/build
78 1 M. Rolf
cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} ..
79 5 M. Rolf
make install</pre>
80 5 M. Rolf
* Build it under *Windows/MSVC*
81 5 M. Rolf
<pre>
82 5 M. Rolf
cd continuumkinematics
83 5 M. Rolf
call project\build_vs.bat</pre>
84 3 M. Rolf
85 7 M. Rolf
h2. Troubleshooting
86 1 M. Rolf
87 4 M. Rolf
* 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:
88 4 M. Rolf
   <pre>
89 4 M. Rolf
-DQT_QMAKE_EXECUTABLE="${PATH_TO_QMAKE}/qmake" </pre>
90 3 M. Rolf
* If you get linking errors like *@undefined reference to `QGLViewer::***'@*, you are probably linking against @libqglviewer-qt3@ instead of @qt4@
91 3 M. Rolf
** If you don't have the right version of @qglviewer@ around, install it.
92 3 M. Rolf
** If cmake still does not configure the correct library, you can manually chose the correct path by setting the variables "@QGLVIEWER_*@":
93 3 M. Rolf
   <pre>
94 3 M. Rolf
cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} -DQGLVIEWER_INCLUDE_DIR=${QGL_QT4_DIR}/include -DQGLVIEWER_LIBRARIES=${QGL_QT4_DIR}/lib/${library_name} ..
95 1 M. Rolf
make install</pre>
96 4 M. Rolf
97 4 M. Rolf
* When running the example binaries, you get the error message *@QWidget: Must construct a QApplication before a QPaintDevice@*
98 4 M. Rolf
** 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 the @continuumkinematics@ code in *@debug@* mode, or vice versa.
99 4 M. Rolf
** Solution: find out how QGLViewer was built (most likely as @release@) and set the build-configuration accordingly in the cmake call:
100 1 M. Rolf
   <pre>-DCMAKE_BUILD_TYPE=[release/debug]</pre>
101 7 M. Rolf
102 7 M. Rolf
h2. Platform/Compiler support
103 7 M. Rolf
104 7 M. Rolf
Currently, the following combinations are explicitly supported and known to work:
105 7 M. Rolf
* *Ubuntu Linux/GCC* with Ubuntu version from @10.04 LTS (Lucid Lynx)@ and newer, and @GCC>=4.3@, 32bit as well as 64bit
106 7 M. Rolf
* *MacOS/CLang3.0*
107 7 M. Rolf
* *Windows 7/MSVC2010*, 32bit
108 7 M. Rolf
109 7 M. Rolf
The following platforms are known _not_ to work:
110 7 M. Rolf
* GCC 4.2 or older
111 7 M. Rolf
* MSVC 2008 or older