Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gait demo using iCub's walking controllers #51

Open
PeterBowman opened this issue Sep 28, 2021 · 7 comments
Open

Gait demo using iCub's walking controllers #51

PeterBowman opened this issue Sep 28, 2021 · 7 comments
Assignees
Projects

Comments

@PeterBowman
Copy link
Member

PeterBowman commented Sep 28, 2021

On 28th September, an attempt was made to launch a gait trajectory @Luis93A had prepared beforehand using https://github.com/robotology/walking-controllers and reworked TEO's SDF/URDF models. The dataset (involving both legs, both arms and the trunk) and the config file are uploaded here: teo-gait-20210927.zip. We used examplePlaybackThread from the tools repo in order to issue the joint commands.

The plan for said session was as follows:

  • A dry-run of the offline-saved trajectory on the real robot (i.e. while lifted by its crane).
  • Same trajectory, robot actually walking on the floor.
  • Online-generated trajectory using FT sensor feedback.

We only managed to fulfill the first point, at least most of it. A control error was triggered in ID4 (right frontal hip). Currently, we are facing other blocking issues, though:

  • CUI111 (frontal left ankle) was reporting weird values on start, usually around 60-67 degrees. This is probably a known issue, I think we already experienced a similar behavior in the past. On this occasion, Luís noticed the encoder was visibly damaged and it stopped responding altogether (i.e. no response from polling) later during the experiments. I suggest to replace this CUI.
  • Prior to that, maybe related or not, faulty behavior was observed on left leg bus: Suppress TX transfers on CAN bus error state yarp-devices#246 (comment). However, this time no bus restarts seemed to occur, but we did observe an iPOS error pointing at a damaged connection with the relative encoder. If CUI111 is not the underlying cause for this, the wiring and connectors along the left leg bus should be closely inspected.

cc @smcdiaz

@PeterBowman PeterBowman added this to To do in [TEO] via automation Sep 28, 2021
@traversaro
Copy link

Just FYI, another repo you may want to check out (even if I don't know if it is suitable for what you want to do) is https://github.com/ami-iit/bipedal-locomotion-framework .

@PeterBowman
Copy link
Member Author

Thank you, @traversaro! Regarding walking-controllers, we've been inspecting the generated trajectory more closely and found out that certain points result in excessive joint velocities despite having configured much lower velocity limits on the robot. I can see the only places where those limits play a role seem to be the IK controllers: qpOASES and osqp.

@PeterBowman PeterBowman moved this from To do to In progress in [TEO] Oct 1, 2021
@traversaro
Copy link

Hi @PeterBowman ! Feel free to open an issue in the specific repo ( https://github.com/robotology/walking-controllers ) with the details of how you use the software and the specific version you use so that it may be easier for mantainers to comment on this, thanks.

@PeterBowman
Copy link
Member Author

We have tested a new trajectory sampled at 20 ms (scaled down from 10 ms): dataset_gait_20ms.txt. Maximum absolute velocity never exceeds 32 deg/s. It is much smoother than the first one, especially at --timeScale 5.0 (--syncPeriod 0.1), as it can be seen in the recorded videos. We still observe the slack problem in the legs. Unless we "help" TEO a bit (during the execution, apply a vertical force on the waist link on the side of the suspended leg), it tends to hit the floor or slide on it, which ultimately results in control errors and crashes.

This trajectory has been generated assuming a step height of 2.5 cm. We know the maximum is somewhere around 5 cm. It has been suggested to generate a new trajectory with steeper ascents and descents (in order to avoid the sliding effect) using this extended height.

@PeterBowman
Copy link
Member Author

PeterBowman commented Apr 28, 2022

cc @ThomasAiraud
https://github.com/Luis93A/walking-controllers
Luis93A/walking-controllers@f95c2f7

@PeterBowman
Copy link
Member Author

PeterBowman commented May 27, 2022

Nice guides found on Luís' PC:

Additional modified files (besides the repo itself):

There were some extra changes in Luís' fork, I moved them to Luis93A/walking-controllers@master...roboticslab-uc3m:luis-almeida.

@PeterBowman
Copy link
Member Author

I'm uploading here the nice gait log visualizer for TEO coded by @ThomasAiraud: TeoLogVisualizer.zip. I have stripped the /linux-amd64/java/ directory from this ZIP since it's a full JVM and thus way too heavy to be included. The Java version used therein was Temurin-17.0.2+8. I believe that manually installing the appropriate JVM via apt and tweaking the JAVA_HOME and related env vars will be enough to make this work. There is also a full ZIP uploaded to gdrive here.

Guide to Use the TEO Log Visualizer (README.md)

Guide to Use the TEO Log Visualizer

This application is created to visualize the data generated by the WalkingLoggerModule of TEO.

Overview

Directory Structure

📦TeoLogVisualizer
 ┣ 📂linux-amd64
 ┃ ┣ 📂lib
 ┃ ┣ 📂source
 ┃ ┣ 📂java
 ┃ ┗ 📜TeoLogVisualizer
 ┣ 📜README.md
 ┣ 📜Makefile
 ┣ 📜Button.pde
 ┣ 📜Data.pde
 ┣ 📜TeoLogVisualizer.pde
 ┗ 📜Visualizer.pde

📦TeoLogVisualizer is the main project directory containing the Processing files.

📂linux-amd64 is the directory generated by the Processing project for Linux (Intel 64-bit).
It contains the bash file 📜TeoLogVisualizer which run the application.

Installation

Install

  • Download and extract the archive.
  • Run Makefile
        make install

Remove

  • Run Makefile
        make remove

How to Run TEO Log Visualizer

  1. On a terminal run TeoLogVisualizer:

    TeoLogVisualizer
  2. Choose the file with the data you want to visualize from the file explorer.

Graphic User Interface

GUI

Buttons

□ *Clear params*
Clear all the parameters selected and reset the zoom.

□ Add another file
Allow you to select another data file with the file explorer.

□ Match start of movement
Allow you to select another data file with the file explorer.

□ dcm_x
Example of one parameter from the data file, you can select it to display it on the visualizer.

Keyboard key binding

▼ Zoom in
▲ Zoom out
◀ Move to the left
▶ Move to the right

Information displayed

  • The evolution of the selected parameters.
  • The ordinate axis is values of the signal.
  • The abscissa axis is the time of the signal.

Uses of TEO Log Visualizer

What you can do with TEO Log Visualizer is:

  • Display the evolution of parameters from the simulation.
  • Display the evolution of the same paramenters of two different simulation.
  • Put the two different signals of the same parameter in phase and compare them.

Warning

You only can match signals from simulation in which TEO walked.

Merci, Thomas !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
[TEO]
  
In progress
Development

No branches or pull requests

4 participants