Skip to content

Commit e1d4374

Browse files
Merge pull request #100 from robotology/devel
Merge devel into master
2 parents 75429cb + 4a2b1e3 commit e1d4374

File tree

101 files changed

+3845
-244
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+3845
-244
lines changed

CHANGELOG.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,18 @@ All notable changes to this project are documented in this file.
33

44
## [Unreleased]
55
### Added
6+
- Add the possibility to use the walking-module with iCubGenova09 (https://github.com/robotology/walking-controllers/pull/80)
7+
- Add the possibility to use the `FreeSpaceEllipse` in the `TrajectoryPlanner` (https://github.com/robotology/walking-controllers/pull/82)
8+
- Enable the `iFeel` retargeting pipeline (https://github.com/robotology/walking-controllers/pull/87)
9+
- Bipedal locomotion v0.6.0 is now required to compile the project (https://github.com/robotology/walking-controllers/pull/97)
10+
- Add the possibility to control the root link height instead of the CoM height (https://github.com/robotology/walking-controllers/pull/93 and https://github.com/robotology/walking-controllers/pull/96)
611

712
### Changed
13+
- Add the possibility to handle multiple wrenches in the RobotInterface/Helper class (https://github.com/robotology/walking-controllers/pull/80)
14+
- Using the `feetYawDelta` and the `slowWhenBackwardFactor` in the `TrajectoryPlanner` (https://github.com/robotology/walking-controllers/pull/89)
15+
- `WalkingModule` logs the data through bipedal locomotion framework logger (https://github.com/robotology/walking-controllers/pull/97)
16+
17+
### Fixed
818
- Fixed missing link library in `WholeBodyControllers` component (https://github.com/robotology/walking-controllers/pull/81).
919

1020
## [0.4.1] - 2020-02-04
@@ -121,7 +131,8 @@ All notable changes to this project are documented in this file.
121131
- Implement the first version of the `WalkingLoggerModule`
122132
- Implement the first version of the `WalkingJoypadModule`
123133

124-
[Unreleased]: https://github.com/robotology/walking-controllers/compare/v0.4.0...devel
134+
[Unreleased]: https://github.com/robotology/walking-controllers/compare/v0.4.1...devel
135+
[0.4.1]: https://github.com/robotology/walking-controllers/compare/v0.4.0...v0.4.1
125136
[0.4.0]: https://github.com/robotology/walking-controllers/compare/v0.3.3...v0.4.0
126137
[0.3.3]: https://github.com/robotology/walking-controllers/compare/v0.3.2...v0.3.3
127138
[0.3.2]: https://github.com/robotology/walking-controllers/compare/v0.3.1...v0.3.2

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export YARP_DATA_DIRS=$YARP_DATA_DIRS:$WalkingControllers_INSTALL_DIR/share/yarp
8787
3. Run gazebo and drag and drop iCub (e.g. icubGazeboSim or iCubGazeboV2_5):
8888

8989
``` sh
90+
export YARP_CLOCK=/clock
9091
gazebo -slibgazebo_yarp_clock.so
9192
```
9293
4. Run `yarprobotinterface`

cmake/WalkingControllersFindDependencies.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ checkandset_dependency(iDynTree)
134134
find_package(Eigen3 3.2.92 QUIET)
135135
checkandset_dependency(Eigen3)
136136

137-
find_package(UnicyclePlanner 0.1.102 QUIET)
137+
find_package(UnicyclePlanner 0.4.0 QUIET)
138138
checkandset_dependency(UnicyclePlanner)
139139

140140
find_package(osqp QUIET)
@@ -149,6 +149,8 @@ checkandset_dependency(qpOASES)
149149
find_package(Catch2 QUIET)
150150
checkandset_dependency(Catch2)
151151

152+
find_package(BipedalLocomotionFramework 0.6.0 COMPONENTS VectorsCollection REQUIRED)
153+
152154
walking_controllers_dependent_option(WALKING_CONTROLLERS_COMPILE_tests "Compile tests?" ON WALKING_CONTROLLERS_HAS_Catch2 OFF)
153155
walking_controllers_dependent_option(WALKING_CONTROLLERS_COMPILE_YarpUtilities "Compile YarpHelper library?" ON WALKING_CONTROLLERS_HAS_YARP OFF)
154156
walking_controllers_dependent_option(WALKING_CONTROLLERS_COMPILE_iDynTreeUtilities "Compile iDynTreeHelper library?" ON "WALKING_CONTROLLERS_HAS_iDynTree;WALKING_CONTROLLERS_HAS_YARP;WALKING_CONTROLLERS_HAS_Eigen3" OFF)

src/JoypadModule/app/dcmWalkingJoypad/joypad.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ deadzone 0.05
1717
fullscale 1.0
1818

1919
# scale factors
20-
scale_x 5.0
21-
scale_y 5.0
20+
scale_x 10.0
21+
scale_y 10.0
2222

2323
# Port names
2424
rpcServerPort_name /walking-coordinator/rpc

src/KinDynWrapper/include/WalkingControllers/KinDynWrapper/Wrapper.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ namespace WalkingControllers
261261
*/
262262
bool getCoMJacobian(iDynTree::MatrixDynSize &jacobian);
263263

264+
bool getRootLinkJacobian(iDynTree::MatrixDynSize &jacobian);
264265
/**
265266
* Get the joint position
266267
* @return the joint position expressed in radians

src/KinDynWrapper/src/Wrapper.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,11 @@ bool WalkingFK::getLeftHandJacobian(iDynTree::MatrixDynSize &jacobian)
512512
return m_kinDyn.getFrameFreeFloatingJacobian(m_frameLeftHandIndex, jacobian);
513513
}
514514

515+
bool WalkingFK::getRootLinkJacobian(iDynTree::MatrixDynSize &jacobian)
516+
{
517+
return m_kinDyn.getFrameFreeFloatingJacobian(m_frameRootIndex, jacobian);
518+
}
519+
515520
bool WalkingFK::getNeckJacobian(iDynTree::MatrixDynSize &jacobian)
516521
{
517522
return m_kinDyn.getFrameFreeFloatingJacobian(m_frameNeckIndex, jacobian);

src/RobotInterface/include/WalkingControllers/RobotInterface/Helper.h

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,21 @@ namespace WalkingControllers
7777
std::unique_ptr<iCub::ctrl::FirstOrderLowPassFilter> m_velocityFilter; /**< Joint velocity low pass filter .*/
7878
bool m_useVelocityFilter; /**< True if the joint velocity filter is used. */
7979

80-
yarp::os::BufferedPort<yarp::sig::Vector> m_leftWrenchPort; /**< Left foot wrench port. */
81-
yarp::os::BufferedPort<yarp::sig::Vector> m_rightWrenchPort; /**< Right foot wrench port. */
82-
yarp::sig::Vector m_leftWrenchInput; /**< YARP vector that contains left foot wrench. */
83-
yarp::sig::Vector m_rightWrenchInput; /**< YARP vector that contains right foot wrench. */
84-
yarp::sig::Vector m_leftWrenchInputFiltered; /**< YARP vector that contains left foot filtered wrench. */
85-
yarp::sig::Vector m_rightWrenchInputFiltered; /**< YARP vector that contains right foot filtered wrench. */
80+
struct MeasuredWrench
81+
{
82+
std::unique_ptr<yarp::os::BufferedPort<yarp::sig::Vector>> port; /**< yarp port. */
83+
yarp::sig::Vector wrenchInput; /**< YARP vector that contains foot wrench. */
84+
yarp::sig::Vector wrenchInputFiltered; /**< YARP vector that contains foot filtered wrench. */
85+
std::unique_ptr<iCub::ctrl::FirstOrderLowPassFilter> lowPassFilter; /**< Low pass filter.*/
86+
bool useFilter;
87+
bool isUpdated;
88+
};
89+
90+
std::vector<MeasuredWrench> m_leftFootMeasuredWrench;
91+
std::vector<MeasuredWrench> m_rightFootMeasuredWrench;
92+
8693
iDynTree::Wrench m_leftWrench; /**< iDynTree vector that contains left foot wrench. */
8794
iDynTree::Wrench m_rightWrench; /**< iDynTree vector that contains right foot wrench. */
88-
std::unique_ptr<iCub::ctrl::FirstOrderLowPassFilter> m_leftWrenchFilter; /**< Left wrench low pass filter.*/
89-
std::unique_ptr<iCub::ctrl::FirstOrderLowPassFilter> m_rightWrenchFilter; /**< Right wrench low pass filter.*/
90-
bool m_useWrenchFilter; /**< True if the wrench filter is used. */
9195

9296
double m_startingPositionControlTime;
9397
bool m_positionMoveSkipped;
@@ -120,6 +124,14 @@ namespace WalkingControllers
120124
bool setInteractionMode(yarp::dev::InteractionModeEnum interactionMode);
121125

122126
bool setInteractionMode(std::vector<yarp::dev::InteractionModeEnum>& interactionModes);
127+
128+
bool configureForceTorqueSensor(const std::string& portPrefix,
129+
const std::string& portInputName,
130+
const std::string& wholeBodyDynamicsPortName,
131+
const double& samplingTime,
132+
bool useWrenchFilter,
133+
double cutFrequency,
134+
MeasuredWrench& measuredWrench);
123135
public:
124136

125137
/**

0 commit comments

Comments
 (0)