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_robcogenkinematics/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_commonsimplementation (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_bPronto ANYmal executable
To run the demo program you need the catkin packages contained in the following repositories:
fovisthe FOVIS visual odometry algorithmfovis_rosROS wrapper for FOVIS (branchpronto-fovis)realsense2_descriptiondescription 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.
