GripperEnvironmentTest.cpp
Go to the documentation of this file.
00001 #include <gtest/gtest.h>
00002 #include "robodyn_mechanisms/GripperEnvironment.h"
00003 #include <ros/package.h>
00004 
00005 class GripperEnvironmentTest : public ::testing::Test
00006 {
00007 protected:
00008     virtual void SetUp()
00009     {
00010         ros::Time::init();
00011 
00012         grippers.push_back("r2/left_leg/gripper/joint0");
00013         grippers.push_back("r2/right_leg/gripper/joint0");
00014 
00015         ge.initializeMap(grippers);
00016         handrailComp  = "HandrailRendezvous";
00017         seattrackComp = "SeattrackRendezvous";
00018         ge.setComponentNames(handrailComp, seattrackComp);
00019 
00020         gripperState.name.push_back("r2/left_leg/gripper/joint0");
00021         gripperState.name.push_back("r2/right_leg/gripper/joint0");
00022         gripperState.locked.push_back(1);
00023         gripperState.locked.push_back(0);
00024         gripperState.loaded.push_back(1);
00025         gripperState.loaded.push_back(1);
00026 
00027         baseFrames.data.push_back("r2/left_leg/gripper/tip");
00028 
00029         goalStati.header.frame_id = "GripperPositionManager";
00030         goalStati.status_list.push_back(goalStat);
00031         goalStat.goal_id.id = "r2/right_leg/gripper/joint0";
00032         goalStat.status     = actionlib_msgs::GoalStatus::PENDING;
00033         goalStati.status_list.push_back(goalStat);
00034         goalStat.goal_id.id = "LeftHandrailRendezvous";
00035         goalStat.status     = actionlib_msgs::GoalStatus::ABORTED;
00036         goalStati.status_list.push_back(goalStat);
00037         goalStat.goal_id.id = "RightSeattrackRendezvous";
00038         goalStat.status     = actionlib_msgs::GoalStatus::SUCCEEDED;
00039         goalStati.status_list.push_back(goalStat);
00040 
00041         tempPose.position.x    = tempPose.position.y = tempPose.position.z = 0.;
00042         tempPose.orientation.x = tempPose.orientation.y = tempPose.orientation.z = 0.0;
00043         tempPose.orientation.w = 1.;
00044         poseMsg.name.push_back("r2/left_leg/gripper/tip");
00045         poseMsg.positions.push_back(tempPose);
00046         tempPose.position.x = 1.;
00047         poseMsg.name.push_back("r2/right_leg/gripper/tip");
00048         poseMsg.positions.push_back(tempPose);
00049 
00050     }
00051 
00052     virtual void TearDown()
00053     {
00054     }
00055 
00056     GripperEnvironment                        ge;
00057     std::vector<std::string>                  grippers;
00058     std::string                               handrailComp, seattrackComp;
00059     r2_msgs::GripperPositionState gripperState;
00060     r2_msgs::StringArray          baseFrames;
00061     r2_msgs::GripperEnvironment   gripperEnv;
00062     actionlib_msgs::GoalStatusArray           goalStati;
00063     actionlib_msgs::GoalStatus                goalStat;
00064     GripperEnvironment::GripperEnvInfo        info;
00065     r2_msgs::PoseState            poseMsg;
00066     geometry_msgs::Pose                       tempPose;
00067 };
00068 
00069 TEST_F(GripperEnvironmentTest, setUserCommandTest)
00070 {
00071     ge.setUserCommand(grippers[0], r2_msgs::GripperEnvironment::HANDRAIL);
00072     EXPECT_TRUE(ge.getMapEntry(grippers[0], info));
00073     EXPECT_EQ(r2_msgs::GripperEnvironment::HANDRAIL, info.userCommand);
00074 
00075     ge.setUserCommand("blah", 1);
00076     EXPECT_FALSE(ge.getMapEntry("blah", info));
00077     EXPECT_EQ(r2_msgs::GripperEnvironment::HANDRAIL, info.userCommand);
00078 
00079 }
00080 
00081 TEST_F(GripperEnvironmentTest, populateBaseFrameInfoTest)
00082 {
00083 
00084     ge.populateBaseFrameInfo(baseFrames);
00085 
00086     EXPECT_EQ("r2/left_leg/gripper/tip", ge.getBaseFrame());
00087 
00088 }
00089 
00090 TEST_F(GripperEnvironmentTest, populateGripperStateInfoTest)
00091 {
00092     ge.populateGripperStateInfo(gripperState);
00093 
00094     EXPECT_TRUE(ge.getMapEntry(gripperState.name[0], info));
00095     EXPECT_EQ(1, info.gripperLocked);
00096     EXPECT_TRUE(ge.getMapEntry(gripperState.name[1], info));
00097     EXPECT_EQ(0, info.gripperLocked);
00098 }
00099 
00100 TEST_F(GripperEnvironmentTest, populateGoalStatusTest)
00101 {
00102     ge.populateGoalStatus(goalStati);
00103     EXPECT_EQ(0, ge.getGoalStatusArraySize());
00104 
00105     goalStati.header.frame_id = handrailComp;
00106     ge.populateGoalStatus(goalStati);
00107     EXPECT_EQ(1, ge.getGoalStatusArraySize());
00108 
00109     goalStati.header.frame_id = "DustinSmellsFunny";
00110     ge.populateGoalStatus(goalStati);
00111     EXPECT_EQ(0, ge.getGoalStatusArraySize());
00112 
00113     goalStati.header.frame_id = seattrackComp;
00114     ge.populateGoalStatus(goalStati);
00115     EXPECT_EQ(1, ge.getGoalStatusArraySize());
00116 }
00117 
00118 TEST_F(GripperEnvironmentTest, populatePoseStateInfoTest)
00119 {
00120     ge.populatePoseStateInfo(poseMsg);
00121 
00122     EXPECT_TRUE(ge.getMapEntry(ge.BaseFrameToGripper(poseMsg.name[1]), info));
00123     EXPECT_EQ(KDL::Frame(), info.frame);
00124 
00125     ge.populateBaseFrameInfo(baseFrames);
00126     ge.populatePoseStateInfo(poseMsg);
00127 
00128     EXPECT_TRUE(ge.getMapEntry(ge.BaseFrameToGripper(poseMsg.name[1]), info));
00129     EXPECT_NE(KDL::Frame(), info.frame);
00130 
00131 }
00132 
00133 TEST_F(GripperEnvironmentTest, createGripperEnvironmentMsgTest)
00134 {
00135     ge.createGripperEnvironmentMsg(gripperEnv);
00136 
00137     EXPECT_EQ(2, gripperEnv.name.size());
00138     ASSERT_EQ(2, gripperEnv.environment.size());
00139     EXPECT_EQ(r2_msgs::GripperEnvironment::NONE, gripperEnv.environment[0]);
00140     EXPECT_EQ(r2_msgs::GripperEnvironment::NONE, gripperEnv.environment[1]);
00141 }
00142 
00143 TEST_F(GripperEnvironmentTest, updateTest)
00144 {
00145     ge.populateBaseFrameInfo(baseFrames);
00146     ge.populateGripperStateInfo(gripperState);
00147     ge.update();
00148     ASSERT_TRUE(ge.getMapEntry("r2/left_leg/gripper/joint0", info));
00149     EXPECT_EQ(r2_msgs::GripperEnvironment::HANDRAIL, info.environment);
00150     EXPECT_EQ(1, info.highForceSubState);
00151     ASSERT_TRUE(ge.getMapEntry("r2/right_leg/gripper/joint0", info));
00152     EXPECT_EQ(r2_msgs::GripperEnvironment::FREESPACE, info.environment);
00153 
00154     gripperState.locked[0] = 0;
00155     baseFrames.data.clear();
00156     ge.populateBaseFrameInfo(baseFrames);
00157     ge.populateGripperStateInfo(gripperState);
00158     goalStati.header.frame_id = seattrackComp;
00159     ge.populateGoalStatus(goalStati);
00160     ge.populatePoseStateInfo(poseMsg);
00161     ge.update();
00162     ASSERT_TRUE(ge.getMapEntry("r2/left_leg/gripper/joint0", info));
00163     EXPECT_EQ(r2_msgs::GripperEnvironment::FREESPACE, info.environment);
00164     EXPECT_EQ(0, info.highForceSubState);
00165     ASSERT_TRUE(ge.getMapEntry("r2/right_leg/gripper/joint0", info));
00166     EXPECT_EQ(r2_msgs::GripperEnvironment::SEATTRACK, info.environment);
00167     EXPECT_EQ(0, info.highForceSubState);
00168 
00169     baseFrames.data.push_back("r2/left_leg/gripper/tip");
00170     poseMsg.positions[1].position.y = 2.0;
00171     ge.populateBaseFrameInfo(baseFrames);
00172     ge.populatePoseStateInfo(poseMsg);
00173     ge.update();
00174     ASSERT_TRUE(ge.getMapEntry("r2/right_leg/gripper/joint0", info));
00175     EXPECT_EQ(r2_msgs::GripperEnvironment::FREESPACE, info.environment);
00176 
00177     ge.setUserCommand("r2/left_leg/gripper/joint0", r2_msgs::GripperEnvironment::HANDRAIL);
00178     ge.update();
00179     ASSERT_TRUE(ge.getMapEntry("r2/left_leg/gripper/joint0", info));
00180     EXPECT_EQ(r2_msgs::GripperEnvironment::HANDRAIL, info.environment);
00181     EXPECT_EQ(0, info.highForceSubState);
00182 
00183     gripperState.locked[0] = 1;
00184     ge.populateGripperStateInfo(gripperState);
00185     ge.populatePoseStateInfo(poseMsg);
00186     ge.update();
00187     ASSERT_TRUE(ge.getMapEntry("r2/left_leg/gripper/joint0", info));
00188     EXPECT_EQ(r2_msgs::GripperEnvironment::HANDRAIL, info.environment);
00189     EXPECT_EQ(1, info.highForceSubState);
00190 }
00191 
00192 int main(int argc, char** argv)
00193 {
00194     ::testing::InitGoogleTest(&argc, argv);
00195     return RUN_ALL_TESTS();
00196 }


robodyn_mechanisms
Author(s):
autogenerated on Thu Jun 6 2019 21:22:48