Go to the documentation of this file.00001 #include "robodyn_utilities/BaseGripperConverter.h"
00002
00003 BaseGripperConverter::BaseGripperConverter()
00004 {
00005 }
00006
00007 BaseGripperConverter::~BaseGripperConverter()
00008 {
00009 }
00010
00011 std::string BaseGripperConverter::BaseFrameToGripper(const std::string& bfName)
00012 {
00013 std::string name = bfName;
00014 std::size_t pos = name.find("tip", name.size() - 3);
00015
00016 if (pos != std::string::npos)
00017 {
00018 name.erase(pos, std::string::npos);
00019 name.append("joint0");
00020 }
00021
00022 return name;
00023 }
00024
00025 std::string BaseGripperConverter::GripperToBaseFrame(const std::string& gripper)
00026 {
00027 std::string name = gripper;
00028 std::size_t pos = name.find("joint0", name.size() - 6);
00029
00030 if (pos != std::string::npos)
00031 {
00032 name.erase(pos, std::string::npos);
00033 name.append("tip");
00034 }
00035
00036 return name;
00037 }
00038
00039 std::string BaseGripperConverter::FindOpposite(const std::string& name)
00040 {
00041 std::string opposite = name;
00042 std::string side = "left";
00043 std::size_t pos = opposite.find(side);
00044
00045 if (pos != std::string::npos)
00046 {
00047 opposite.replace(pos, side.size(), "right");
00048 }
00049 else
00050 {
00051 side = "right";
00052 pos = opposite.find(side);
00053
00054 if (pos != std::string::npos)
00055 {
00056 opposite.replace(pos, side.size(), "left");
00057 }
00058 else
00059 {
00060
00061 opposite.clear();
00062 }
00063 }
00064
00065 return opposite;
00066 }
00067
00068 std::string BaseGripperConverter::FindSide(const std::string& input)
00069 {
00070 std::size_t posLower, posUpper;
00071 posLower = input.find("left");
00072 posUpper = input.find("Left");
00073
00074 if (posLower != std::string::npos || posUpper != std::string::npos)
00075 {
00076 return "left";
00077 }
00078 else
00079 {
00080 posLower = input.find("right");
00081 posUpper = input.find("Right");
00082
00083 if (posLower != std::string::npos || posUpper != std::string::npos)
00084 {
00085 return "right";
00086 }
00087 else
00088 {
00089 return input;
00090 }
00091 }
00092 }