Hybrid Contact Preintegration for Visual-Inertial-Contact State Estimation Using Factor Graphs

The factor graph framework is a convenient modeling technique for robotic state estimation where states are represented as nodes, and measurements are modeled as factors. When designing a sensor fusion framework for legged robots, one often has access to visual, inertial, joint encoder, and contact sensors. While visual-inertial odometry has been studied extensively in this framework, the addition of a preintegrated contact factor for legged robots has been only recently proposed. This allowed for integration of encoder and contact measurements into existing factor graphs, however, new nodes had to be added to the graph every time contact was made or broken. In this work, to cope with the problem of switching contact frames, we propose a hybrid contact preintegration theory that allows contact information to be integrated through an arbitrary number of contact switches. The proposed hybrid modeling approach reduces the number of required variables in the nonlinear optimization problem by only requiring new states to be added alongside camera or selected keyframes. This method is evaluated using real experimental data collected from a Cassie-series robot where the trajectory of the robot produced by a motion capture system is used as a proxy for ground truth. The evaluation shows that inclusion of the proposed preintegrated hybrid contact factor alongside visual-inertial navigation systems improves estimation accuracy as well as robustness to vision failure, while its generalization makes it more accessible for legged platforms.


I. INTRODUCTION AND RELATED WORK
Long-term state estimation and mapping for legged robots requires a flexible sensor fusion framework that allows for reducing drift and correcting past estimates as the robot perceives new information. During long-term missions, odometry systems can drift substantially since the absolute position and yaw (rotation about gravity) are unobservable [1], [2], leading to an unbounded growth in the covariance of the estimate and an undesirable expansion of the search space for data association tasks. The factor graph smoothing framework [3]- [6] offers suitable machineries for building such systems in which real-time performance is achieved by exploiting the sparse structure of the Simultaneous Localization and Mapping (SLAM) problem [7], [8]. In addition, the incorporation of loop-closures [8] into the graph, upon availability, is convenient.
Legged robot perception often involves fusing kinematic odometry, Inertial Measurement Unit (IMU) data, and visual/depth measurements to infer the robot's trajectory, controller inputs such as velocity, and calibration parameters [9]- [12]. The challenge in such perception problems is the rigorous real-time performance requirements in legged The authors are with the College of Engineering, University of Michigan, Ann Arbor, MI 48109 USA {rosshart, maanigj, ganlu, bjhuang, grizzle, eustice}@umich.edu. Fig. 1: Experiments were conducted on a Cassie-series robot designed by Agility Robotics in an indoor laboratory environment. The motion capture system is used to record the robot trajectory as a proxy for ground truth data. The Cassie-series robot has 20 degrees of freedom, 10 actuators, joint encoders, an IMU, and mounted with a Multisense S7 stereo camera. robots arising from their direct and switching contact with the environment [1], [13]- [16]. Furthermore, kinematic leg odometry involves estimating relative transformations and velocity using kinematic and contact information, which can be noisy due to the encoder noise and foot slip [2], [17].
In our previous work [18], we made progress towards a long-term, legged robot state estimator by developing two novel factors that integrate the use of forward kinematics and the notion of contact between the robot and the environment into the factor graph framework. While these novel factors improved the estimator's performance, new challenges emerged due to frequent switching contacts as the robot navigates through an environment. In particular, a new node needs to be added to the graph every time contact was made or broken. This leads to an larger number of optimization variables, which increases the complexity of the graph and ultimately slows down the estimator. This problem is only exacerbated as the number of contact points increases (quadraped or hexapod robots).
In this paper, we generalize the idea of the preintegrated contact factor in [18] to a hybrid preintegrated contact factor that alleviates the effect of frequently changing contacts with the environment. We develop a novel method for preintegrating contact information though an arbitrary number of contact switches. The proposed hybrid modeling approach reduces the number of required variables in the nonlinear optimization problem by only requiring new states to be added alongside camera or selected keyframes. The present work has the following contributions: i. A generic forward kinematic factor modeled in SE (3) using the manipulator Jacobian that supports both prismatic and revolute joints; the factor incorporates noisy encoder measurements to estimate an end-effector pose at any time-step. ii. A hybrid preintegrated contact factor modeled in SE (3) that allows for an arbitrary number of contact switches between camera or selected keyframes. iii. Real-time implementation and experimental evaluation of the derived factors on a Cassie-series biped robot in an indoor laboratory environment where ground truth data was collected using a motion capture system.
The remainder of this paper is organized as follows. Section II provides the mathematical background and preliminaries. We formulate the problem using the factor graph approach in Section III. Section IV explains the forward kinematic modeling and derives the forward kinematic factor. The proposed hybrid rigid contact model and hybrid contact preintegration are derived in Section V. Experimental evaluations of the proposed methods on a 3D biped robot (shown in Fig. 1) are presented in Section VI. Finally, Section VII concludes the paper and provides future work suggestions.

II. MATHEMATICAL BACKGROUND AND PRELIMINARIES
We first review the Lie group theory corresponding to the rotation and motion groups [19], [20]. Afterwards, we discuss the optimization technique on matrix Lie groups [21] and the choice of retraction for deriving forward kinematic and hybrid preintegrated contact factors.
Matrices are capitalized in bold, such as in X, and vectors are column-wise in lower case bold type, such as in x.
We denote e 2 Σ e T Σ −1 e. The n-by-n identity matrix and the n-by-m matrix of zeros are denoted by I n and 0 n×m respectively. The vector constructed by stacking x i , ∀ i ∈ {1, . . . , n} is denoted by vec(x 1 , . . . , x n ). The covariance of a random vector is denoted by Cov[·]. Finally, we denote the base (IMU) frame of the robot by B, the world frame by W, and contact frame by C.

A. Matrix Lie Group of Rotation and Motion in R 3
The general linear group of degree n, denoted by GLn(R), is the set of all n × n nonsingular real matrices, where the group binary operation is the ordinary matrix multiplication. The three-dimensional (3D) special orthogonal group, denoted by SO(3) = {R ∈ GL 3 (R) | RR T = I 3 , det R = +1} is the rotation group on R 3 . The 3D special Euclidean group, denoted by is the group of rigid transformations on R 3 . The Lie algebra (tangent space at the identity together with Lie bracket) of SO(3), denoted by so (3), is the set of 3 × 3 skew-symmetric matrices such that for any ω vec(ω 1 , ω 2 , ω 3 ) ∈ R 3 : and (ω ∧ ) ∨ = ω. The Lie algebra of SE(3), denoted by se(3), can be identified by 4 × 4 matrices such that for any ω, v ∈ R 3 and the twist is defined as ξ vec(ω, v) ∈ R 6 : where the wedge operator ( ∧ ) for twist is overloaded. The exponential map exp : se(3) → SE(3) can be used to map a member of se(3) around a neighborhood of zero to a member of SE(3) around a neighborhood of the identity. The logarithm map is the inverse, i.e., log : SE(3) → se(3), and exp(log(H)) = H, H ∈ SE(3). Now we can define the difference between a transformation H ∈ SE(3) and its estimate with a small perturbationH ∈ SE(3) as [20], [22]: where ∧ ∈ se(3). To define the norm and covariance of the error term, we exploit the fact that se(3) is isomorphic to R 6 , i.e., ∧ → ∈ R 6 using the ∨ operator. Therefore, we can define the 6 × 6 covariance matrix conveniently as Σ = Cov[ ]. We use the following adopted simplified notations from [6]: The adjoint representation of a Lie group is a linear map that captures the non-commutative structure of the group. For SE(3), the matrix representation of the adjoint map [20] is For any H ∈ SE(3) and ξ ∈ R 6 , the adjoint map asserts

B. Retraction Map and Optimization on Manifold
Given a retraction mapping and the associated manifold, we can optimize over the manifold by iteratively lifting the cost function of our optimization problem to the tangent space, solving the re-parameterized problem, and then mapping the updated solution back to the manifold using the retraction [21]. For SE(3) we use its exponential map as the natural retraction, R H (δξ) = HExp(δξ), where δξ ∈ R 6 is the twist defined earlier in (1). Therefore, the retractions on the base and the contact poses are defined as These retractions are used to both update the state during optimization and to compute the Jacobians of the residuals.

III. PROBLEM STATEMENT AND FORMULATION
In this section, we formulate the state estimation problem using the factor graph framework where independent sensor measurements can be incorporated by introducing additional factors based on the associated measurement models. The biped robot, shown in Figure 1, is equipped with a stereo camera, an IMU mounted on the torso, joint encoders, and a series of springs used for binary contact detection. Without loss of generality, we assume the IMU and camera are collocated with the base frame of the robot.

A. State Representation
The state variables (at time t i ) include the 3D body pose, H WB (t) ∈ SE(3), and velocity, W v WB (t) ∈ R 3 , in the world frame, the 3D contact pose in the world frame, are the gyroscope and accelerometer biases, respectively. All together, the state at any time-step i is a tuple as follows: Further, it is convenient to denote the trajectory of the state variables up to time-step k by X k k i=1 T i . Foot slip is the major source of drift in kinematic leg odometry. The inclusion of the contact pose in the state tuple allows for isolating the noise at the contact point.

B. Factor Graph Formulation
Let L ij ∈ SE(3) be a perceptual loop-closure measurement relating poses at time-steps i and j (j > i) computed from an independent sensor, e.g. using a point cloud matching algorithm. The forward kinematic measurements at timestep i are denoted by F i . The IMU and contact sensors provide measurements at higher frequencies. Between any two time-steps i and j, we denote the set of all IMU and contact measurements by I ij and C ij , respectively. Let K k be the index set of time-steps (or keyframes) up to time-step k. We denote the set of all measurements up to time-step k by By assuming the measurements are conditionally independent and are corrupted by additive zero mean white Gaussian noise, the posterior probability of the full SLAM problem can be written as The Maximum-A-Posteriori (MAP) estimate of X k can be computed by solving the following optimization problem: in which due to the noise assumption mentioned earlier is equivalent to the following nonlinear least-squares problem: where r 0 and Σ 0 represent the prior over the initial state and serves to anchor the graph, r Lij , r Iij , r Fi , r Cij are the residual terms associated with the loop closure, IMU, forward kinematic, and contact measurements respectively, i.e. Fig. 2: In this paper, we refer to two separate forward kinematics functions. The pose of the current contact frame relative to the base frame is denoted by H BC . When the robot has multiple points of contact with the environment, it is possible to transfer this contact from from one frame to another. This transfer of contact is captured by the homogeneous transform H C -C + .
the error between the measured and predicted values given the state, and Σ Lij , Σ Iij , Σ Fi , Σ Cij are the corresponding covariance matrices.

IV. FORWARD KINEMATICS
Forward kinematics refers to the process of computing the relative pose transformation between two frames of a multilink system. Each individual joint displacement describes how the child link moves with respect to the parent one. This joint displacement can either be an angle (revolute joints) or a distance (prismatic joints).
Let α ∈ R N denote the vector of joint displacements for a general robot. Without loss of generality, we define a base frame on the robot, denoted B, that is assumed to be collocated with both the IMU and the camera frames. When the robot is in contact with the static environment, we can also define a contact frame, denoted C, on the robot at the point of contact. The homogeneous transformation between the base frame and the contact frame is defined by: where R BC (α) and B p BC (α) denote the relative orientation and position of the contact frame with respect to the base frame.
When there are two points in contact with the static environment, it is possible to "transfer" the contact frame from one point to the other (shown in Figure 2). Let C − denote the old contact frame and C + denote the new contact frame. Then, the homogeneous transformation between the old frame and the new frame is defined by: where R C -C + (α) and C -p C -C + (α) denote the relative orientation and position of the new contact frame with respect to the old contact frame.

A. Measurements
We assume the robot's joints are equipped with a set of joint encoders that can measure the joint displacement. These encoder measurements,α, are assumed to be corrupted with Gaussian white noise. This is an explicit measurement coming from physical sensors located on the robot.
The geometric (or manipulator) Jacobian, denoted J (α), provides a method for computing the angular and linear velocity of an end-effector given the vector of joint velocities [19]. In a similar manner, we can use the Jacobian to map incremental angle displacements to changes in the end-effector pose. Let J BC (α) denote the body manipulator Jacobian of the forward kinematics function (5). Then, the following relationship holds: where δα and δt are incremental encoder and time quantities and C ξ BC denotes the vector of angular and linear velocities of the contact frame due to δα (measured in the contact frame). We can use this relationship (8) to factor out the noise from the forward kinematics equations. Up to a first order approximation, (5) can be factored as: A similar approximation can be found for (6), albeit with a different Jacobian.
Remark 1. In general, the manipulator Jacobian can be derived as spatial or body Jacobian [19], and based on this choice, the noise can appear on the left or right side of the rotation/rigid body transformation, respectively.

B. Forward Kinematic Factor
The goal of this section is to derive a general forward kinematic factor that can be used in the factor graph framework. This will be a unary factor that relates two poses through the forward kinematics equations while accounting for encoder noise. We derive it here for relating the base and contact frames.
The orientation and position of the contact frame with respect to the world frame are given by: Substituting in the state variables at time t i (4), the forward kinematic equation (5) yields: We can now use the first order approximation (9) to factor out the encoder noise to give the following expression: Defining the zero-mean white Gaussian forward kinematic noise term, δc i J BC (α i )w α i , allows us to write out the forward kinematic measurement model: where the forward kinematic noise is characterized by δc i ∼ N (0 6×1 , Σ Fi ). The residual error is defined in the tangent space and can be written as: The covariance is computed through the following linear transformation: where J BC (α i ) is the body manipulator Jacobian evaluated at the current encoder measurements and Σ α i denotes the encoder covariance matrix at time t i .

V. HYBRID CONTACT PREINTEGRATION
A continuous hybrid dynamical system, H, can be defined with a continuous dynamics function, f (·), a discrete transition map, ∆(·), and a switching surface, S [23]. Trajectories of the hybrid dynamical system evolve according to the continuous dynamics, until the switching surface it hit. At those moments, the state gets mapped through the discrete transition map, after which the trajectory continues according to the continuous dynamics again. The general form of this system can be expressed as follows: As long as the number of contact points is greater than or equal to one, the switching contact frame dynamics can be modeled as a hybrid system: where the switching surface, S is simply modeled as the set of all times where contact is switched from one frame to another. Since the sensor measurements are coming in at discrete time-steps, we perform Euler integration from time t to t+∆t to discretize the continuous hybrid contact dynamics (18), forming the following discrete hybrid system: Physically, the continuous dynamics function, f , describes how a single contact frame moves over time while contact is maintained. When a new contact frame is detected, the new contact pose can be computed by applying the transition map, ∆(·), which describes the homogeneous transformation between the old and new contact frames.

A. Measurements
The angular and linear velocity of the contact point is an implicit measurement that is inferred through a binary contact sensor: specifically, when this sensor indicates contact, the pose of the contact frame is assumed to remain fixed with respect to the world frame, i.e. the measured velocities are zero. In order to accommodate potential contact slip, Fig. 3: In the factor graph framework, the robot's state along a discretized trajectory denoted by red circles. Each independent sensor measurement is a factor denoted by lines that constraints the state at separate time-steps. The proposed hybrid contact factor (shown on top) allows preintegration of highfrequency contact data through an arbitrary number of contact switches. In this example, there are two contact switches, where the robot moves from left-stance (L) to right-stance (R), then back to left stance. this measured twist is modeled to be corrupted with white Gaussian noise, namely Using the state variables (4), forward kinematics definition (6), encoder measurements (7), and contact measurements, the hybrid contact dynamics (19) can be written as: where w vd k , the discrete time contact noise, is computed using the sample time, Cov[w ξd (t)] = 1 ∆t Cov[w ξ (t)].

Remark 2.
H C -C + (α k ) will depend on the specific contact frames, C − and C + , at time t k . For example, the forward kinematics function to switch from left foot contact to a right foot contact will be different than the one used to switch from right foot to left foot.

B. Preintegrating Contact Pose
The goal of this section is to formulate a general hybrid preintegrated contact factor which relates the contact pose at t i to the contact pose at t j . The hybrid nature of this factor comes from the potential switching of contact that occurs naturally in legged locomotion. Following the work on IMU preintegration theory [6], [24], we preintegrate the high-frequency contact measurements to prevent unnecessary computation allowing efficient implementation of the factor.
Let S denote the sequence of all time indices associated with contact switches, so that each s i ∈ S represents a single time index where a contact switch occurs. To integrate the hybrid contact dynamics model (20) through these contact switches, we integrate the up to the next contact switch time t si , apply the transition map ∆(·), and continue the integration. For the following derivations, a concrete example (depicted in Figure 3) is used to make the derivation easier to follow. We later extend the derivation to an arbitrary number of contact switches. For the example shown in Figure 3, there are two contact switches between times t i and t j , i.e., |S| = 2. Integrating the discrete hybrid contact model (20) from t i to t j yields: Exp(−w ξd k ∆t) .
All noise terms can be shifted to the right by using (10) to factor the noise from the forward kinematics term and the adjoint relation (2) to shift the measured kinematics to the left.
After multiplying both sides by C −1 i , we arrive at a relative pose expression that is independent of states T i and T j .
where ∆C ij |S| n=1 H C -C + (α sn ) represents the hybrid preintegrated contact measurement, and Exp(−δc ij ) groups all of the noise terms together. This noise term is a product of multiple small rigid body transformations. Therefore, it can be approximated as a summation in the tangent space through iterative use of the Baker-Campbell-Hausdorff (BCH) formula [20] (while keeping only the first order terms).
The hybrid preintegrated contact noise, δc ij , is a summation of zero-mean Gaussian terms, and is therefore also zeromean and Gaussian. It is possible to generalize this noise expression to an arbitrary number of contact switches, however, it becomes much simpler to do so when looking at the iterative propagation form in the following section.

C. Iterative Propagation
It is possible to write both the preintegrated contact measurements, ∆C ij , and the preintegrated contact noise, δc ij , in iterative update forms. This allows the terms to be updated as contact and encoder measurements are coming in. In addition, this form simplifies the expressions and allows for through the use of the adjoint map of the forward kinematics transformation, H C -C + . However, due to noisy encoders, an addition noise term (computed using the manipulator Jacobian) has to be added to compute δc + ik .
the covariance to be conveniently computed. The following proposition generalizes the hybrid preintegrated contact pose and noise iterative propagation to an arbitrary number of contact switches. The proof is given in the supplementary material.

Proposition 1 (Iterative Propagation of Hybrid Contact
Process [25]). Between any two time-steps t i and t j such that j > i, starting with ∆C ii = I 4 and δc ii = 0 3×1 , the hybrid preintegrated contact measurement, ∆C ij , and noise, δc ij , for an arbitrary number of contact switches can be computed iteratively using the following hybrid systems: δH : An abstract representation of these hybrid systems is shown in Figure 4.

D. Rigid Contact Factor
The relative contact pose expression (22) can be used to define the hybrid preintegrated contact measurement model: where the preintegrated contact noise is characterized by δc ij ∼ N (0 6×1 , Σ Cij ). In the factor graph framework, this hybrid preintegrated contact model represents a binary factor that relates the contact frame pose over consecutive time steps. The residual error is defined in the tangent space, and can be written as: The covariance is computed using the hybrid contact noise model (24), starting with Σ Cii = 0 6×6 :

VI. EXPERIMENTAL RESULTS
We now present experimental evaluations of the proposed factors. In the first experiment, we compare three odometry systems composed by Visual-Inertial-Contact (VIC), Inertial-Contact (IC), and Visual-Inertial (VI) factors. Whenever the contact factor is used, it is assumed that forward kinematic factor is also available; therefore, it is not explicitly mentioned for brevity. In the second experiment, we study the effect of losing visual data for a period of time to see how the contact factor can constrain the graph in the absence of a reliable vision system. In the third experiment, we will evaluate the use of terrain factors, where loop-closures can be added to the graph through contact frame poses.

A. Experimental Setup
All experiments are done on a Cassie-series robot designed by Agility Robotics, which has 20 degrees of freedom, 10 actuators, joint encoders, and a VN-100 IMU. A Multisense S7 stereo camera, which contains a separate IMU, is mounted on the top of the Cassie robot as shown in Fig. 1. The robot also has four springs (two on each leg) that can be used as binary contact sensors by thresholding the spring deflection measurements. The Cassie robot has two computers which run MATLAB Simulink Real-Time (for the controller) and Ubuntu (for the estimator) respectively. We use the Robot Operating System (ROS) [26] with the User Datagram Protocol (UDP) to communicate sensor data between the two computers. We also integrate the time synchronization algorithm in [27] into our system to ensure all sensory data is synchronized. The motion capture system developed by Vicon is used as a proxy for ground truth trajectories. The setup consists of 17 motion capture cameras with four markers attached to the robot to track the IMU pose. The dataset contains the stereo images (20 Hz) and IMU data (750 Hz) from the Multisense S7 camera as well as the joint encoders and IMU data from the Cassie robot (at 400 Hz each).
The proposed kinematic and contact factors were implemented using the GTSAM 4.0 library [4]. We utilized the built-in preintegrated IMU factor [6] with the iSAM2 [3] incremental solver. For visual odometry, we used the semidirect visual odometry library (SVO 2.0 [28]). The Multisense camera recorded synchronized stereo images at 20 Hz and IMU measurements in about 750 Hz. SVO processes those measurements in real-time and outputs the pose of the left camera in a fixed world frame, X i , for the current time-step i. The relative transformation of the camera from time-step i to j can be obtained using ∆X ij = X −1 i X j . We selected keyframes approximately every 0.25 seconds.

B. First Experiment: Odometry Comparison
In this experiment, we had Cassie stand in place for about 15 seconds, then slowly walk forwards and backwards along the length of the lab for approximately 45 seconds. The resulting data was used to compare the odometry performance (processed off-line) of different combinations of factors. The results are shown in Figure 5. The odometry estimate from The odometry results from a 60 second walking experiment using a Cassie-series robot. The Visual-Inertial-Contact (VIC) odometry outperformed both the Inertial-Contact (IC), and the Visual-Inertial (VI) odometry. "Ground-truth" data was collected from a Vicon motion capture system. It is important to note that no loop-closures are being performed, which helps to explain the relatively poor odometry from VI. The video of this experiment is provided at https://youtu.be/WDPhdl5g2MQ. VIC, as expected, outperforms all other combinations of factors. The Cumulative Distribution Function (CDF) of the relative position error is shown in Figure 6. The relative position CDF provides a method for analyzing the drift of an odometry estimate.
From Figure 6, it can be seen that VIC has the highest fraction of data corresponding to smaller relative position errors. This means VIC has lowest drift among all odometry systems. When the robot is walking, the hard impacts cause significant camera shake which leads to motion blur in the images. In addition, the lab environment seemingly lacked numerous quality features. These effects help to explain the relatively poor VI odometry performance.

C. Second Experiment: Vision Dropout
One of the main benefits from including the forward kinematic and contact factors is that the state estimator can be more robust to failure of the vision system. In this experiment, we simulate the effects of "vision dropout" by simply ignoring SVO visual odometry data for two 10-second periods of the experimental data described in the previous section. In other words, during a "vision dropout" period, VIC odometry reduces to IC odometry, and VI odometry Fig. 7: When vision data is lost, the covariance of the robot's base pose sharply grows for VI odometry due to the lack of additional measurements to constrain the graph. In contrast, during "vision dropout" periods, the additional contact factors allows the covariance estimate from VIC to remains close to the nominal case. reduces down to inertial (I) odometry. Figure 7 shows the log determinant of the base pose covariance for VIC and VI for these "vision dropout" experiments. The larger the log determinant, the more uncertain the estimator is about the robot's base pose. During the "vision dropout" periods, uncertainty grows for VI odometry. This sharp covariance growth is due to the lack of additional sensor measurements to add into the factor graph. In contrast, the covariance growth for VIC is hardly affected over the same dropout periods.

D. Third Experiment: Terrain Factors for Loop-Closure
Another benefit of adding the proposed contact factors comes from the addition of the contact frame poses into the robot's state. With these new state variables, it becomes simple to place additional constraints that relate the contact pose to a prior map. We test this idea on the collected experiment data by recognizing that the ground was relatively flat in the laboratory. This "zero-height" elevation data serves as our prior map. Figure 8 shows how adding this trivial constraint can reduce position drift in the z-direction. This experiment Fig. 8: Since the contact pose is now part of the estimated state, it is possible to add "terrain factors" that relate this contact pose to a prior map. Adding the simple constraint that the contact frame z-translation is zero (VIC-T) improves the drift in the z-direction when compared to the nominal Visual-Inertial-Contact (VIC) case. simply serves to illustrate the potential for "terrain factors", as the state estimate could be further improved if the robot was actually mapping out the terrain; there was actually a slight slope in the lab (as shown in the motion capture data).

VII. CONCLUSION
We developed a novel method for preintegrating contact information through an arbitrary number of contact switches using a hybrid preintegrated contact factor. The proposed approach was verified through experimental evaluations using a Cassie-series robot where a motion capture system is used as a proxy for ground truth data. Our results indicate that the fusion of contact information with IMU and vision data provide a reliable odometry system for legged robot. Furthermore, we showed that the developed visual-inertialcontact odometry system is robust to occasional vision system failures.
In the future, we plan to incorporate loop closure constraints into our factor graph framework to further improve state estimation, paving the way for long-term mapping on legged robots. We also plan to further investigate the potential utility of "terrain factors" to allow the robot's state to be corrected though detected contact on an estimated map.