feat(imu intri/extri): add service data
This commit is contained in:
parent
4b161693b1
commit
f9d14478cc
|
@ -490,10 +490,8 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
std::string json = dump_string(intrinsics, configuru::JSON);
|
std::string json = dump_string(intrinsics, configuru::JSON);
|
||||||
res.value = json;
|
res.value = json;
|
||||||
} else {
|
} else {
|
||||||
NODELET_INFO_STREAM("INVALID CALIB MODEL:" << calib_model);
|
NODELET_INFO_STREAM("INVALID CALIB INTRINSICS" << calib_model);
|
||||||
Config intrinsics{};
|
res.value = "null";
|
||||||
std::string json = dump_string(intrinsics, configuru::JSON);
|
|
||||||
res.value = json;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -511,10 +509,43 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Request::IMU_INTRINSICS:
|
case Request::IMU_INTRINSICS:
|
||||||
res.value = "TODO";
|
{
|
||||||
|
bool is_ok;
|
||||||
|
auto intri = api_->GetMotionIntrinsics();
|
||||||
|
Config intrinsics {
|
||||||
|
{"accel", {
|
||||||
|
{"scale", Config::array({ intri.accel.scale[0][0], intri.accel.scale[0][1], intri.accel.scale[0][2], // NOLINT
|
||||||
|
intri.accel.scale[1][0], intri.accel.scale[1][1], intri.accel.scale[1][2], // NOLINT
|
||||||
|
intri.accel.scale[2][0], intri.accel.scale[2][1], intri.accel.scale[2][2]})},// NOLINT
|
||||||
|
{"drift", Config::array({ intri.accel.drift[0], intri.accel.drift[1], intri.accel.drift[2]})}, // NOLINT
|
||||||
|
{"noise", Config::array({ intri.accel.noise[0], intri.accel.noise[1], intri.accel.noise[2]})}, // NOLINT
|
||||||
|
{"bias", Config::array({ intri.accel.bias[0], intri.accel.bias[1], intri.accel.bias[2]})} // NOLINT
|
||||||
|
}},
|
||||||
|
{"gyro", {
|
||||||
|
{"scale", Config::array({ intri.gyro.scale[0][0], intri.gyro.scale[0][1], intri.gyro.scale[0][2], // NOLINT
|
||||||
|
intri.gyro.scale[1][0], intri.gyro.scale[1][1], intri.gyro.scale[1][2], // NOLINT
|
||||||
|
intri.gyro.scale[2][0], intri.gyro.scale[2][1], intri.gyro.scale[2][2]})},// NOLINT
|
||||||
|
{"drift", Config::array({ intri.gyro.drift[0], intri.gyro.drift[1], intri.gyro.drift[2]})}, // NOLINT
|
||||||
|
{"noise", Config::array({ intri.gyro.noise[0], intri.gyro.noise[1], intri.gyro.noise[2]})}, // NOLINT
|
||||||
|
{"bias", Config::array({ intri.gyro.bias[0], intri.gyro.bias[1], intri.gyro.bias[2]})} // NOLINT
|
||||||
|
}}
|
||||||
|
};
|
||||||
|
std::string json = dump_string(intrinsics, JSON);
|
||||||
|
res.value = json;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case Request::IMU_EXTRINSICS:
|
case Request::IMU_EXTRINSICS:
|
||||||
res.value = "TODO";
|
{
|
||||||
|
auto extri = api_->GetMotionExtrinsics(Stream::LEFT);
|
||||||
|
Config extrinsics{
|
||||||
|
{"rotation", Config::array({extri.rotation[0][0], extri.rotation[0][1], extri.rotation[0][2], // NOLINT
|
||||||
|
extri.rotation[1][0], extri.rotation[1][1], extri.rotation[1][2], // NOLINT
|
||||||
|
extri.rotation[2][0], extri.rotation[2][1], extri.rotation[2][2]})},// NOLINT
|
||||||
|
{"translation", Config::array({extri.translation[0], extri.translation[1], extri.translation[2]})} // NOLINT
|
||||||
|
};
|
||||||
|
std::string json = dump_string(extrinsics, configuru::JSON);
|
||||||
|
res.value = json;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
NODELET_WARN_STREAM("Info of key " << req.key << " not exist");
|
NODELET_WARN_STREAM("Info of key " << req.key << " not exist");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user