fanuc_utils.cpp
Go to the documentation of this file.
1 /*
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2012, Southwest Research Institute
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * * Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  * * Neither the name of the Southwest Research Institute, nor the names
16  * of its contributors may be used to endorse or promote products derived
17  * from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
33 #include <ros/ros.h>
34 
35 
36 /*
37  * Basically a copy of the 'abb_utils.cpp' file by J. Zoss in the 'abb_common'
38  * package, but with changed namespace declarations.
39  *
40  * G.A. vd. Hoorn - TU Delft Robotics Institute
41  */
42 
43 
44 namespace fanuc
45 {
46 namespace utils
47 {
48 
49 
50 // TBD: This transform should also account for velocity/acceleration affects
51 // due to linkage, so that velocity calculation is accurate
52 void linkage_transform(const trajectory_msgs::JointTrajectoryPoint& pt_in,
53  trajectory_msgs::JointTrajectoryPoint* pt_out, double J23_factor)
54 {
55  *pt_out = pt_in;
56  linkage_transform(pt_in.positions, &(pt_out->positions), J23_factor);
57 }
58 
59 
60 void linkage_transform(const std::vector<double>& points_in,
61  std::vector<double>* points_out, double J23_factor)
62 {
63  ROS_ASSERT(points_in.size() > 3);
64 
65  *points_out = points_in;
66  points_out->at(2) += J23_factor * points_out->at(1);
67 }
68 
69 
70 } //fanuc
71 
72 } //utils
void linkage_transform(const std::vector< double > &joints_in, std::vector< double > *joints_out, double J23_factor=0)
Corrects for parallel linkage coupling between joints.
Definition: fanuc_utils.cpp:60
#define ROS_ASSERT(cond)


fanuc_driver
Author(s): G.A. vd. Hoorn (TU Delft Robotics Institute)
autogenerated on Sun Apr 4 2021 02:20:24