-
Notifications
You must be signed in to change notification settings - Fork 50
Description
Hi Pronto team 👋,
Context
I’m trying to run Pronto (ROS 2 Humble) for biped leg odometry. My robot has:
- 6 DoF per leg (two legs), frames:
base_link → left_foot_1 / right_foot_1 - Binary foot contact from load cells (contact ON/OFF only; no continuous GRF/FT)
- Topics:
/imu/data(sensor_msgs/Imu),/joint_states(sensor_msgs/JointState)
Env: Ubuntu 22.04 + ROS 2 Humble.
What I tried
- Built the
ros2branch and launchedpronto_ros2_nodewith my Xacro and a config enablingins,bias_lock, andlegodo. - Launch succeeds, but
legodoimmediately fails with a URDF parsing error that looks quadruped-specific:
[URDF_MODEL_PARSER]: The Model parsing is performed corctly
[URDF_parser]: The leg LF has 0 joints, its not correct
[URDF_parser]: The leg LH has 0 joints, its not correct
[URDF_parser]: The leg RF has 0 joints, its not correct
[URDF_parser]: The leg RH has 0 joints, its not correct
[URDF_parser]: The leg parsed are 0, its not correct
[pronto]: NOT VALID MODEL
terminate called after throwing an instance of 'std::logic_error'
what(): not correct xacro fileFrom a quick look at the node, the current legodo path seems to assume quadruped naming (LF/LH/RF/RH, 12 joints like *_HAA/HFE/KFE) and errors out if those aren’t found.
Questions
-
Biped support: Is biped leg odometry currently supported in the ROS 2 branch?
- If yes, could you point me to the expected parameter schema (e.g., how to provide left/right foot links and joint name lists) or an example config?
- If not, is biped on the roadmap?
-
Atlas reference: You mentioned that Atlas used Pronto to extract leg odometry.
- Was that done with ROS 1 (Melodic/Noetic) or with this ROS 2 branch?
- Which components were used (e.g., INS + leg odometry, stance estimator), and how were contact signals provided (binary contact vs. force thresholds)?
- Any details on joint naming / URDF expectations and parameter files would be extremely helpful.
-
Best path forward: If ROS 2/biped isn’t turnkey yet, would you accept a PR to make
legodoconfigurable for bipeds? For example:- Add
legodo.robot_type: biped|quadruped - Parameters for
legodo.left/right.foot_linkandlegodo.left/right.joint_names[] - Optional
left/rightcontact topics (Bool) for stance gating - Relax hard-coded LF/LH/RF/RH checks and build Pinocchio chains from the provided joint lists
- Add
I’m happy to prepare a minimal patch / example YAML and test on hardware. If there’s an existing branch or design you’d prefer me to follow, please let me know.
Active sensors in YAML: ["bias_lock","legodo","ins"] (INS works; failure only when legodo is enabled)
Frames: base_link, left_foot_1, right_foot_1
Contacts: two Bool topics (load-cell derived)
Thanks a lot for your time and for making Pronto available. Any guidance or pointers to prior biped setups would be greatly appreciated!