rm_vision/tests/cboard_test.cpp
2025-12-15 02:33:20 +08:00

43 lines
1.1 KiB
C++

#include "io/cboard.hpp"
#include <chrono>
#include <opencv2/opencv.hpp>
#include <thread>
#include "tools/exiter.hpp"
#include "tools/logger.hpp"
#include "tools/math_tools.hpp"
using namespace std::chrono_literals;
const std::string keys =
"{help h usage ? | | 输出命令行参数说明}"
"{@config-path | configs/standard.yaml | yaml配置文件路径 }";
int main(int argc, char * argv[])
{
cv::CommandLineParser cli(argc, argv, keys);
if (cli.has("help")) {
cli.printMessage();
return 0;
}
auto config_path = cli.get<std::string>(0);
tools::Exiter exiter;
io::CBoard cboard(config_path);
while (!exiter.exit()) {
auto timestamp = std::chrono::steady_clock::now();
std::this_thread::sleep_for(1ms);
Eigen::Quaterniond q = cboard.imu_at(timestamp);
Eigen::Vector3d eulers = tools::eulers(q, 2, 1, 0) * 57.3;
tools::logger()->info("z{:.2f} y{:.2f} x{:.2f} degree", eulers[0], eulers[1], eulers[2]);
tools::logger()->info("bullet speed {:.2f} m/s", cboard.bullet_speed);
}
return 0;
}