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 |