7#include <gtest/gtest.h>
13namespace fs = std::filesystem;
38 .contact_exclusions = {},
44 .contact_exclusions = {},
68 .tool_body =
"g_base",
69 .tcp_site =
"g_pinch",
79 ASSERT_NE(sensor,
nullptr);
84 mj_forward(model_, data_);
87 ASSERT_NE(sensor,
nullptr);
88 EXPECT_TRUE(std::isfinite(sensor->
wrench.force.x()));
89 EXPECT_TRUE(std::isfinite(sensor->
wrench.force.y()));
90 EXPECT_TRUE(std::isfinite(sensor->
wrench.force.z()));
91 EXPECT_TRUE(std::isfinite(sensor->
wrench.torque.x()));
92 EXPECT_TRUE(std::isfinite(sensor->
wrench.torque.y()));
93 EXPECT_TRUE(std::isfinite(sensor->
wrench.torque.z()));
102 .force_sensor =
"wrist_ft_force",
103 .torque_sensor =
"missing_torque",
106 .tool_body =
"g_base",
107 .tcp_site =
"g_pinch",
108 .ft_sensors = { ft },
118int main(
int argc,
char *argv[])
120 testing::InitGoogleTest(&argc, argv);
121 return RUN_ALL_TESTS();
bool init_robot_from_mjcf(Robot *r, mjModel *model, mjData *data, const char *base_body, const char *tip_body, const char *prefix="", const ToolFrameSpec *tool=nullptr)
const ForceTorqueSensor * find_ft_sensor(const Robot *r, const char *name)
bool build_scene(mjModel **out_model, mjData **out_data, const SceneSpec *spec)
void destroy_scene(mjModel *model, mjData *data)
std::string find_asset(const fs::path &relative)
std::string find_menagerie_model(const fs::path &relative)
std::string torque_sensor
std::vector< AttachmentSpec > attachments
std::vector< ForceTorqueSensor > ft_sensors
std::vector< RobotSpec > robots
int main(int argc, char *argv[])
TEST_F(MjcfFtSensorTest, ReadsNamedWrench)