pronto

ori-drsLGPL-2.1更新放缓

Pronto 是面向足式机器人的状态估计库,提供核心算法、ROS 封装和消息定义,帮助四足、双足机器人在行走中实时估计自身位姿与运动状态。

Pronto - Legged Robot State Estimator - libraries, ROS wrapper and messages

v0.2.1发布于 2021-06-30 08:48 UTC326star52fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
source install/setup.bash
硬件要求按 README 说明

README 未说明显存或 GPU 要求;目标系统为 Ubuntu 22.04 + ROS 2 Humble,算法用 C/C++ 实现,依赖 Eigen、Boost、Pinocchio

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

面向腿足机器人的模块化 EKF 状态估计器,融合惯性、关节运动学与 LiDAR、相机等外部传感器

Pronto 是面向足式机器人的状态估计库,提供核心算法、ROS 封装和消息定义,帮助四足、双足机器人在行走中实时估计自身位姿与运动状态。

核心能力

  • 用 EKF 融合 IMU、关节运动学与 LiDAR、相机测量
  • 提供人形机器人腿式里程计模块,已在 Atlas、Valkyrie 上测试
  • 提供四足腿式里程计库,已在 HyQ、ANYmal 上测试
  • 按 pronto_core、pronto_biped、pronto_quadruped 等 ROS 包拆分
  • 支持用 bag 启动多个实例做基准对比

容易踩的坑

main 分支只针对 ROS 2 Humble,ROS 1 需切到 ros1 分支;启动节点要提供 xacro_pkg、xacro_name、config_name 三个参数,且配置文件必须放进 pronto_ros2_node 的 config 目录;MAV 专用的高度计、GPS 模块当前不受支持

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

2 个版本v0.2.1
  1. v0.2.1最新正式版2021-06-30 · 2021-06-30 08:48 UTC

    这个版本没有写更新说明。

  2. v0.1.02021-02-23 · 2021-02-23 12:49 UTC

    这个版本没有写更新说明。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Updates

    November 2025: Pronto has been updated to ROS2 with the support of Francesco Iotti and colleagues in Università di Pisa. The main branch of the repo targets ROS 2 Humble.

    For the ROS 1 version, check out the ros1 branch of this repository.

    Introduction

    Pronto is an efficient, versatile and modular EKF state estimator for both proprioceptive (inertial, kinematics) and exteroceptive (LIDAR, camera) sensor fusion. It has been used with a variety of inputs from sensors such as IMUs (Microstrain, KVH, XSense), LIDAR (Hokuyo, Velodyne), cameras (Carnegie Robotics Multisense SL, Intel RealSense) and joint kinematics.

    Legged Robots

    Pronto provided the state estimate that was used by MIT DRC team in the DARPA Robotics Challenge to estimate the position and motion of the Boston Dynamics Atlas robot.

    image Pronto on Atlas

    Since then, it has been adapted to estimate the motion of the NASA Valkyrie robot at the University of Edinburgh, the HyQ quadruped robot at the Istituto Italiano di Tecnologia, and the ANYmal quadruped robot at the University of Oxford.

    image Pronto on HyQ

    Micro Aerial Vehicles

    Pronto was originally developed for Micro Aerial Vehicle state estimation. The modules specific to MAVs (e.g., altimeter, GPS) are not currently supported.

    Software Overview

    The algorithms (and their ROS wrappers) are written in C/C++ and organized as ros packages. The repository consists of the following main modules:

    • pronto_core: core libraries that implement the filter, the state, and basic measurement modules (e.g., IMU, pose update)
    • pronto_biped leg odometry measurement modules for humanoid robots (tested on Atlas and Valkyrie)
    • pronto_quadruped leg odometry libraries for a quadruped robot (tested on HyQ and ANYmal)
    • pronto_quadruped_commons abstract interfaces to perform leg odometry on a quadruped robot. This is a fork of the iit_commons package (see here).
    • *_ros ROS wrappers of the above modules
    • other support packages for filtering

    For further details, refer to this.

    Dependencies

    Pronto depends on Eigen, Boost and Pinocchio.

    System Requirements

    The target operating system is Ubuntu 22.04 with ROS 2 Humble. Other versions of Ubuntu/ROS might work but they are not actively supported or tested.

    Building the Code

    Pronto is organized as a collection of ROS packages. To build the code, run

    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
    

    Then, source the workspace:

    source install/setup.bash
    

    Usage

    Start Estimator

    The estimator node can be started with

    ros2 launch  pronto_ros2_node pronto_node.launch.py xacro_pkg:=<robot_description_package> xacro_name:=<xacro_file_name> config_name:=<configuration_file name>
    

    Where the arguments within <...> must be replaced with the actual values.

    The config file must be added to the config folder in pronto_ros2_node package.

    Benchmarking

    The Benchmarking launch allows the user to start a list of pronto instance to compare the obtained estimations. The input is a bag contains all the filter measures input, or at least it should be consistent with the configuration files. The configuration files has to be placed into the config folder and named omnicar_tune_i.yaml, each file is associated with a pronto instance. The launch file contains the global variable to set the bag name and the list of instance number, subset of the configuration files' list. To start the filters the command line is:

    ros2 launch pronto_ros2_node bench_pronto.launch.py
    

    Robot Implementation Example

    To learn how to use Pronto on your robot, you can have a look at this repository, which contains a full implementation on the ANYmal quadruped robot.

    Publications

    If you use part of this work in academic context, please cite the following publication:

    M. Camurri, M. Ramezani, S. Nobili, M. Fallon Pronto: A Multi-Sensor State Estimator for Legged Robots in Real-World Scenarios in Frontiers on Robotics and AI, 2020 (PDF) DOI: 10.3389/frobt.2020.00068

    @article{camurri2020frontiers,
      author = {Camurri, Marco and Ramezani, Milad and Nobili, Simona and Fallon, Maurice},
      title = {{Pronto: A Multi-Sensor State Estimator for Legged Robots in Real-World Scenarios}},
      journal = {Frontiers in Robotics and AI},
      volume = {7},
      number = {68},
      pages = {1--18},
      year = {2020},
      url = {https://www.frontiersin.org/article/10.3389/frobt.2020.00068},
      doi = {10.3389/frobt.2020.00068},
      issn = {2296-9144}
    }
    

    Previous publications

    S. Nobili, M. Camurri, V. Barasuol, M. Focchi, D.G. Caldwell, C. Semini, M. Fallon Heterogeneous Sensor Fusion for Accurate State Estimation of Dynamic Legged Robots in Proceedings of Robotics: Science and Systems XIII, 2017 (PDF) DOI: 10.15607/RSS.2017.XIII.007

    @inproceedings{nobili2017rss,
        author = {Simona Nobili AND Marco Camurri AND Victor Barasuol AND Michele Focchi AND Darwin Caldwell AND Claudio Semini AND Maurice Fallon},
        title = {{Heterogeneous Sensor Fusion for Accurate State Estimation of Dynamic Legged Robots}},
        booktitle = {Proceedings of Robotics: Science and Systems},
        year = {2017},
        address = {Cambridge, Massachusetts},
        month = {July},
        doi = {10.15607/RSS.2017.XIII.007}
    }
    

    M. Camurri, M. Fallon, S. Bazeille, A. Radulescu, V. Barasuol, D.G. Caldwell, C. Semini Probabilistic Contact Estimation and Impact Detection for State Estimation of Quadruped Robots in IEEE Robotics and Automation Letters, vol. 2, no. 2, pp. 1023-1030, April 2017 (PDF) DOI: 10.1109/LRA.2017.2652491

    @article{camurri2017ral,
          author={M. {Camurri} and M. {Fallon} and S. {Bazeille} and A. {Radulescu} and V. {Barasuol} and D. G. {Caldwell} and C. {Semini}},
          journal={IEEE Robotics and Automation Letters},
          title={{Probabilistic Contact Estimation and Impact Detection for State Estimation of Quadruped Robots}},
          year = {2017},
          volume = {2},
          number = {2},
          pages = {1023-1030},
          doi = {10.1109/LRA.2017.2652491},
          ISSN = {2377-3766},
          month = {April}}
    

    M. Fallon, M. Antone, N. Roy, S. Teller Drift-Free Humanoid State Estimation fusing Kinematic, Inertial and LIDAR sensing 2014 IEEE-RAS International Conference on Humanoid Robots (PDF) DOI:10.1109/HUMANOIDS.2014.7041346

    @inproceedings{fallon2014humanoids,
    author={M. F. {Fallón} and M. {Antone} and N. {Roy} and S. {Teller}},
    booktitle={2014 IEEE-RAS International Conference on Humanoid Robots},
    title={Drift-free humanoid state estimation fusing kinematic, inertial and LIDAR sensing},
    year={2014},
    volume={},
    number={},
    pages={112-119},
    doi={10.1109/HUMANOIDS.2014.7041346},
    ISSN={},
    month={Nov},}
    

    A. Bry, A. Bachrach, N. Roy State Estimation for Aggressive Flight in GPS-Denied Environments Using Onboard Sensing 2012 IEEE International Conference on Robotics and Automation (PDF) DOI:10.1109/ICRA.2012.6225295

    @inproceedings{bry2012icra,
    author={A. {Bry} and A. {Bachrach} and N. {Roy}},
    booktitle={2012 IEEE International Conference on Robotics and Automation},
    title={State estimation for aggressive flight in GPS-denied environments using onboard sensing},
    year={2012},
    volume={},
    number={},
    pages={1-8},
    doi={10.1109/ICRA.2012.6225295},
    ISSN={},
    month={May},}
    

    Credits

    Additional contributors

    Andy Barry, Pat Marion, Dehann Fourie, Marco Frigerio, Michele Focchi, Benoit Casseau, Russell Buchanan, Wolfgang Merkt

    License

    Pronto is released under the LGPL v2.1 license. Please see the LICENSE file attached to this document for more information.