# whole-body-controllers
**Warning! This repository contains reseach material and therefore is under active development. In future releases, `master` branch may break compatibility with older versions of WBC. If you are interested in retrieving a `stable` version of this repo, `fork the repository` or refer to the following releases:**
## Overview
The repository contains `Simulink-based whole-body controllers` developed to control the [iCub](http://www.icub.org/) humanoid robot. It can be imagined as a **starting point** and a **support** repository for a user that intends to develop a new Simulink controller (not necessarily for the iCub robot) in within the framework of the [robotology](https://github.com/robotology) organization. It is worth noting that:
- The controllers stored in this repository are an **overview** of the possibile control frameworks that can be implemented using the `robotology` software infrastructure. Also, the repository contains a [library](library/README.md) of configuration and utility Matlab functions to design simulations with [Gazebo](http://gazebosim.org/) simulator and on the real robot iCub. With the dependency [matlab-whole-body-simulator](https://github.com/dic-iit/matlab-whole-body-simulator) installed, you can also design simulations with a full MATLAB/Simulink simulator and robot visualizer, accessible through the Simulink Library Browser entry `Matlab Whole-body Simulator` (refer to this [README](controllers/floating-base-balancing-torque-control-with-simulator/README.md)).
- The robot dynamics and kinematics is computed run-time by means of [WBToolbox](https://github.com/robotology/wb-toolbox), a Simulink library that wraps [iDyntree](https://github.com/robotology/idyntree). For more information on iDyntree library, see also this [README](https://github.com/robotology/idyntree/blob/master/README.md).
- The Simulink models implement different control strategies both for fixed-base and for floating-base robots. They space from `momentum-based` torque control to `inverse-kinematics-based` position control. Have a look at the [controllers](controllers/README.md) folder for more details.
## Dependencies
This repository depends upon the following Software:
- [CMake](https://cmake.org/), at least version **3.5**.
- [Matlab/Simulink](https://it.mathworks.com/products/matlab.html), default version **R2019b**.
- [WB-Toolbox](https://github.com/robotology/WB-Toolbox) and [blockfactory](https://github.com/robotology/blockfactory).
- [matlab-whole-body-simulator](https://github.com/dic-iit/matlab-whole-body-simulator), at least version **2.0.0**.
- [Gazebo Simulator](http://gazebosim.org/), default version **9.0**.
- [gazebo-yarp-plugins](https://github.com/robotology/gazebo-yarp-plugins).
- [icub-gazebo](https://github.com/robotology/icub-gazebo), [icub-gazebo-wholebody](https://github.com/robotology-playground/icub-gazebo-wholebody) and [icub-models](https://github.com/robotology/icub-models) to access iCub models.
- [whole-body-estimators](https://github.com/robotology/whole-body-estimators) (**Optional**, for using [wholeBodyDynamics](https://github.com/robotology/whole-body-estimators/tree/master/devices/wholeBodyDynamics) device).
- [YARP](https://github.com/robotology/yarp) and [icub-main](https://github.com/robotology/icub-main).
## Installation and usage
The repository is usually tested and developed on **Ubuntu** and **macOS** operating systems. Some functionalities may not work properly on **Windows**.
- It is suggested to install `whole-body-controllers` and most of its dependencies (namely, `YARP`, `icub-main`, `whole-body-estimators`,`icub-gazebo`,`icub-gazebo-wholebody`, `icub-models`, `gazebo-yarp-plugins`, `matlab-whole-body-simulator`, `blockfactory` and `WB-Toolbox` and their dependencies) using the [robotology-superbuild](https://github.com/robotology/robotology-superbuild) (enable `ROBOTOLOGY_ENABLE_DYNAMICS` option). **Warning**: the superbuild can download and compile the repository also without having Matlab, Simulink and Gazebo installed in the PC, but the functionalities of the repo will be considerably reduced! To access all the features of the repo, install all the [dependencies](#dependencies). Also, in the superbuild you have to enable the `ROBOTOLOGY_USES_GAZEBO` and `ROBOTOLOGY_USES_MATLAB` options.
- Otherwise, after installing all the dependencies, **clone the repository** on your pc by running on a terminal `git clone https://github.com/robotology/whole-body-controllers`, or download the repository. Then (on Ubuntu), open a terminal from the folder where you downloaded whole-body-controllers and run:
```
mkdir build
cd build
ccmake ..
```
in the GUI that it will open, set the `CMAKE_PREFIX_PATH` as your desired installation folder. Then, run `make install`.
- Set the environmental variable `YARP_ROBOT_NAME` in your `.bashrc` file (or equivalent) to be the name of the robot you want to control. List of supported robot names:
| Robot Names | Associated URDF Model |
|:-------------:|:-------------:|
| iCubGenova02 | [model.urdf](https://github.com/robotology/icub-models/blob/master/iCub/robots/iCubGenova02/model.urdf) |
| iCubGenova04 | [model.urdf](https://github.com/robotology/icub-models/blob/master/iCub/robots/iCubGenova04/model.urdf) |
| iCubGazeboV2_5|[model.urdf](https://github.com/robotology/icub-models/blob/master/iCub/robots/iCubGazeboV2_5/model.urdf)|
| icubGazeboSim |[model.urdf](https://github.com/robotology/yarp-wholebodyinterface/blob/master/app/robots/icubGazeboSim/model.urdf) |
- **IMPORTANT!** to use the WBC Simulink controllers, it is **required** to add the **installed** `+wbc` and `+wbc/simulink` folders (copied from [+wbc](library/matlab-wbc/+wbc)) to the Matlab path. There are two possible ways to add the folder to the Matlab path:
**1a.** `manually` and `permanently` add the parent folder of the installed `+wbc` (`${CMAKE_INSTALL_PREFIX}/mex`), and its sub-folder `+wbc/simulink` to the Matlab path;
**1b.** run **only once** the [startup_WBC.m](config/startup_WBC.m.in) script, which is installed in your `${BUILD}` folder. In this case, path is **not** permanently added to Matlab, and it is required to **always** start Matlab from the folder where your `pathdef.m` file is (usually `~/Documents/MATLAB`). To facilitate the reaching of the WBC working folder from the folder containing the `pathdef.m`, a `goToWholeBodyController.m` script can be [automatically created](config/createGoToWBC.m) in that folder. Run it to jump to the WBC folder. For further information on the installation procedure see also the [WBToolbox documentation](https://robotology.github.io/wb-toolbox/mkdocs/install/#matlab).
**WARNING**: if the repository is installed through the `robotology-superbuild`, **DO NOT** run the `startup_WBC.m` file but instead run the [startup_robotology_superbuild](https://github.com/robotology/robotology-superbuild/blob/master/cmake/template/startup_robotology_superbuild.m.in) file that comes along with robotology-superbuild installation.
- **Note**: to use any function inside the package [matlab-wbc/+wbc](library/matlab-wbc/+wbc), add the `wbc` prefix to the function name when the function is invoked, i.e. `[outputs] = wbc.myFunction(inputs)`. More information on packages can be found in the [Matlab documentation](https://it.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html).
- The folder `${CMAKE_INSTALL_PREFIX}/mex` having been already added to the Matlab path, there are no other requirements for using the simulation library from `matla-whole-body-simulator`.
## Troubleshooting
Please refer to the [WBToolbox troubleshooting documentation](https://robotology.github.io/wb-toolbox/mkdocs/troubleshooting/).
## Relevant folders of the repo
- **config**: a collection of scripts to correctly configure this repo. [[README]](config/README.md)
- **controllers**: Simulink whole-b
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Simulink-基于Simulink实现的人形机器人全身控制系统-附项目源码-优质项目实战.zip (339个子文件)
.clang-format 3KB
RegisterMdl.cmake 2KB
simulinkStaticGUI.fig 13KB
startup_WBC.m.in 3KB
driver.cpp.in 1KB
CreateAutogeneratedCodeTargets.cmake.in 1KB
homePoseBalancing.ini 11KB
homePoseBalancing.ini 9KB
homePoseBalancing.ini 8KB
homePoseBalancing.ini 7KB
homePoseBalancing.ini 6KB
homePoseBalancing.ini 5KB
homePoseBalancing.ini 5KB
homePoseBalancing.ini 3KB
homePoseBalancingLeftFoot.ini 3KB
homePoseBalancingRedBall.ini 3KB
homePoseBalancingRedBall.ini 3KB
homePoseBalancingLeftFoot.ini 3KB
homePoseBalancingRedBall.ini 3KB
homePoseBalancingRedBall.ini 3KB
homePoseBalancingRedBall.ini 3KB
homePoseBalancingRedBall.ini 3KB
homePoseBalancingLeftFoot.ini 3KB
homePoseBalancingLeftFoot.ini 3KB
homePoseBalancingLeftFoot.ini 3KB
homePoseBalancingRightFoot.ini 3KB
homePoseBalancingLeftFoot.ini 3KB
homePoseBalancingLeftFoot.ini 3KB
homePoseBalancingTwoFeet.ini 3KB
homePoseCalib.ini 3KB
homePoseBalancingTwoFeet.ini 3KB
homePoseBalancingTwoFeet.ini 3KB
homePoseBalancingTwoFeet.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseBalancingLegsZero.ini 2KB
homePoseWalking.ini 2KB
homePoseWholeBodyImpedance.ini 2KB
homePoseBalancingTwoFeet.ini 2KB
homePoseWholeBodyImpedance.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseBalancingTwoFeet.ini 2KB
homePoseBalancingTwoFeet.ini 2KB
homePoseBalancingTwoFeet.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseBalancingHeadTorsoLegsZero.ini 2KB
homePoseBalancingTorsoHeadZero.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseBalancingTorsoHeadZero.ini 2KB
homePoseBalancingLegsZero.ini 2KB
homePoseFineCalibration.ini 2KB
homePoseBalancingChair.ini 2KB
homePoseYogaPP.ini 2KB
homePoseBalancingLegsZero.ini 2KB
homePoseYogaPP.ini 2KB
homePoseBalancingLegsZero.ini 2KB
homePoseBalancingChair.ini 2KB
homePoseYogaPP.ini 2KB
homePoseYogaPP.ini 2KB
homePoseBalancingTwoFeet.ini 2KB
homePoseBalancingRedBall.ini 2KB
homePoseYogaPP.ini 2KB
homePoseBalancingChair.ini 2KB
homePoseYogaPP.ini 2KB
homePoseBalancingLegsZero.ini 2KB
homePoseWholeBodyImpedance.ini 2KB
homePoseBalancing.ini 1KB
homePoseBalancingRightFoot.ini 1KB
homePoseBalancingLeftFoot.ini 1KB
homePoseBalancingTwoFeet.ini 1KB
homePoseYogaPP.ini 1KB
torqueBalancing.ini 767B
torqueBalancingTwoFeet.ini 767B
torqueBalancing.ini 766B
torqueBalancingLeftFoot.ini 623B
torqueBalancingLeftFoot.ini 623B
homePoseBalancing.ini 612B
torqueBalancingLeftFootYoga.ini 554B
torqueBalancing.ini 537B
torqueBalancingTwoFeet.ini 532B
torqueBalancingTwoFeet.ini 532B
torqueBalancingTwoFeet.ini 532B
torqueBalancingTwoFeet.ini 532B
torqueBalancingTwoFeet.ini 532B
torqueBalancing.ini 521B
torqueBalancing.ini 496B
torqueBalancingLeftFoot.ini 490B
torqueBalancingLeftFoot.ini 487B
torqueBalancingLeftFoot.ini 487B
torqueBalancingLeftFoot.ini 487B
torqueBalancingLeftFoot.ini 486B
torqueBalancing.ini 433B
torqueBalancing.ini 425B
twoFeetBalancingGains.ini 170B
twoFeetBalancingGains.ini 170B
twoFeetBalancingGains.ini 48B
twoFeetBalancingGains.ini 48B
共 339 条
- 1
- 2
- 3
- 4
资源评论
极智视界
- 粉丝: 3w+
- 资源: 1758
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Springboot+Vue+Mysql 实现的大学生就业需求分析系统毕业设计
- 无标题去去去去去去去去去去球器前期
- 基于Springboot+Vue+Mysql的疗养院管理系统的设计与实现毕业设计
- 基于Springboot+Vue+Mysql的房屋交易平台的设计与实现毕业设计
- 技术美术作品集:基于傅里叶变换FFT的海面波浪模拟(Unity版本)Computer Shader(毕设&课设&实训&作业&竞赛
- 一款headers cookies payload parms formdata文本转化字典的工具,html格式化,JSON格式
- FileZilla for mac Ftp工具
- 安卓MPAndroidChart项目.zip(毕设&课设&实训&大作业&竞赛&项目)
- 2024级广播电视工程专业2401班新生团籍档案登记表(2).docx
- 20种 Excel 表 电子看板
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功