Skip to content

ch4 ODOM 优化 #198

Description

@hongli0220

作者在第四章结束时提到,本章的GINS没有在ODOM层面进行优化。但是在阅读代码时,优化函数里有添加odom边:

// Odom边
    EdgeEncoder3D* edge_odom = nullptr; // 里程计边(约束)
    Vec3d vel_world = Vec3d::Zero();    // 世界坐标系下的速度
    Vec3d vel_odom = Vec3d::Zero();     // 里程计坐标系(车身坐标系)下的速度
    if (last_odom_set_) {
        // velocity obs:轮子周长 × 转数 / 时间 = 线速度
        double velo_l =
            options_.wheel_radius_ * last_odom_.left_pulse_ / options_.circle_pulse_ * 2 * M_PI / options_.odom_span_;
        double velo_r =
            options_.wheel_radius_ * last_odom_.right_pulse_ / options_.circle_pulse_ * 2 * M_PI / options_.odom_span_;
        // 取左右轮速度平均值作为车辆前进速度
        double average_vel = 0.5 * (velo_l + velo_r);
        vel_odom = Vec3d(average_vel, 0.0, 0.0);
        // 将里程计坐标系下的速度转换到世界坐标系下
        vel_world = this_frame_->R_ * vel_odom;

        edge_odom = new EdgeEncoder3D(v1_vel, vel_world);
        edge_odom->setInformation(options_.odom_info_);
        optimizer.addEdge(edge_odom);

        // 重置odom数据到达标志位,等待最新的odom数据
        last_odom_set_ = false;
    }

请问专业一点的大佬,第四章是不是一起做了imu、gnss和odom的优化

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions