GithubHelp home page GithubHelp logo

ori-drs / pronto Goto Github PK

View Code? Open in Web Editor NEW
235.0 26.0 42.0 676 KB

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

License: GNU Lesser General Public License v2.1

CMake 2.21% C++ 96.35% Python 1.44%
robotics ros slam

pronto's Introduction

CI

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 catkin packages. The repository consists of the following main modules:

  • pronto_core: core libraries that implment 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

Dependencies

Pronto depends on Eigen and Boost

System Requirements

The target operating system is Ubuntu 18.04 equipped with ROS Melodic.
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 catkin packages. To build the code, just run catkin build followed by the name of the packages you are interested to build.

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.

pronto's People

Contributors

benoit-robotics avatar dwisth avatar mathieu-geisert avatar mauricefallon avatar mcamurri avatar wxmerkt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pronto's Issues

Help ! pronto state estimator running on custom robot simulation is not publishing any msg in topics ?

Pronto state estimator is not publishing anything in custom robot implementation . I refer this for implementation of my custom robot . Below is the terminal info that i get when I run the pronto estimator with my simulation

`started roslaunch server http://administrator-Latitude-3400:41855/

SUMMARY

PARAMETERS

  • /fovis_trajectory_server/source_frame_name: base_fovis
  • /fovis_trajectory_server/target_frame_name: /odom
  • /fovis_trajectory_server/trajectory_publish_rate: 10
  • /hector_trajectory_server/source_frame_name: /loam_base
  • /hector_trajectory_server/target_frame_name: /map
  • /hector_trajectory_server/trajectory_publish_rate: 0.25
  • /hector_trajectory_server/trajectory_update_rate: 4.0
  • /mapping_line_resolution: 0.2
  • /mapping_plane_resolution: 0.4
  • /mapping_skip_frame: 1
  • /minimum_range: 0.3
  • /pronto_trajectory_server/source_frame_name: base_pronto
  • /pronto_trajectory_server/target_frame_name: /odom
  • /pronto_trajectory_server/trajectory_publish_rate: 10.0
  • /pronto_trajectory_server/trajectory_update_rate: 10.0
  • /robot_description: <?xml version="1....
  • /rosdistro: melodic
  • /rosversion: 1.14.9
  • /scan_line: 16
  • /simple_fusion/config_filename: /home/shyamsriniv...
  • /simple_fusion/extrapolate_when_vo_fails: False
  • /simple_fusion/image_a_topic: /camera/left/imag...
  • /simple_fusion/image_a_transport: compressed
  • /simple_fusion/image_b_topic: /camera/right/ima...
  • /simple_fusion/image_b_transport: compressed
  • /simple_fusion/initial_pose_mode: 1
  • /simple_fusion/initial_position: [0, 0, 0]
  • /simple_fusion/initial_rpy: [0, 0, 0]
  • /simple_fusion/input_body_pose_topic: /state_estimator_...
  • /simple_fusion/input_imu_topic: /sensors/imu
  • /simple_fusion/output_body_pose_topic: /fovis/pose_in_odom
  • /simple_fusion/output_tf_frame: base_fovis
  • /simple_fusion/output_using_imu_time: False
  • /simple_fusion/publish_feature_analysis: True
  • /simple_fusion/verbose: False
  • /simple_fusion/which_vo_options: 2
  • /simple_fusion/write_pose_to_file: False
  • /state_estimator_pronto/active_sensors: ['ins', 'legodo',...
  • /state_estimator_pronto/bias_lock/publish_head_on_message: False
  • /state_estimator_pronto/bias_lock/roll_forward_on_receive: True
  • /state_estimator_pronto/bias_lock/secondary_topic: /joint_states
  • /state_estimator_pronto/bias_lock/topic: /sensors/imu
  • /state_estimator_pronto/bias_lock/torque_threshold: 12.5
  • /state_estimator_pronto/bias_lock/utime_offset: 0
  • /state_estimator_pronto/bias_lock/velocity_threshold: 0.006
  • /state_estimator_pronto/filter_state_topic: filter_state
  • /state_estimator_pronto/fovis/downsample_factor: 1
  • /state_estimator_pronto/fovis/mode: pos_orient
  • /state_estimator_pronto/fovis/publish_head_on_message: False
  • /state_estimator_pronto/fovis/r_px: 0.001
  • /state_estimator_pronto/fovis/r_py: 0.001
  • /state_estimator_pronto/fovis/r_pz: 0.002
  • /state_estimator_pronto/fovis/r_rxy: 20
  • /state_estimator_pronto/fovis/r_ryaw: 1
  • /state_estimator_pronto/fovis/r_vang: 0.5
  • /state_estimator_pronto/fovis/r_vxyz: 0.003
  • /state_estimator_pronto/fovis/roll_forward_on_receive: True
  • /state_estimator_pronto/fovis/topic: /fovis/delta_vo
  • /state_estimator_pronto/fovis/utime_offset: -343111
  • /state_estimator_pronto/init_message/channel: filter_initializer
  • /state_estimator_pronto/init_sensors: ['ins', 'pose_meas']
  • /state_estimator_pronto/ins/accel_bias_initial: [0.0, 0.0, 0.0]
  • /state_estimator_pronto/ins/accel_bias_recalc_at_start: True
  • /state_estimator_pronto/ins/accel_bias_update_online: False
  • /state_estimator_pronto/ins/downsample_factor: 1
  • /state_estimator_pronto/ins/frame: imu_link
  • /state_estimator_pronto/ins/gyro_bias_initial: [0.0, 0.0, 0.0]
  • /state_estimator_pronto/ins/gyro_bias_recalc_at_start: True
  • /state_estimator_pronto/ins/gyro_bias_update_online: False
  • /state_estimator_pronto/ins/ignore_accel: False
  • /state_estimator_pronto/ins/max_initial_gyro_bias: 0.015
  • /state_estimator_pronto/ins/num_to_init: 500
  • /state_estimator_pronto/ins/publish_head_on_message: True
  • /state_estimator_pronto/ins/q_accel: 0.35
  • /state_estimator_pronto/ins/q_accel_bias: 0.001
  • /state_estimator_pronto/ins/q_gyro: 0.5
  • /state_estimator_pronto/ins/q_gyro_bias: 0.001
  • /state_estimator_pronto/ins/roll_forward_on_receive: True
  • /state_estimator_pronto/ins/timestep_dt: 0.0025
  • /state_estimator_pronto/ins/topic: /sensors/imu
  • /state_estimator_pronto/ins/utime_offset: 0
  • /state_estimator_pronto/legodo/debug: False
  • /state_estimator_pronto/legodo/downsample_factor: 1
  • /state_estimator_pronto/legodo/legodo_mode: 2
  • /state_estimator_pronto/legodo/publish_head_on_message: False
  • /state_estimator_pronto/legodo/r_vx: 0.05
  • /state_estimator_pronto/legodo/r_vy: 0.05
  • /state_estimator_pronto/legodo/r_vz: 0.15
  • /state_estimator_pronto/legodo/roll_forward_on_receive: True
  • /state_estimator_pronto/legodo/stance_alpha: 0.02
  • /state_estimator_pronto/legodo/stance_hysteresis_delay_high: 250
  • /state_estimator_pronto/legodo/stance_hysteresis_delay_low: 250
  • /state_estimator_pronto/legodo/stance_hysteresis_high: 60
  • /state_estimator_pronto/legodo/stance_hysteresis_low: 10
  • /state_estimator_pronto/legodo/stance_mode: 0
  • /state_estimator_pronto/legodo/stance_regression_beta: [3.7252, -0.01807...
  • /state_estimator_pronto/legodo/stance_regression_beta_size: 8
  • /state_estimator_pronto/legodo/stance_threshold: 82
  • /state_estimator_pronto/legodo/time_offset: 0.0
  • /state_estimator_pronto/legodo/topic: /joint_states
  • /state_estimator_pronto/legodo/utime_offset: 0
  • /state_estimator_pronto/legodo/verbose: False
  • /state_estimator_pronto/pose_frame_id: odom
  • /state_estimator_pronto/pose_meas/downsample_factor: 1
  • /state_estimator_pronto/pose_meas/mode: position_orient
  • /state_estimator_pronto/pose_meas/no_corrections: 100
  • /state_estimator_pronto/pose_meas/publish_head_on_message: False
  • /state_estimator_pronto/pose_meas/r_chi: 3.0
  • /state_estimator_pronto/pose_meas/r_xyz: 0.01
  • /state_estimator_pronto/pose_meas/roll_forward_on_receive: True
  • /state_estimator_pronto/pose_meas/topic: /state_estimator/...
  • /state_estimator_pronto/pose_meas/utime_offset: 0
  • /state_estimator_pronto/pose_topic: pose
  • /state_estimator_pronto/publish_filter_state: False
  • /state_estimator_pronto/publish_pose: True
  • /state_estimator_pronto/publish_tf: True
  • /state_estimator_pronto/republish_sensors: False
  • /state_estimator_pronto/scan_matcher/downsample_factor: 1
  • /state_estimator_pronto/scan_matcher/mode: position_orient
  • /state_estimator_pronto/scan_matcher/publish_head_on_message: False
  • /state_estimator_pronto/scan_matcher/r_pxy: 0.004
  • /state_estimator_pronto/scan_matcher/r_pz: 0.004
  • /state_estimator_pronto/scan_matcher/r_rxy: 50.0
  • /state_estimator_pronto/scan_matcher/r_ryaw: 52.0
  • /state_estimator_pronto/scan_matcher/r_vxy: 0.06
  • /state_estimator_pronto/scan_matcher/r_vz: 0.04
  • /state_estimator_pronto/scan_matcher/relative_pose: True
  • /state_estimator_pronto/scan_matcher/roll_forward_on_receive: True
  • /state_estimator_pronto/scan_matcher/topic: /aicp/pose_corrected
  • /state_estimator_pronto/scan_matcher/utime_offset: 0
  • /state_estimator_pronto/sigma0/Delta_xy: 0.05
  • /state_estimator_pronto/sigma0/Delta_z: 0.05
  • /state_estimator_pronto/sigma0/accel_bias: 0
  • /state_estimator_pronto/sigma0/chi_xy: 3.0
  • /state_estimator_pronto/sigma0/chi_z: 3.0
  • /state_estimator_pronto/sigma0/gyro_bias: 0
  • /state_estimator_pronto/sigma0/vb: 0.15
  • /state_estimator_pronto/tf_child_frame_id: base_pronto
  • /state_estimator_pronto/twist_frame_id: base
  • /state_estimator_pronto/twist_topic: twist
  • /state_estimator_pronto/utime_history_span: 60000000.0
  • /state_estimator_pronto/vicon/apply_frame: False
  • /state_estimator_pronto/vicon/downsample_factor: 10
  • /state_estimator_pronto/vicon/mode: position_orient
  • /state_estimator_pronto/vicon/publish_head_on_message: False
  • /state_estimator_pronto/vicon/r_chi: 3.0
  • /state_estimator_pronto/vicon/r_xyz: 0.01
  • /state_estimator_pronto/vicon/roll_forward_on_receive: True
  • /state_estimator_pronto/vicon/topic: /vicon/anymal/inv...
  • /state_estimator_pronto/vicon/utime_offset: 0
  • /state_estimator_pronto/x0/angular_velocity: [0, 0, 0]
  • /state_estimator_pronto/x0/position: [0, 0, 0]
  • /state_estimator_pronto/x0/rpy: [0, 0, 0]
  • /state_estimator_pronto/x0/velocity: [0, 0, 0]
  • /state_estimator_trajectory_server/source_frame_name: /base
  • /state_estimator_trajectory_server/target_frame_name: /odom
  • /state_estimator_trajectory_server/trajectory_publish_rate: 10
  • /use_sim_time: True

NODES
/
alaserMapping (aloam_velodyne/alaserMapping)
alaserOdometry (aloam_velodyne/alaserOdometry)
alom_pose_publisher (pronto_quadra/alom_pose_publisher.py)
ascanRegistration (aloam_velodyne/ascanRegistration)
base_link_rename (tf/static_transform_publisher)
base_olam_publisher (pronto_quadra/base_aloam_publisher.py)
fl_link_rename (tf/static_transform_publisher)
fovis_trajectory_server (hector_trajectory_server/hector_trajectory_server)
fr_link_rename (tf/static_transform_publisher)
ground_truth_publisher (pronto_quadra/ground_truth_path.py)
hector_trajectory_server (hector_trajectory_server/hector_trajectory_server)
hl_link_rename (tf/static_transform_publisher)
hr_link_rename (tf/static_transform_publisher)
odom_to_map (tf/static_transform_publisher)
pronto_quadra_node (pronto_quadra/pronto_quadra_node)
pronto_trajectory_server (hector_trajectory_server/hector_trajectory_server)
quadra_state_publisher (robot_state_publisher/robot_state_publisher)
rviz (rviz/rviz)
simple_fusion (fovis_ros/simple_fusion)
state_estimator_trajectory_server (hector_trajectory_server/hector_trajectory_server)
velodyne_to_camera_init (tf/static_transform_publisher)
world_to_map (tf/static_transform_publisher)

ROS_MASTER_URI=http://localhost:11311

process[quadra_state_publisher-1]: started with pid [15653]
process[rviz-2]: started with pid [15654]
process[pronto_trajectory_server-3]: started with pid [15659]
[ WARN] [1604655376.103838802]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF.
process[base_link_rename-4]: started with pid [15662]
process[fl_link_rename-5]: started with pid [15669]
process[fr_link_rename-6]: started with pid [15674]
process[hl_link_rename-7]: started with pid [15677]
process[hr_link_rename-8]: started with pid [15686]
[ INFO] [1604655376.227601207]: Waiting for tf transform data between frames /odom and base_pronto to become available
process[odom_to_map-9]: started with pid [15692]
process[world_to_map-10]: started with pid [15697]
process[velodyne_to_camera_init-11]: started with pid [15703]
process[base_olam_publisher-12]: started with pid [15713]
process[alom_pose_publisher-13]: started with pid [15717]
process[ground_truth_publisher-14]: started with pid [15718]
process[hector_trajectory_server-15]: started with pid [15721]
process[pronto_quadra_node-16]: started with pid [15722]
process[simple_fusion-17]: started with pid [15727]
process[state_estimator_trajectory_server-18]: started with pid [15728]
process[fovis_trajectory_server-19]: started with pid [15735]
process[ascanRegistration-20]: started with pid [15744]
process[alaserOdometry-21]: started with pid [15748]
Robot quadra, InverseDynamics::InverseDynamics()
Compiled with Eigen debug active
process[alaserMapping-22]: started with pid [15750]
[ StanceEst ] Mode: THRESHOLD
[ StanceEst ] Force threshold: 82
[ KSE ] Mode changed to: 2
[ KSE ] Impact sigma
[ KSE ] Weighted avg
[ INFO] [1604655376.681997008, 2.893000000]: Waiting for tf transform data between frames /map and /loam_base to become available
[ERROR] [1604655376.747675993]: "imu_link" passed to lookupTransform argument target_frame does not exist.
[ INFO] [1604655376.815596586, 2.898000000]: Waiting for tf transform data between frames /odom and /base to become available
2 is which_vo_options
[ INFO] [1604655376.870834553, 2.901000000]: Waiting for tf transform data between frames /odom and base_fovis to become available
0 is orientation_fusion_mode
1 is initial_pose_mode
/home/shyamsrinivasan/auxilary_pkg_build/src/state-estimation/fovis_ros/fovis_ros/config/robot/quadra.yaml is config_filename [full path]
output_tf_frame: publish odom to base_fovis
Write pose to file: false
Received Body to Camera rotation [RPY, deg]: 78.2498 -180 88.603
0.371
0.018
0.162 [B_r_BC]
-0.541813 0.555213 -0.451611 0.44071 B_q_BC [xyzw]
-0.541813 0.555213 -0.451611 0.44071 B_q_BC [xyzw]
Loading stereo configuration0
Focal_length_x: 424.296
Loading stereo configuration1
Focal_length_x: 424.296
Stereo baseline: 0.05
libGL error: failed to create drawable
[ WARN] [1604655377.852336274, 3.008000000]: time Map corner and surf num are not enough
[ INFO] [1604655380.847128656, 3.353000000]: Finished waiting for tf, waited 0.455000 seconds
[ INFO] [1604655381.690578345, 3.440000000]: Finished waiting for tf, waited 0.547000 seconds
Disparity Filter is ENABLED
Depth Filter is DISABLED
FusionCore Constructed
[ INFO] [1604655382.286523495, 3.502000000]: output_using_imu_time = 0
[ INFO] [1604655382.288328727, 3.502000000]: /camera/left/image_rect is the image_a topic subscription [for stereo]
[ INFO] [1604655382.289285108, 3.502000000]: compressed is the image_a_transport transport
[ INFO] [1604655382.291070356, 3.502000000]: /camera/right/image_rect is the image_b topic subscription [for stereo]
[ INFO] [1604655382.293890992, 3.502000000]: compressed is the image_b_transport transport
[ERROR] [1604655382.339033496, 3.508000000]: Tried to advertise a service that is already advertised in this node [/simple_fusion/compressed/set_parameters]
[ INFO] [1604655382.374125410, 3.512000000]: StereoOdom Constructed
IMU callback: initializing pose using IMU (roll and pitch)
Initialized pose from Transform
t [m]: 0 0 0
rpy [deg]: 0.119841, 0.788585, 1.48442
[ INFO] [1604655382.808334009, 3.575000000]: VO frame received [0]
[ INFO] [1604655382.809523142, 3.575000000]: image_a [mono8]
[ INFO] [1604655382.811238438, 3.575000000]: Second Image Encoding: mono8 WxH: 848 480
utime_prev is zero [at init]
no matches, will not publish or output
[ INFO] [1604655383.890159196, 3.703000000]: Finished waiting for tf, waited 0.802000 seconds
[ DataLogger ] Request to create prontopos.txt
[ DataLogger ] Setting path to: /home/shyamsrinivasan/dls_logs/prontopos.txt
[ DataLogger ] Start from zero: false
[ DataLogger ] Is first time: true
[ DataLogger ] Request to create prontovel.txt
[ DataLogger ] Setting path to: /home/shyamsrinivasan/dls_logs/prontovel.txt
[ DataLogger ] Start from zero: false
[ DataLogger ] Is first time: true
[ DataLogger ] Request to create velsigma.txt
[ DataLogger ] Setting path to: /home/shyamsrinivasan/dls_logs/velsigma.txt
[ DataLogger ] Start from zero: false
[ DataLogger ] Is first time: true
[ INFO] [1604655385.651400536, 3.903000000]: Publishing TF with frame_id: "odom" and child_frame_id: "base_pronto"
[ INFO] [1604655385.671052334, 3.903000000]: Sensor id: bias_lock
[ INFO] [1604655385.671192922, 3.903000000]: Roll forward: yes
[ INFO] [1604655385.671256147, 3.903000000]: Publish head: no
[ INFO] [1604655385.671298394, 3.903000000]: Topic: /sensors/imu
bias_lock subscribing to /sensors/imu with MsgT = sensor_msgs::Imu_<std::allocator >
[ INFO] [1604655385.680336268, 3.903000000]: bias_lock subscribing to /joint_states with SecondaryMsgT = sensor_msgs::JointState_<std::allocator >
[ VisualOdometryModule ] Covariance:
1e-06 0 0 0 0 0
0 1e-06 0 0 0 0
0 0 4e-06 0 0 0
0 0 0 0.121847 0 0
0 0 0 0 0.121847 0
0 0 0 0 0 0.000304617
[ INFO] [1604655385.693565792, 3.903000000]: Sensor id: fovis
[ INFO] [1604655385.693621653, 3.903000000]: Roll forward: yes
[ INFO] [1604655385.693650176, 3.903000000]: Publish head: no
[ INFO] [1604655385.693683328, 3.903000000]: Topic: /fovis/delta_vo
fovis subscribing to /fovis/delta_vo with MsgT = pronto_msgs::VisualOdometryUpdate_<std::allocator >
[ERROR] [1604655385.728588407, 3.903000000]: "imu_link" passed to lookupTransform argument target_frame does not exist.
[ INFO] [1604655394.793469107, 4.903000000]: num_to_init: 500
[ INFO] [1604655394.802050976, 4.904000000]: accel_bias_initial: 0 0 0
[ INFO] [1604655394.802976902, 4.904000000]: gyro_bias_initial: 0 0 0
[ INFO] [1604655394.821648396, 4.906000000]: Sensor id: ins
[ INFO] [1604655394.821719564, 4.906000000]: Roll forward: yes
[ INFO] [1604655394.821747439, 4.906000000]: Publish head: yes
[ INFO] [1604655394.821771774, 4.906000000]: Topic: /sensors/imu
ins subscribing to /sensors/imu with MsgT = sensor_msgs::Imu_<std::allocator >
[ INFO] [1604655394.824763812, 4.907000000]: Sensor init id: ins
[ INFO] [1604655394.824821844, 4.907000000]: Topic: /sensors/imu
ins subscribing to /sensors/imu with MsgT = sensor_msgs::Imu_<std::allocator >
[ INFO] [1604655394.835946563, 4.908000000]: Sensor id: legodo
[ INFO] [1604655394.836137905, 4.908000000]: Roll forward: yes
[ INFO] [1604655394.836212779, 4.908000000]: Publish head: no
[ INFO] [1604655394.836272204, 4.908000000]: Topic: /joint_states
legodo subscribing to /joint_states with MsgT = sensor_msgs::JointState_<std::allocator >
[ INFO] [1604655394.852214341, 4.909000000]: Sensor init id: pose_meas
[ INFO] [1604655394.852323192, 4.909000000]: Topic: /state_estimator/pose_in_odom
pose_meas subscribing to /state_estimator/pose_in_odom with MsgT = geometry_msgs::PoseWithCovarianceStamped_<std::allocator >`

Twist covariance bugfix

@mcamurri

I pushed a small bugfix to the twist covariance publishing to the add-rotational-acceleration branch. You may want to apply this to your refactored branch as well.

State estimation of quadruped robot with joint angles and foot contact sensors

Hi,

Thanks for bringing this project to the community. I was able run the anymal robot state estimation example which required torque measurements of the robot. However we are experimenting with quadruped robot with just joint encoders and foot contact sensors.

I am wondering whether pronto can be used in such settings for quadrupedal robot ?

Does the project support the state estimation of realsense camera?

Hi!

I only have a realsense camera D455 now. This project provides a pronto_anymal_example for testing. I have built it, but I found that it needs a lot of sensors (camera, lidar, odometry, etc.).

Can you give me some advice for only using a realsense camera? THX!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.