This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder. ©2006 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE. See http://www.ieee.org/web/publications/rights/policies.html for further clarification.
Proceedings of the 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems October 9 - 15, 2006, Beijing, China
Three-Dimensional Modeling and Display of Continuum Robots* Bryan A. Jones
Ian D. Walker
Department of Electrical and Computer Engineering Mississippi State University Mississippi State, MS 39762
Department of Electrical and Computer Engineering Clemson University Clemson, SC 29634
[email protected]
[email protected]
at
at
at
Abstract - Though a large number continuum robots exist, little work has been done to accurately and effectively visualize these devices in three dimensions. Like octopus arms and elephant trunks, these robots lack discrete joints, instead bending in smooth, continuous curves. Three-dimensional visualization of traditional rigid-link robots is both well established and extensively used in modeling, simulation, design, and operation of these robots. Providing three-dimensional visualization techniques extends these benefits, considered essential for rigid-link robots, to continuum robots. This paper presents a highly flexible three-dimensional visualization technique which executes in realtime for a large class of continuum robots. The results of this technique are then applied to two different continuum manipulators which are representative of most continuum robot designs, demonstrating the wide applicability of this method. Index Terms – NURBS, OpenInventor, continuum trunks, biologically-inspired robotics.
I. INTRODUCTION Biologically-inspired continuum robots differ dramatically from their traditional counterparts, constructed of rigid links. While traditional rigid-link robots mimic structures such as the human arm with a series of joints and links similar in function to the vertebrate skeleton, continuum robots bend in smooth, continuous curves which resemble the shape of elephant trunks, octopus arms, and squid tentacles, biological structures which lack a skeletal structure. These types of manipulators promise to perform many tasks in unstructured environments difficult for traditional robots due to the inherent compliance necessary in constructing a continuum robot. Their narrow profile, lack of sharp edges, and high flexibility makes them ideally suited for search-and-rescue operations in
at
disaster areas. Like an elephant’s trunk, a continuum trunk can grasp and manipulate objects of widely varying sizes and shapes by encircling them, providing a robust grasp which distributes grasping force over the entire contact area of the trunk [1]. A consistent, continued effort in the design and development of these manipulators is evident, yielding a large variety of designs as reviewed in [3]. Several approaches for determining the kinematics [4, 5, 6] and dynamics [7, 8] provide rich analytical tools for continuum robots. However, to the best of the authors’ knowledge, little work exists in the threedimensional modeling and display of continuum robots. In contrast, a large variety of tools available for traditional rigidlink robots allow engineers to design, simulate, and test their proposed designs in a virtual environment, significantly shortening the design cycle. Teleoperation of rigid-like robots is likewise enhanced by providing operators with a realistic, real-time image of the robot as it performs a task. This paper seeks to bring these essential abilities to the continuum world by presenting a real-time system for the visualization of a wide variety of continuum trunks as shown in Fig. 1 and Fig. 2. Several solutions to this problem immediately present themselves. First, a continuum robot could be modeled as a high-degree-of-freedom (HDOF) robot, relying on traditional rigid-link methodologies for 3-D rendering. A second approach, similar in spirit, would be to approximate the shape of a trunk with a large set of surfaces, a common approach taken
Fig. 1. Comparison of the OctArm [1] continuum trunk with the NURBSbased model presented in this paper.
Fig. 2. Comparison of the Air-Octor [2] continuum trunk with the NURBSbased model presented in this paper.
* This work was supported in part by the Defense Advanced Research Projects Agency (DARPA) Defense Sciences Office through the Space and Naval Warfare Systems Center, San Diego, Contract Number N66001-03-C-8043.
1-4244-0259-X/06/$20.00 ©2006 IEEE
5872
in 3-D rendering and animation software. However, both approaches suffer from two problems. First, they are approximations of the true shape of the trunk, unlike the analytical method presented in this paper which precisely captures the trunk shape. Close examination of one area of the trunk or operation at extreme trunk curvatures or extensions reveals this approximation. Second, these approaches require a large number of points to create an approximate trunk, making realtime updates of the trunk more challenging. The analytical approach captures the trunk shape in a minimal set of coordinates, minimizing this problem. The approach taken in this paper is to analytically define a continuum trunk in terms of non-rational uniform B-spline (NURBS) surfaces, which can then be rendered in 3-D using a wide variety of software platforms as detailed in the following section. This approach reduces the description of the trunk to the minimal set of coordinates necessary to define the surface, while defining the trunk shape exactly rather than approximating it as a HDOF robot or a large set of polygons. This NURBS description can then be passed to a 3-D renderer, where machine-specific, optimized routines can render the shape in real-time. The following section introduces a NURBS-based formulation for a generic continuum trunk. The following section then applies that formulation to two classes representative of most continuum trunk designs. The paper concludes by comparing the 3-D models to photographs taken of continuum trunks and suggests additional avenues of research in this area. II. THREE-DIMENSIONAL MODELING TECHNIQUES A. NURBS Non-uniform rational B-splines (NURBS) provide a standard, well-known computer-aided design and manufacturing tool (CAD/CAM) which can intuitively describe both curved lines and surfaces [9]. These curves and surfaces can reproduce all the conic sections, an attribute which this paper uses in developing a trunk model. This trunk model, as discussed in the following section, analytically describes the trunk, obviating the need to update thousands of points to move a discrete approximation of the trunk and placing the real-time rendering burden on highly-optimized 3-D libraries to render the
Fig. 3. A tube section, modeled as an arc. A series of 6 points in 3-D, whose
[u, v ] coordinates are given in braces, specify the surface. Weights are 1 for each of the four lower points and cos θ for the uppermost two points. The associated knot vector is 1,1,1, 2, 2, 2 for u and 1,1, 2, 2 for v .
Fig. 4. A tube surface. Points composing the top circle are given as a (x, y, z) coordinate, a [u, v] coordinate, and a w = weight value. Coordinates for the bottom circle have z = – 1 and v = 2 but are otherwise identical to the top circle coordinates shown.
NURBS surface on a computer display. Because NURBS have been so extensively studied and applied, they also provide an excellent foundation for both creating continuum robot descriptions and for rendering them with standard 3-D software. Both curves and surfaces defined by NURBS are supported by OpenGL [10], OpenInventor [11], in an optional annex to VRML97 [12], and in the NURBS component of X3D [13]. Therefore, the techniques presented can be easily applied to a wide variety of welldocumented, standard software platforms which render NURBS-based surfaces in real time on a variety of hardware platforms. This paper uses the Coin3D implementation [14] of the OpenInventor platform for NURBS visualization, available under the GNU General Public License on UNIX, Macintosh, and Windows systems, although any OpenInventorcompliant implementation can be used. As required by the license, all code is available under an open-source license. A curve for the purposes of this paper is defined as a onedimensional path residing in three-dimensional space. NURBS curves are therefore constructed from set of n 1-D points u1…n in 3-D space which control the shape of the resulting curve. Knots specify continuity of the curve, while weights determine the closeness of the resulting path to the points. For example, consider the arc composing the top of the tube shown in Fig. 3. An arc of a circle is defined in NURBS by three points, the first and last of which specify the start and end points of the arc and the second of which is defined by the intersection of the tangents to the arc at the start and end points. Start and end points receive a weight of 1, while the remaining point’s weight is the cosine of the angle θ swept by the arc [9], as shown in the figure. A knot vector of 1,1,1, 2, 2, 2 completes the arc. A complete circle can therefore be assembled from three arc sections, each of which subtend 120°, choosing weights for each vertex of the equilateral triangle of cos 120° = 1 2 while weights for on-circle points
5873
Fig. 6. Manipulator variables φ , κ and s. The variable φ gives the rotation in the xy plane.
(a)
(b)
senting the minimum and maximum diameter of the bellows. The OctArm manipulator [1] is constructed from a set of three McKibben actuators, each of which consists of a circular cross-section. Extruding these cross-sections along a given path yields a 3-D representation of the robot as described by the models. NURBS surfaces of extrusion are likewise formed by moving a set of cross-sections along a path. The two necessary knot vectors are simply the knot vector of the cross section and the knot vector of the path. Weights for each point on the surface are the product of the cross-section’s weight with the path’s weight. Control points are computed by scaling, rotating, then translating each cross section point along the path. Fig. 5 illustrates a circular cross section extruded along an arc. The following section details the necessary transformations used to compute the locations of each of the points in the figure.
Fig. 5. A trunk formed by extrusion. Drawing (a) illustrates the cross-section control points, shown at the start point of the trunk spine. Extruding them along the spine results in the control points shown in (b). Start and end points anchor the trunk, while the skewed midpoints shape the trunk into an arc of a circle.
remain at 1. Fig. 4 illustrates a circle formed using this approach. Surfaces are two-dimensional entities residing in threedimensional space. Likewise, NURBS surfaces are created from a 2-D n × m set of points ( u1…n , v1…m ) in 3-D, each of which is assigned a weight. Two knot vectors, one for u and the other for v, complete the definition of a NURBS surface. Referring to Fig. 3, repeating these three arc points and offsetting them along the z axis forms the open cylinder shown in the figure. Weights for the second arc are identical to the first at [1 cos θ 1]. Knots for u likewise remain at 1,1,1, 2, 2, 2 , while knots for v are given as 1,1, 2, 2 to connect the two arcs with a straight line segment. Extruding the circle shown in Fig. 4 in a similar fashion results in the cylinder, again choosing 1,1, 2, 2 as the knots for v. B. Extrusions The structure, or morphology, of many biological systems such as an octopus arm or an elephant trunk can be described by a series of varying cross-sections taken along the length of a trunk [15]. Likewise, continuum robots can be modeled as the extrusion of a varying curve representing the trunk’s crosssection along a path defined by the shape of the trunk, as illustrated in Fig. 5. Likewise, continuum trunks are frequently defined mathematically by a curve which passes through the spine of the trunk. One such formulation derived from an integral formulation of a spatial curve produces trunk kinematics in terms of Bessel functions [4]. A second approach derived both geometrically and from the Frenet-Serret differential curve definition is given by [5]. An updated approach which provides improved orientational terms is given in [6]. The cross-section of a trunk is defined by the nature of the robot. For example, the Air-Octor trunk [2], flexible microactuators [16], and the OC Robotics manipulator [17] all possess circular cross-sections. The KSI trunk [18], due to its accordion-like bellows, can be defined by two circles repre-
III. NURBS-BASED TRUNK MODELING A. Trunk kinematics When the bending forces in a trunk are evenly distributed by pneumatic pressure, spring tension, or other mechanisms, the shape of a continuum trunk can be described by an arc of a circle [7], parameterized by arc length s , curvature κ , and direction of curvature φ as shown in Fig. 6. Noting that the number of degrees θ through which the trunk bends is given by θ = κ s, the trunk’s path can equivalently be described by (φ , κ ,θ ) . The homogenous transformation matrix A which describes this shape modified from [6] so that positive trunk curvature (κ > 0 ) produces bending along the + x axis and parameterized by (φ , κ , θ ) is
5874
⎡ cos 2 φ ( cos θ − 1) + 1 sin φ cos φ ( cos θ − 1) ⎢ sin φ cos φ ( cos θ − 1) cos 2 φ (1 − cos θ ) + cos θ A=⎢ ⎢ cos φ sin θ sin φ sin θ ⎢ 0 0 ⎢⎣ cos φ sin θ sin φ sin θ cos θ 0
κ −1 cos φ (1 − cos θ ) ⎤ ⎥ κ −1 sin φ (1 − cos θ ) ⎥ . ⎥ κ −1 sin θ 1
⎥ ⎥⎦
(1)
Fig. 7. Geometry for determining the radius of a mid control point. Projecting a cross-section control point, such as those shown in Fig. 4 and in Fig. 5b, at distance d from the trunk center onto the plane formed by the line passing through the circle’s center and the mid control point results in a distance of d cos θ ctrl in that plane, giving an overall skew factor of 1 cos θ ctrl .
The translational components given in A1…3,4 can be divided into two components, one which moves the circle’s center so that the arc begins at the origin and a second component which describes an arc of a circle in 3-D centered at the origin. In (1) the two components are A1…3,4 = κ −1 [ cos φ sin φ
κ
−1
[ − cos φ cosθ
0] +
(2),
sin θ ]
T
where the circle’s radius is r = κ −1 and the translation of the circle’s center is by r = κ −1 in the direction φ in the xy plane. Accommodating inclusion of the spine midpoint shown in Fig. 5 necessary to draw an arc using NURBS requires modification of the translational component of (2). As shown in Fig. 7, the necessary control point is located along a larger circle of r cos θ ctrl = 1 (κ cos θ ctrl ) still centered at radius T −1 κ [ cos φ sin φ 0] . Substituting in κ = κ old ⋅ cos θ ctrl in the second component of (2) but retaining the same center gives
(κ cos θctrl ) [ − cos φ cos θ −1
0 ⎡1 ⎢ 0 cos θ ctrl B=⎢ ⎢0 0 ⎢ 0 ⎣0
T
− sin φ cos θ
A1…3,4 = κ −1 [ cos φ sin φ
A second transformation required to compute control points for the NURBS curve is also necessary. First, as discussed earlier, forming an extrusion requires multiplying the weights for each point of the cross-section by the weight of each point along the path forming the trunk, which is cos θ ctrl . This can be accomplished by multiplication by a diagonal homogenous transformation matrix in which element A 4,4 = cos θ ctrl . Recalling that this entry serves as a scale for all other entries by the ratio A i , j A 4,4 , the appropriate matrix therefore contains cos θ ctrl along all its diagonal entries. Again, choosing θ ctrl = 0 gives unmodified cross-section weights for start and end points while choosing θ ctrl ≠ 0 gives modified weights for midpoints. Second, as illustrated by the dotted line in Fig. 7, projecting the cross-section points given in Fig. 4 and in Fig. 5b from a start point to the midpoint skews them along the x axis by a factor of 1 cos θ ctrl . This skewing can be accomplished by multiplication by a homogenous transformation matrix whose entries are (1 cos θ ctrl ,1,1,1) . Both operations can be combined in a single transformation matrix by computing their product, yielding
0] + T
− sin φ cos θ
sin θ ] . T
(3)
Combining, ⎡ cos φ ( cos θ ctrl − cos θ ) ⎤ ⎢ ⎥ ⎢ sin φ ( cos θ ctrl − cos θ ) ⎥ , ⎢⎣ ⎥⎦ sin θ
A1…3,4
0
0
0
cos θ ctrl 0
(5)
This skewing transformation should be applied along the direction of bending φ . This can be simply accomplished by preand post-multiplying by a homogenous transformation matrix R z ,φ which rotates about the z axis by φ as R z ,φ BR z , −φ . Note that R z ,φ can be found in most introductory robotics texts [19]. Sweeping cross-section points along the trunk path can then be performed by computing P1 = AR z ,φ BR z , −φ P0 where P0 gives cross-section points, A is given in (1) updated by (4), B is defined by (5), and P1 gives the transformed points which can be directly input to NURBS routines. Note that OpenInventor defines a 4-vector of points ( wx, wy, wz , w ) representing the x, y, and z coordinates of a point multiplied by the weight w for the point. Multiplying the 7 points which define the circle shown in Fig. 4 by their weight and placing the results into a matrix gives
T
1 = κ cos θ ctrl
⎤ ⎥ ⎥. 0 ⎥ ⎥ cos θ ctrl ⎦
0
(4)
while the other entries of A given in (1) remain unchanged. Note that when θ ctrl = 0, (4) reduces to the A1…3,4 given in (1). Therefore, setting θ ctrl ≠ 0 produces the off-trunk midpoints while choosing θ ctrl = 0 gives points on the trunk placed at the start and end of the trunk, thereby obviating the need for two separate matrices for the two cases of midpoints versus start and end points.
5875
⎡ ⎢0 ⎢ ⎢ P0 = ⎢ − d ⎢ ⎢0 ⎢ ⎢1 ⎣⎢
d 3 2 −d 0 1 2
d 3 2 d 2 0 1
0 d 3 2 0 1 2
−
d 3 2 d 2 0 1
−
d 3 2 d − 2 0 1 2
⎤ 0⎥ ⎥ ⎥ − d ⎥. (6) ⎥ 0⎥ ⎥ 1⎥ ⎦⎥
Therefore, computing P1 = AR z ,φ BR z , −φ P0 yields a set of points and weights which define either a start and end point of an extrusion by choosing θ ctrl = 0 or a midpoint on the extrusion when θ ctrl ≠ 0 .
B. Application to single-chamber continuum robots One section of the Air-Octor continuum robot [2] consists of a central pressurized member surrounded by three cables evenly spaced at 120° intervals about the perimeter of the trunk which define its shape. This design is characterized as a hybrid actuation strategy and is representative of a wide variety of continuum manipulators [3]. Visually, the trunk is similar to the OC Robotics trunk [17] and to flexible microactuators [16], making the algorithm presented applicable to representing these types of continuum trunks in 3-D. The pneumatic pressure in the Air-Octor central member evenly distributes bending, forming an arc of a circle [7]. Therefore, the technique developed thus far can be directly applied to draw the trunk in 3-D. The maximum angle through which a continuum manipulator can bend occurs when it bends into a full circle. As shown in Fig. 4, a circle can be divided into three 120° intervals defined by 7 points. Likewise, the extrusion requires 7 sets of points in order to form a torus resulting when a continuum trunk bends through 360°, resulting in maximum of 49 control points. The following pseudo-code computes the necessary points by stepping through 120° of the trunk at a time until control points for the full trunk have been computed.
θ max ← min (κ s,360° ) defines the angle through which the trunk bends. uknots = 0, 0, 0, 1, 1, 2, 2, 3, 3, 3 defines knots about the circle which will be extruded. vknots = 0, 0, 0 begins defining knots along the extrusion. for θ current = 0 to θ max by θinc θinc = min (θ max − θ current ,120° ) chooses up to 120° of the trunk to draw. Append AR z ,φ BR z , −φ P1 evaluated at θ = θ current , θ ctrl = 0 to the control points to create a start or end point on the extrusion. Append AR z ,φ BR z , −φ P1 evaluated at θ = θ current + θ inc 2 , θ ctrl = θ inc 2 to the control points to create a midpoint on the extrusion. Set i to the last element of vknots then append i + 1, i + 1 to vknots to include knots for the two points just added. end for Append AR z ,φ BR z , −φ P1 evaluated at θ = θ max , θ ctrl = 0 to the control points to create the final end point on the extrusion. Set i to the last element of vknots then append i + 1, i + 1, i + 1 to vknots to complete the v knots vector. After using the algorithm given above to describe a single trunk section, the next trunk section can then be placed at the tip of the previous section. This requires a translation and rotation determined by evaluating the A matrix at the end of the previous section. The translation is given by A 4,1…3 while the axis/angle form of the rotation required by both VRML, OpenInventor and X3D is determined from A1…3,1…3 using
standard methods [19] as a rotation of κ s about the axis T [ − sin φ cos φ 0] . This approach yields the results shown in Fig. 1. A measured trunk radius of d = 4.5 cm was input to the model. Measured values computed from encoder readings taken from the trunk of φ = 179° , κ = 0.0358 cm −1 , and s = 35.9 cm for the top-most trunk section and φ = −122° , κ = 0.0696 cm −1 , and s = 41.9 cm for the bottom section were used to produce the NURBS-based model. Unmodeled trunk sag due to gravity contributes to inaccuracies in the trunk kinematics model [20], which could be remedied if a model which incorporated gravitational effects were incorporated. C. Application to OctArm One section of the OctArm manipulator [1] contains three McKibben actuators connected in parallel between two plates. This intrinsically-actuated continuum trunk, as defined by [3], represents the other common method of continuum trunk design. As shown in [20], this design produces three “sweet spots” of maximal curvature when the trunk bends opposite the location of any of the three actuators. A 3-D representation of the trunk should therefore clearly illustrate the location of each actuator in order to inform the user of these maximal bending points. The algorithm introduced in the previous section can simply be repeated three times for each of the actuators, noting that due to their arrangement, both the curvature and length of each actuator differs slightly from the overall trunk curvature and length. Fig. 8 diagrams the curvature difference. Projecting the center of each actuator down onto the line passing through the trunk center yields a per-actuator curvature is
κ act =
κ
1 − rκ cos ( γ − φ )
(7)
where r gives the distance from the center of the trunk to the center of each actuator, angle γ specifies the location of the
Fig. 8. Geometry for determining per-actuator curvature. A three-actuator continuum trunk bending in the direction φ , viewed from above, is shown. Note that the curvature κ of the overall trunk, defined as the distance κ −1 to the trunk center, differs from the per-actuator distance which does not include the length of the dashed line. Projecting the distance r from the trunk center to an actuator center onto the dashed extension to the line passing through the trunk center reveals the length of this extension to be r cos ( γ − φ ). Therefore, per-actuator distance is κ act −1 = κ −1 − r cos ( γ − φ ) , which gives (7).
5876
actuator in the xy plane, φ determines the direction of trunk curvature, and κ defines the overall trunk curvature. The length difference can be computed using the following equations given in [6], which transform from trunk length s, curvature κ , and direction of curvature φ to length li measured along the center of actuator i as ⎡ ⎤ ⎢ ⎥ s (1 − κ d sin φ ) ⎢ ⎥ ⎡ l1 ⎤ ⎢ ⎥ ⎢l ⎥ = ⎢ s ⎛ 1 + κ d sin ⎛ π + φ ⎞ ⎞ ⎥. 2 ⎜ ⎟ ⎜ ⎟ ⎢ ⎥ ⎢ ⎝3 ⎠⎠⎥ ⎢⎣ l3 ⎥⎦ ⎢ ⎝ ⎥ ⎢ s ⎛ 1 − κ d cos ⎛ π + φ ⎞ ⎞ ⎥ ⎜ ⎟ ⎟⎥ ⎢⎣ ⎜⎝ ⎝6 ⎠ ⎠⎦
such as [7, 8] using these techniques. Finally, the extension of this model to several other manipulators such as the KSI trunk [18] would broaden its applicability. REFERENCES [1]
[2]
(8) [3] [4]
Elementary trigonometry reveals that the actuator arrangement in Fig. 8 produces a per-actuator radius that is 3 3+2
( times the overall trunk radius, whose centers lie 2 (
) 3 + 2)
times the trunk radius from the trunk center. Applying these results, (7), and (8) to the previous algorithm in order to create the necessary three actuators produces the results shown in Fig. 1. Measured trunk radii of the thee-actuator bundle are (4.77 cm, 3.82 cm, 3.02 cm) moving from the trunk base to its tip. Non-bending portions of the trunk which consist of mounting hardware for the actuators sections was measured to be (6.28 cm, 6.28 cm, 3.04 cm) in thickness at the end of each trunk section. The 3-D model shows good correlation with the physical continuum robot.
[5] [6] [7] [8] [9] [10] [11]
IV. RESULTS AND CONCLUSIONS As developed in this paper, a relatively simple NURBSbased formulation allows the creation of three-dimensional models for a wide variety of continuum manipulators. This model accurately and analytically reflects the actual shape of the manipulator, leaving the burden of real-time drawing and display to the wide variety of 3-D graphics libraries which provide NURBS support. The continuum nature of NURBS surfaces and their well-known properties provide many opportunities for the adaptation of this model to new continuum trunks. The technique presented is, to the best of the author’s knowledge, new and unique, providing real-time display of continuum trunk shape which is essential both for simulation and modeling of a trunk in the design phase and as a real-time display of trunk behavior when operating the trunk. As shown in Fig. 1 and in Fig. 2, the model provides a realistic representation of the trunk. As required by the license, all source code is freely available at www.ece.msstate.edu/~bjones for download, providing a starting point for the extension and application of this technique on new continuum trunks. One avenue of development includes the development of models which reflect different kinematic formulations, such as the Bessel functions used in [4]. A second extension would be the ability to capture the motion of various dynamic models
[12] [13] [14] [15] [16]
[17] [18] [19] [20]
5877
W. McMahan, B. A. Jones, V. Chitrakaran, M. Csencsits, M. Grissom, M. Pritts, C. D. Rahn, and I. D. Walker, “Field trials and testing of the OctArm continuum manipulator,” Proceedings of the International Conference on Robotics and Automation, Orlando, FL, USA 2006, pp. 23362341. W. McMahan, B. A. Jones, and I. D. Walker, “Design and implementation of a multi-section continuum robot: Air-Octor,” Proc. IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems, Edmonton, Canada, Aug. 2005, pp. 3345-3352. G. Robinson and J. B. C. Davies, “Continuum robots - a state of the art,” Proc. IEEE Intl. Conf. Robotics and Automation, Detroit, Michigan, May 1999, pp. 2849-2854. G. S. Chirikjian and J. W. Burdick, “A modal approach to hyperredundant manipulator kinematics,” IEEE Trans. on Robotics and Automation, vol. 10, no. 3, June 1994, pp. 343-354. M. W. Hannan and I. D. Walker, “Kinematics and the Implementation of an elephant's trunk manipulator and other continuum style robots,” Journal of Robotic Systems, vol. 20, no. 2, Feb. 2003, pp. 45-63. B. A. Jones and I. D. Walker, “Kinematics for Multisection Continuum Robots,” IEEE Trans. on Robotics, vol. 22, no. 1, 2006, pp. 43-55. I. A. Gravagne, C. D. Rahn, and I. D. Walker, “Large deflection dynamics and control for planar continuum robots,” IEEE/ASME Trans. on Mechatronics, vol. 8, no. 2, June 2003, pp. 299-307. M. Ivanescu, N. Bizdoaca, and D. Pana, “Dynamic control for a tentacle manipulator with SMA actuators,” Proc. IEEE Intl. Conf. Robotics and Automation, Taipei, Taiwan, May 2003, pp. 2079-2084. L. A. Piegl and W. Tiller, The NURBS book, 2nd ed. New York: Springer-Verlag, 1997, 646 p. D. Shreiner and OpenGL Architecture Review Board., OpenGL reference manual: the official reference document to OpenGL, version 1.4, 4th ed. Boston: Addison-Wesley, 2004, 761 p. J. Wernecke, The Inventor mentor: programming object-oriented 3D graphics with Open Inventor, release 2. Reading, Mass.: AddisonWesley, 1994, 514 p. VRML97 Amendment 1: ISO/IEC14772-1:1997/Amd. 1, 2002. Information technology — Computer graphics and image processing — Extensible 3D (X3D): ISO/IEC 19775, 2004. Systems in Motion AS: Coin3D, www.coin3D.org. W. M. Kier and K. K. Smith, “Tongues, tentacles and trunks: the biomechanics of movement in muscular-hydrostats,” Zoological Journal of the Linnean Society, vol. 83, 1985, pp. 307-324. K. Suzumori, S. Iikura, and H. Tanaka, “Development of flexible microactuator and its applications to robotic mechanisms,” Proc. IEEE Intl. Conf. Robotics and Automation, Sacramento, California, April 1991, pp. 1622-1627. O. C. Robotics, http://www.ocrobotics.com/mediagallery/images.htm. G. Immega and K. Antonelli, “The KSI tentacle manipulator,” Proc. IEEE Intl. Conf. Robotics and Automation, Nagoya, Japan, May 1995, pp. 3149-3154. M. W. Spong, S. Hutchinson, and M. Vidyasagar, Robot modeling and control. New York: John Wiley & Sons, Inc., 2006, 478 p. B. A. Jones, W. McMahan, and I. D. Walker, “Practical kinematics for real-time implementation of continuum robots,” Proceedings of the International Conference on Robotics and Automation, Orlando, Florida, USA 2006, pp. 1840-1847.