41 geometry_msgs::Twist cmd_vel;
42 cmd_vel.linear.x = 0.0;
43 cmd_vel.angular.z = 0.0;
48 cmd_vel.linear.x = 0.1;
55 nav_msgs::Odometry odom = getLastOdom();
57 EXPECT_FALSE(std::isnan(odom.twist.twist.linear.x));
58 EXPECT_FALSE(std::isnan(odom.twist.twist.angular.z));
59 EXPECT_FALSE(std::isnan(odom.pose.pose.position.x));
60 EXPECT_FALSE(std::isnan(odom.pose.pose.position.y));
61 EXPECT_FALSE(std::isnan(odom.pose.pose.orientation.z));
62 EXPECT_FALSE(std::isnan(odom.pose.pose.orientation.w));
70 EXPECT_FALSE(std::isnan(odom.twist.twist.linear.x));
71 EXPECT_FALSE(std::isnan(odom.twist.twist.angular.z));
72 EXPECT_FALSE(std::isnan(odom.pose.pose.position.x));
73 EXPECT_FALSE(std::isnan(odom.pose.pose.position.y));
74 EXPECT_FALSE(std::isnan(odom.pose.pose.orientation.z));
75 EXPECT_FALSE(std::isnan(odom.pose.pose.orientation.w));
80 while (!isControllerAlive()) {
84 geometry_msgs::Twist cmd_vel;
85 cmd_vel.linear.x = 0.0;
86 cmd_vel.angular.z = 0.0;
91 for (
int i = 0; i < 10; ++i) {
92 geometry_msgs::Twist cmd_vel;
93 cmd_vel.linear.x = NAN;
94 cmd_vel.angular.z = 0.0;
96 geometry_msgs::TwistStamped odom_msg = getLastCmdVelOut();
97 EXPECT_FALSE(std::isnan(odom_msg.twist.linear.x));
98 EXPECT_FALSE(std::isnan(odom_msg.twist.angular.z));
101 for (
int i = 0; i < 10; ++i) {
102 geometry_msgs::Twist cmd_vel;
103 cmd_vel.linear.x = 0.0;
104 cmd_vel.angular.z = NAN;
106 geometry_msgs::TwistStamped odom_msg = getLastCmdVelOut();
107 EXPECT_FALSE(std::isnan(odom_msg.twist.linear.x));
108 EXPECT_FALSE(std::isnan(odom_msg.twist.angular.z));
112 nav_msgs::Odometry odom = getLastOdom();
113 EXPECT_DOUBLE_EQ(odom.twist.twist.linear.x, 0.0);
114 EXPECT_DOUBLE_EQ(odom.pose.pose.position.x, 0.0);
115 EXPECT_DOUBLE_EQ(odom.pose.pose.position.y, 0.0);
117 geometry_msgs::TwistStamped odom_msg = getLastCmdVelOut();
118 EXPECT_DOUBLE_EQ(odom_msg.twist.linear.x, 0.0);
121 int main(
int argc,
char **argv) {
122 testing::InitGoogleTest(&argc, argv);
123 ros::init(argc, argv,
"diff_drive_nan_test");
127 int ret = RUN_ALL_TESTS();