FrogPilot 0.9.7

This commit is contained in:
FrogAi
2024-06-27 10:22:08 -07:00
parent da00915ac8
commit b705b02e70
682 changed files with 181798 additions and 1348 deletions
+19 -23
View File
@@ -41,8 +41,6 @@ MapRenderer::MapRenderer(const QMapLibre::Settings &settings, bool online) : m_s
QSurfaceFormat fmt;
fmt.setRenderableType(QSurfaceFormat::OpenGLES);
m_settings.setMapMode(QMapLibre::Settings::MapMode::Static);
ctx = std::make_unique<QOpenGLContext>();
ctx->setFormat(fmt);
ctx->create();
@@ -89,18 +87,6 @@ MapRenderer::MapRenderer(const QMapLibre::Settings &settings, bool online) : m_s
LOGE("Map loading failed with %d: '%s'\n", err_code, reason.toStdString().c_str());
});
QObject::connect(m_map.data(), &QMapLibre::Map::staticRenderFinished, [=](const QString &error) {
rendering = false;
if (!error.isEmpty()) {
LOGE("Static map rendering failed with error: '%s'\n", error.toStdString().c_str());
} else if (vipc_server != nullptr) {
double end_render_t = millis_since_boot();
publish((end_render_t - start_render_t) / 1000.0, true);
last_llk_rendered = (*sm)["liveLocationKalman"].getLogMonoTime();
}
});
if (online) {
vipc_server.reset(new VisionIpcServer("navd"));
vipc_server->create_buffers(VisionStreamType::VISION_STREAM_MAP, NUM_VIPC_BUFFERS, false, WIDTH, HEIGHT);
@@ -128,16 +114,22 @@ void MapRenderer::msgUpdate() {
float bearing = RAD2DEG(orientation.getValue()[2]);
updatePosition(get_point_along_line(pos.getValue()[0], pos.getValue()[1], bearing, MAP_OFFSET), bearing);
if (!rendering) {
// TODO: use the static rendering mode instead
// retry render a few times
for (int i = 0; i < 5 && !rendered(); i++) {
QApplication::processEvents(QEventLoop::AllEvents, 100);
update();
if (rendered()) {
LOGW("rendered after %d retries", i+1);
break;
}
}
// fallback to sending a blank frame
if (!rendered()) {
publish(0, false);
}
}
}
if (sm->updated("navRoute")) {
@@ -165,9 +157,7 @@ void MapRenderer::updatePosition(QMapLibre::Coordinate position, float bearing)
m_map->setCoordinate(position);
m_map->setBearing(bearing);
m_map->setZoom(zoom);
if (!rendering) {
update();
}
update();
}
bool MapRenderer::loaded() {
@@ -175,10 +165,16 @@ bool MapRenderer::loaded() {
}
void MapRenderer::update() {
rendering = true;
double start_t = millis_since_boot();
gl_functions->glClear(GL_COLOR_BUFFER_BIT);
start_render_t = millis_since_boot();
m_map->startStaticRender();
m_map->render();
gl_functions->glFlush();
double end_t = millis_since_boot();
if ((vipc_server != nullptr) && loaded()) {
publish((end_t - start_t) / 1000.0, true);
last_llk_rendered = (*sm)["liveLocationKalman"].getLogMonoTime();
}
}
void MapRenderer::sendThumbnail(const uint64_t ts, const kj::Array<capnp::byte> &buf) {