chvmp / champ

MIT Cheetah I Implementation
BSD 3-Clause "New" or "Revised" License
1.52k stars 354 forks source link

I tried to link with cheetah SIM, but when the robot in SIM walked in a straight line, the robot in rviz was turning (rviz subscribed to the joint position and did not subscribe to IMU) #71

Open 1219883141 opened 2 years ago

1219883141 commented 2 years ago

I tried to link with cheetah SIM, but when the robot in SIM walked in a straight line, the robot in rviz was turning (rviz subscribed to the joint position and did not subscribe to IMU)

1219883141 commented 2 years ago

https://user-images.githubusercontent.com/71828328/138231041-c1acf75b-f15f-450f-bb23-128ff5c3b8a9.mp4

grassjelly commented 2 years ago

Hey,

I think that's due to the state estimation node. Champ has a state estimation node that calculates the robot's position from the origin (odom frame) and its speed using the joint position. These values are then fused with an IMU for more accurate positioning.

State Estimation: https://github.com/chvmp/champ/blob/master/champ_base/src/state_estimation.cpp Sensor Fusion: https://github.com/chvmp/champ/blob/master/champ_base/config/ekf/footprint_to_odom.yaml