Skip to content

Commit

Permalink
reference my paper
Browse files Browse the repository at this point in the history
  • Loading branch information
evelyd committed Sep 24, 2024
1 parent b081683 commit 8bf5fe2
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 8 deletions.
3 changes: 2 additions & 1 deletion examples/MANN/velMANNAutoregressive.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
"cells": [
{
"cell_type": "markdown",
"id": "808dd4f3",
"metadata": {},
"source": [
"# velMANNAutoregressive\n",
"This notebook contains the code showing how to use velMANNAutoregressive to generate a walking trajectory for the ergoCub humanoid robot. \n",
"\n",
"If you are interested in some details of the algorithm, please refer to the paper: [ADHERENT: Learning Human-like Trajectory Generators for Whole-body Control of Humanoid Robots](https://github.com/ami-iit/paper_viceconte_2021_ral_adherent).\n",
"If you are interested in some details of the algorithm, please refer to the paper: [Trajectory Generation with Physics-Informed Learning and Drift Mitigation](https://github.com/ami-iit/paper_delia_2024_ral_physics-informed_trajectory_generation).\n",
"\n",
"## Import all the required packages\n",
"In this section we import all the required packages. In particular, we need `iDynTree` to correctly visualize the robot, `numpy` to perform some basic operations, `manifpy` to perform some basic operations on manifolds, `resolve_robotics_uri_py` to correctly locate the `ergoCub` model. Finally `bipedal_locomotion_framework` implements the MANN network."
Expand Down
2 changes: 1 addition & 1 deletion examples/MANN/velMANNTrajectoryGenerator.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"# velMANNTrajectoryGenerator\n",
"This notebook contains the code showing how to use velMANNTrajectoryGenerator to generate a walking trajectory for the ergoCub humanoid robot. \n",
"\n",
"If you are interested in some details of the algorithm, please refer to the paper: [ADHERENT: Learning Human-like Trajectory Generators for Whole-body Control of Humanoid Robots](https://github.com/ami-iit/paper_viceconte_2021_ral_adherent).\n",
"If you are interested in some details of the algorithm, please refer to the paper: [Trajectory Generation with Physics-Informed Learning and Drift Mitigation](https://github.com/ami-iit/paper_delia_2024_ral_physics-informed_trajectory_generation).\n",
"\n",
"Differently from the `velMANNAutoregressive`, `velMANNTrajectoryGenerator` class can be used to plan a trajectory that can be fed into an MPC. Indeed it is possible to sample the contact and extract a `ContactPhaseList` that can be used to initialize the MPC. Moreover the `velMANNTrajectoryGenerator` can be reset to any point of the trajectory, allowing to replan at will.\n",
"\n",
Expand Down
13 changes: 7 additions & 6 deletions src/ML/include/BipedalLocomotion/ML/velMANNTrajectoryGenerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,13 @@ struct velMANNTrajectoryGeneratorOutput
/**
* velMANNTrajectoryGenerator is a class that uses velMANNAutoregressive to generate a kinematically
* feasible trajectory for humanoid robots. The planner will generate a trajectory which duration is
* equal to `slow_down_factor * time_horizon` seconds.
* equal to `slow_down_factor * time_horizon` seconds. This class differs from the MANNTrajectoryGenerator
* class in that the input and output features of the learned model are velocity-based rather than
* position-based. The postprocessing, using the 3D velocity output features of the learned model, allows
* more modularity in the trajectory generation. More details are available in the paper mentioned below.
* @subsection mann_trajectory_generator velMANN trajectory generator
* The diagram illustrates the utilization of the velMANNAutoregressive within the
* velMANNTrajectoryGenerator class.
* <img src="https://user-images.githubusercontent.com/16744101/239922103-1f23e08b-0091-475a-8879-61af66399c62.png" alt="mann_trajectory_generator">
* To initialize the generator, the user needs to set the initial
* state using the velMANNTrajectoryGenerator::setInitialState method. The
* velMANNTrajectoryGeneratorInput, provided by the user, serves as the input for the
Expand All @@ -79,10 +81,9 @@ struct velMANNTrajectoryGeneratorOutput
* velMANNAutoregressive at the designated merge point. Every time the velMANNAutoregressive::advance()
* function is invoked by the velMANNTrajectoryGenerator, the autoregressive state is stored for future
* reference.
* @note The implementation of the class follows the work presented in "P. M. Viceconte et al.,
* ADHERENT: Learning Human-like Trajectory Generators for Whole-body Control of Humanoid Robots,
* in IEEE Robotics and Automation Letters, vol. 7, no. 2, pp. 2779-2786, April 2022,
* doi: 10.1109/LRA.2022.3141658." https://doi.org/10.1109/LRA.2022.3141658
* @note The implementation of the class follows the work presented in "Trajectory Generation with
* Physics-Informed Learning and Drift Mitigation", available at
* https://github.com/ami-iit/paper_delia_2024_ral_physics-informed_trajectory_generation.
*/
class velMANNTrajectoryGenerator
: public System::Advanceable<velMANNTrajectoryGeneratorInput, velMANNTrajectoryGeneratorOutput>
Expand Down

0 comments on commit 8bf5fe2

Please sign in to comment.