BaseGripperConverter.cpp
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             // if bad input, send back an empty string
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 }


robodyn_utilities
Author(s):
autogenerated on Thu Jun 6 2019 18:56:07