SEROW (State Estimation RObot Walking) Framework for Humanoid/Quadruped Robot Walking Estimation. The code is open-source (BSD License). Please note that this work is an on-going research and thus some parts are not fully developed yet. Furthermore, the code will be subject to changes in the future which could include greater re-factoring.
Cogimon and SEROW | Centauro and SEROW |
---|---|
Relevant Papers:
- Non-linear ZMP based State Estimation for Humanoid Robot Locomotion, https://ieeexplore.ieee.org/document/7803278 (Humanoids 2016 - nominated for the best interactive paper award)
- Nonlinear State Estimation for Humanoid Robot Walking, https://ieeexplore.ieee.org/document/8403285 (RA-L + IROS 2018)
- Outlier-Robust State Estimation for Humanoid Robots (to appear IROS2019)
More Videos:
- https://www.youtube.com/watch?v=nkzqNhf3_F4
- https://www.youtube.com/watch?v=9OvIBg8tn54
- https://www.youtube.com/watch?v=ojogeY3xSsw
Upon usage in an academic work kindly cite:
@ARTICLE{PiperakisRAL18,
author={S. {Piperakis} and M. {Koskinopoulou} and P. {Trahanias}},
journal={IEEE Robotics and Automation Letters},
title={{Nonlinear State Estimation for Humanoid Robot Walking}},
year={2018},
volume={3},
number={4},
pages={3347-3354},
doi={10.1109/LRA.2018.2852788},
month={Oct},
}
SEROW now also supports quadruped robot state estimation. The base estimator used in the latter case is a variant of the one presented in: R. Hartley, M. G. Jadidi, J. Grizzle, and R. M. Eustice, “Contact-aided invariant extended kalman filtering for legged robot state estimation,” in Proceedings of Robotics: Science and Systems, Pittsburgh, Pennsylvania, June 2018.
The 3D-CoM estimator is the one proposed in "Nonlinear State Estimation for Humanoid Robot Walking" (https://ieeexplore.ieee.org/document/8403285). Although originality presented for humanoids, the same principles apply in quadrupeds.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Ubuntu 16.04 and later
- ROS kinetic and later
- Eigen 3.2.0 and later
- Pinocchio 2.2.1
- sudo apt-get install ros-kinetic-pinocchio
- git clone https://github.com/mrsp/serow.git
- catkin_make -DCMAKE_BUILD_TYPE=Release
- If you are using catkin tools run: catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release
- 3D-Body Position/Orientation/Velocity
- 3D-Support Foot Position/Orientation
- IMU biases
- Robot State Publisher (e.g. topic: /joint_states)
- IMU (e.g. topic /imu0)
- Feet Pressure or Force/Torque Sensors for detecting contact (e.g. topic: /left_leg/force_torque_states, /right_leg/force_torque_states)
- 3D-Body Position/Orientation/Velocity
- 3D-Support Foot Position/Orientation
- IMU biases
- 3D-CoM Position/Velocity
- 3D-External Forces on CoM
- Robot State Publisher (e.g. topic: /joint_states)
- IMU(e.g. topic /imu0)
- Feet Pressure or Force/Torque Sensors for Center of Pressure (COP) measurements in the local foot frame (e.g. topics /left_leg/force_torque_states, /right_leg/force_torque_states)
Use the serow_utils to visualize the estimated trajectories and to contrast them with other trajectories (e.g. ground_truth).
- Download the valkyrie bag file from valk_bagfile
- roscore
- rosbag play --pause valk.bag
- roslaunch serow serow_valkyrie.launch
- roslaunch serow_utils serow_utils.launch
- hit space to unpause the rosbag play
- Download the nao bag file from nao_bagfile
- roscore
- rosbag play --pause nao.bag
- roslaunch serow serow_nao.launch
- roslaunch serow_utils serow_utils.launch
- hit space to unpause the rosbag play
- Specify topics on config/estimation_params.yaml
- roslaunch serow serow.launch
- Specify similar parameters as in config/estimation_params_centauro.yaml