RosMsgVelocityMonitorTest.cpp
Go to the documentation of this file.
00001 #include <gtest/gtest.h>
00002 #include "robodyn_controllers/KdlTreeFk.h"
00003 #include "robodyn_controllers/RosMsgSafetyVelocityMonitor.h"
00004 #include <ros/package.h>
00005 #include "robodyn_utilities/RosMsgConverter.h"
00006 
00007 class RosMsgSafetyVelocityMonitorTest : public ::testing::Test
00008 {
00009 protected:
00010     virtual void SetUp()
00011     {
00012         std::string packagePath = ros::package::getPath("robodyn_controllers");
00013         std::stringstream ss;
00014         ss << packagePath << "/test/urdf/BranchingTestRobot.xml";
00015         urdfFile = ss.str();
00016         //rmt = new RosMsgSafetyVelocityMonitorTest(ss.str());//.loadFromFile(ss.str());
00017         ros::Time::init();
00018     }
00019 
00020     virtual void TearDown()
00021     {
00022     }
00023 
00024     std::string urdfFile;
00025 
00026 
00027 };
00028 
00029 TEST_F(RosMsgSafetyVelocityMonitorTest, isVelocityBelowLimsTest)
00030 {
00031     RosMsgSafetyVelocityMonitor*      rmt = new RosMsgSafetyVelocityMonitor(urdfFile);
00032     diagnostic_msgs::DiagnosticStatus errorMsg;
00033     r2_msgs::PoseState    poseState;
00034 
00035     rmt->getTree().getSegments().begin();
00036 
00037     poseState.name.push_back("joint1");
00038     poseState.name.push_back("joint2");
00039     poseState.name.push_back("joint3");
00040 
00041     for (int i = 0; i < poseState.name.size(); i++)
00042     {
00043         geometry_msgs::Pose p;
00044         p.position.x = 1.0;
00045         p.position.y = 1.0;
00046         p.position.z = 1.0;
00047         poseState.positions.push_back(p);
00048 
00049         geometry_msgs::Twist lv;
00050         lv.linear.x = 5.0;
00051         lv.linear.y = 5.0;
00052         lv.linear.z = 5.0;
00053         lv.angular.x = 5.0;
00054         lv.angular.y = 5.0;
00055         lv.angular.z = 5.0;
00056         poseState.velocities.push_back(lv);
00057     }
00058 
00059     rmt->setAngularVelocityLimit(2.0);
00060     rmt->setLiniearVelocityLimit(2.0);
00061 
00062     EXPECT_FALSE(rmt->isVelocityBelowLims(poseState, errorMsg));
00063 
00064     rmt->setAngularVelocityLimit(9.0);
00065     EXPECT_FALSE(rmt->isVelocityBelowLims(poseState, errorMsg));
00066 
00067     rmt->setLiniearVelocityLimit(9.0);
00068     EXPECT_TRUE(rmt->isVelocityBelowLims(poseState, errorMsg));
00069 
00070 }
00071 
00072 
00073 
00074 int main(int argc, char** argv)
00075 {
00076     ::testing::InitGoogleTest(&argc, argv);
00077     return RUN_ALL_TESTS();
00078 }
00079 
00080 
00081 


robodyn_controllers
Author(s):
autogenerated on Sat Jun 8 2019 20:20:53