Skip to content

Commit 10f1f14

Browse files
committed
Add point_t
1 parent d3c4908 commit 10f1f14

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

src/xyz_se.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -4284,7 +4284,9 @@ void marg_factor_free(marg_factor_t *marg) {
42844284

42854285
// Jacobians
42864286
free(marg->param_types);
4287-
free(marg->param_ptrs);
4287+
if (marg->param_ptrs) {
4288+
free(marg->param_ptrs);
4289+
}
42884290
free(marg->params);
42894291
free(marg->r);
42904292
for (int i = 0; i < marg->num_params; i++) {
@@ -4647,14 +4649,12 @@ static void marg_factor_hessian_decomp(marg_factor_t *marg) {
46474649
for (int i = 0; i < (r * r); i++) {
46484650
diff += pow(H_[i] - marg->H_marg[i], 2);
46494651
}
4650-
diff = sqrt(diff);
46514652

46524653
if (diff > 1e-2) {
46534654
marg->eigen_decomp_ok = 0;
46544655
LOG_WARN("J' * J != H_marg. Diff is %.2e\n", diff);
46554656
LOG_WARN("This is bad ... Usually means marginalization is bad!\n");
46564657
}
4657-
printf("J' * J != H_marg. Diff is %.2e\n", diff);
46584658

46594659
free(Jt);
46604660
free(H_);

src/xyz_se.h

+21-8
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,16 @@ void time_delay_setup(time_delay_t *time_delay, const real_t param);
318318
void time_delay_copy(const time_delay_t *src, time_delay_t *dst);
319319
void time_delay_print(const char *prefix, const time_delay_t *exts);
320320

321+
///////////
322+
// POINT //
323+
///////////
324+
325+
typedef struct point_t {
326+
real_t x;
327+
real_t y;
328+
real_t z;
329+
} point_t;
330+
321331
///////////
322332
// JOINT //
323333
///////////
@@ -495,12 +505,13 @@ typedef struct pose_factor_t {
495505
real_t covar[6 * 6];
496506
real_t sqrt_info[6 * 6];
497507

508+
real_t r[6];
498509
int r_size;
499-
int num_params;
500-
int param_types[1];
501510

511+
int param_types[1];
502512
real_t *params[1];
503-
real_t r[6];
513+
int num_params;
514+
504515
real_t *jacs[1];
505516
real_t J_pose[6 * 6];
506517
} pose_factor_t;
@@ -523,12 +534,13 @@ typedef struct ba_factor_t {
523534
real_t sqrt_info[2 * 2];
524535
real_t z[2];
525536

537+
real_t r[2];
526538
int r_size;
527-
int num_params;
528-
int param_types[3];
529539

540+
int param_types[3];
530541
real_t *params[3];
531-
real_t r[2];
542+
int num_params;
543+
532544
real_t *jacs[3];
533545
real_t J_pose[2 * 6];
534546
real_t J_feature[2 * 3];
@@ -557,12 +569,13 @@ typedef struct camera_factor_t {
557569
real_t sqrt_info[2 * 2];
558570
real_t z[2];
559571

572+
real_t r[2];
560573
int r_size;
574+
561575
int num_params;
562576
int param_types[4];
563-
564577
real_t *params[4];
565-
real_t r[2];
578+
566579
real_t *jacs[4];
567580
real_t J_pose[2 * 6];
568581
real_t J_extrinsic[2 * 6];

0 commit comments

Comments
 (0)