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
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 = sensormsgs::Imu<std::allocator >
[ INFO] [1604655385.680336268, 3.903000000]: bias_lock subscribing to /joint_states with SecondaryMsgT = sensormsgs::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 = prontomsgs::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 = sensormsgs::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 = sensormsgs::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 = sensormsgs::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 = geometrymsgs::PoseWithCovarianceStamped<std::allocator >
[ INFO] [1604655447.853607630, 10.601000000]: VO frame received [120]
[ INFO] [1604655511.551131209, 17.210000000]: VO frame received [240]
[ WARN] [1604655539.261998271, 20.012000000]: No transform between frames /odom and base_pronto available after 20.012000 seconds of waiting. This warning only prints once.
[ INFO] [1604655574.758592694, 23.694000000]: VO frame received [360]
/state_estimator/pose_in_odom is topic were pronto subscribes to initialise its filter . Try to pass some information regarding initial state of the robot to this topic.
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
`SUMMARY
PARAMETERS
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 = sensormsgs::Imu<std::allocator >
[ INFO] [1604655385.680336268, 3.903000000]: bias_lock subscribing to /joint_states with SecondaryMsgT = sensormsgs::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 = prontomsgs::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 = sensormsgs::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 = sensormsgs::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 = sensormsgs::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 = geometrymsgs::PoseWithCovarianceStamped<std::allocator >
[ INFO] [1604655447.853607630, 10.601000000]: VO frame received [120]
[ INFO] [1604655511.551131209, 17.210000000]: VO frame received [240]
[ WARN] [1604655539.261998271, 20.012000000]: No transform between frames /odom and base_pronto available after 20.012000 seconds of waiting. This warning only prints once.
[ INFO] [1604655574.758592694, 23.694000000]: VO frame received [360]
`