9#include <gtest/gtest.h>
16namespace fs = std::filesystem;
27 const std::string gripper =
ex::find_asset(
"robotiq_2f85/2f85.xml");
28 if (!fs::exists(arm)) GTEST_SKIP() << arm <<
" not found";
29 if (!fs::exists(ft)) GTEST_SKIP() << ft <<
" not found";
30 if (!fs::exists(gripper)) GTEST_SKIP() << gripper <<
" not found";
72 EXPECT_EQ(sensor.
name,
"wrist_ft");
75 EXPECT_EQ(sensor.
frame_site_id, mj_name2id(env_.model, mjOBJ_SITE,
"wrist_ft_site"));
78 for (
int i = 0; i < 500; ++i) {
83 const double *f = env_.data->sensordata + sensor.
force_adr;
84 const double *t = env_.data->sensordata + sensor.
torque_adr;
92 const int body = env_.model->site_bodyid[sensor.
frame_site_id];
93 const double weight = env_.model->body_subtreemass[body] * 9.81;
94 EXPECT_NEAR(world_f.
x(), 0.0, 1e-5);
95 EXPECT_NEAR(world_f.
y(), 0.0, 1e-5);
96 EXPECT_NEAR(world_f.
z(), -weight, 1e-5);
111 const double *f = env_.data->sensordata + sensor.
force_adr;
112 const double *t = env_.data->sensordata + sensor.
torque_adr;
129 EXPECT_TRUE(env_.robots.empty()) <<
"a robot that failed to init is not registered";
132int main(
int argc,
char *argv[])
134 testing::InitGoogleTest(&argc, argv);
135 return RUN_ALL_TESTS();
static mj_kdl::ToolFrameSpec tool_with(const mj_kdl::ForceTorqueSensorSpec &ft)
static mj_kdl::ForceTorqueSensorSpec wrist_ft()
ResetInfo reset(Env *env, const ResetOptions *options=nullptr)
Status init_env(Env *env, const SceneSpec *spec)
Status init_robot_from_mjcf(Robot *r, Env *env, const char *base_body, const char *tip_body, const char *prefix="", const ToolFrameSpec *tool=nullptr)
bool get_site_frame(Env *env, const char *site_name, KDL::Frame *out)
mj_kdl::ToolFrameSpec gripper_tool(const std::string &prefix="")
std::string find_asset(const fs::path &relative)
mj_kdl::AttachmentSpec gripper_attachment(const std::string &path, const std::string &site="pinch_site")
std::string torque_sensor
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)