Code Monkey home page Code Monkey logo

walking-teleoperation's Introduction

walking-teleoperation

This repository contains software related to walking and teleoperation.

The whole-body teleoperation architecture is shown as follows. The human user receives visual feedback from the robot environment by streaming the robot camera images through the Oculus Headset. The robot hands are controlled via the Joypads. The linear and the angular velocities of the human are obtained from the Cyberith Virtualizer VR Treadmill. The operator can wear a sensorized full body suit to obtain the kinematic information of various human links with respect to the inertial frame of reference.

teleoperationArchitecture

Software related to walking and teleoperation.

The suite includes:

  • Oculus_module: this is the module that implements retargeting of the upper body end_effectors.
  • Virtualizer_module: this module allows using the Cyberith virtualizer as a joypad interface for walking commands.
  • Utils_module: a module that can be useful to implement some common functionality
  • Xsens_module: a module that gets joint values from human state provider and maps them to the walking controller input

The technical description of the suit and the frame descriptions are documented here.

Overview

๐Ÿ“™ The general idea

This software allows teleoperation of a biped humanoid robot,e.g., iCub, with a walking controller that expects speed and orientation of the robot locomotion on a horizontal plane and commands for upper body control of the humanoid robot. It implements the following architecture:

  • Oculus module: that captures the end effectors of the hands and head of the human operator and commands the respective movement (if only using Oculus VR);
  • Virtualizer module: [Optional] grasps the human walking teleoperation commands (orientation and Speed).
  • Xsens module: [optional] maps the robot's joints values to the controller

๐Ÿ“„ Dependencies

The description of dependencies are located here.

This guide is only for teleoperation dependencies on a Windows machine and it includes the guide to install Oculus module and Virtualizer module SDKs.

If you want to run the teleoperation scenario with Xsens MVN technologies, you need to enable the option human-dynamics in robotology/superbuild and install all the dependencies described there.

Besides, you need to have a Linux machine for Walking-controllers module described here.

๐Ÿ”จ Build the suite

Linux/macOS

git clone https://github.com/robotology/walking-teleoperation.git
cd walking-controllers
mkdir build && cd build
cmake ../
make
[sudo] make install

Windows

Follow the same instructions from the Powershell. One can also opt to use the CMake gui application.

๐Ÿƒ Using the software with iCub

Import the DCM_WALKING_COORDINATOR_+_RETARGETING to the yarpmanager applications. The current set-up allows running the module either on windows or from a Linux machine through yarprun --server /name_of_server. The preference is the following.

  • Turn on the robot, through the Linux machine.
  • On the windows machine, use the same network.
  • Do a yarp namespace /the_robot_network_namespace
  • Do a yarprun --server /icub-virtualizer
  • Calibrate the virtualizer and the oculus
  • At this point, the operator should be in the virtualizer wearing the oculus and in the zero configuration, i.e. zero orientation in the virtualizer, facing the same direction as the robot and standing still.
  • On the Linux server, and from the yarpmanager run one of the applications DCM_walking_retargeting,DCM_walking_retargeting (Virtualizer) ,DCM_walking_retargeting_(Xsens), or DCM_walking_retargeting_(Virtualizer_Xsens) depending on the experiment you want to perform.
  • On the same application window, connect all the ports.
  • On the windows machine, adjust the image size and positioning (field of view) of the Oculus (to zoom out press ctrl+z, to move the right display use right ctrl+direction, to move the left display use left ctrl+direction ).
  • On the Linux machine to adjust the image quality, use the frameGrapperGui in the calib_cams application.

โš ๏ธ Warning

Currently, the supported robots are only:

  • iCubGenova04
  • iCubGenova02

๐Ÿ‘“ Reference paper

You can read more about the work here. If you're going to use this package for your work, please quote it within any resulting publication:

@inproceedings{Whole-Body-2019,
author = {Darvish, Kourosh and Tirupachuri, Yeshasvi and Romualdi, Giulio and Rapetti, Lorenzo and Ferigo, Diego and Chavez, Francisco Javier Andrade and Pucci, Daniele},
 title = {Whole-Body Geometric Retargeting for Humanoid Robots},
booktitle = {Proceedings of the 2019 IEEE/RAS International Conference on Humanoid Robots (Humanoids)},
year = {2019},
month={October},
address = {Toronto, Canada},
}

๐Ÿ’ต License

The walking-teleoperation repository is licensed under either the GNU Lesser General Public License v3.0 :

https://www.gnu.org/licenses/lgpl-3.0.html

or the GNU Lesser General Public License v2.1 :

https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html

at your option.

To get the updated information about the dependencies branches and how to run, please check the wiki page of this repository.

walking-teleoperation's People

Contributors

kouroshd avatar giulioromualdi avatar mebbaid avatar danielepucci avatar traversaro avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.