Demo binary and related libraries to run the Pronto state estimator on the ANYmal B robot (simplified version).
Tested on ROS Noetic and Ubuntu 20.04 Focal Fossa. Compatibility with any other operating system or ROS version is not guaranteed nor officially supported. Our build server ensures that the example can be built using Ubuntu 18.04/ROS Melodic and Ubuntu 20.04/ROS Noetic.
This repository includes three catkin packages:
anymal_b_robcogen
kinematics/dynamics libraries generated with RobCoGen from the public URDF of the ANYmal B robot. For more info on how to generate the code for your quadruped robot, check out the quadruped_robcogen package.pronto_anymal_b_commons
implementation (using the package above) of the kinematics/dynamics interfaces to perform the estimation. The interfaces do not depend on RobCoGen, you can implement them with any other library like RBDL or Pinocchio. Here we use RobCoGen though.pronto_anymal_b
Pronto ANYmal executable
To run the demo program you need the catkin packages contained in the following repositories:
fovis
the FOVIS visual odometry algorithmfovis_ros
ROS wrapper for FOVIS (branchpronto-fovis
)realsense2_description
description file of the realsense device
The realsense2_description
can be installed automatically via rosdep
or manually from APT:
sudo apt-get install ros-$ROS_DISTRO-realsense2-description
You can automatically clone the other dependencies with the clone_deps.sh
script under the scripts
folder (see below). The cloned dependencies can be built in a catkin workspace
Note: colcon
as a build tool is currently not supported/does not work.
Clone compile the pronto_anymal_b
package:
catkin build pronto_anymal_b
roscd
source setup.bash
To run the Pronto estimator on your PC, download the example dataset with the provided script (if you want to download it manually, it is here) and run it paused:
$(rospack find pronto_anymal_b)/scripts/download_sample_rosbag.sh
rosbag play --clock --pause fsc_minimal_joint_states_short.bag
in a separate terminal, launch the demo launcher:
roslaunch pronto_anymal_b demo.launch
Finally, press the space bar on the first terminal to start the rosbag replay.
This will run Pronto in inertial-kinematics + visual odometry mode and visualize it in RViz:
You can change the parameters of the Pronto estimator in the state_estimator.yaml
configuration file under the pronto_anymal/config
folder.
To integrate your own Visual and LIDAR Odometry packages, just make them produce the same message type that the fovis
and scan_matcher
modules are expect to produce.
Even if the VO module is called fovis
, Pronto does not depend on FOVIS and can accept any relative measurement of type pronto_msgs/VisualOdometryUpdate
. In the same way, the LIDAR odometry module has to produce pronto_msgs/LidarOdometryUpdate
messages.
The message definitions are available here.