Skip to content

Commit

Permalink
Initial release of the controller
Browse files Browse the repository at this point in the history
  • Loading branch information
stephane-caron committed Sep 20, 2018
1 parent f595739 commit b09d4a2
Show file tree
Hide file tree
Showing 54 changed files with 9,120 additions and 2 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fort.9
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "cmake"]
path = cmake
url = https://github.com/jrl-umi3218/jrl-cmakemodules
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Stéphane Caron <stephane dot caron at lirmm dot fr>
49 changes: 49 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
cmake_minimum_required(VERSION 2.8)

#set(ROS_BUILD_TYPE Debug) # remove for Release
#set(CXX_DISABLE_WERROR 1)

set(CMAKE_CXX_FLAGS "-pedantic -Wno-long-long -Wall -Wextra -Wcast-align -Wcast-qual -Wformat -Wwrite-strings -Wconversion")

include(cmake/base.cmake)
include(cmake/boost.cmake)

set(PROJECT_NAME lipm_walking_controller)
set(PROJECT_DESCRIPTION "Walking controller based on linear inverted pendulum tracking")
set(PROJECT_URL https://github.com/stephane-caron/lipm_walking_controller/)
set(PROJECT_VERSION 1.0.0)

# setup_project() # remove for catkin

project(${PROJECT_NAME}) # because setup_project() is not called

# Enable C++11
#if(NOT WIN32)
# add_definitions(-std=c++0x)
#endif()
# Enable C++14
if(NOT WIN32)
add_definitions(-std=c++14)
endif()

# Use jrl-cmakemodules to get mc_rtc depency
set(PKG_CONFIG_ADDITIONAL_VARIABLES "${PKG_CONFIG_ADDITIONAL_VARIABLES} libdir")
add_required_dependency(mc_rtc)

find_package(catkin REQUIRED)

catkin_package(
CATKIN_DEPENDS
geometry_msgs
roscpp
roslib
std_msgs
tf
)

include_directories(include ${catkin_INCLUDE_DIRS} $ENV{HOME}/.local/include)
link_directories(${catkin_LIBRARY_DIRS} $ENV{HOME}/.local/lib)

add_subdirectory(src)

# setup_project_finalize() # removed for catkin
65 changes: 63 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,63 @@
# lipm_walking_controller
Walking and stair climbing controller based on LIPM tracking
# LIPM Walking Controller

Source code of the walking controller used in the experiments of [Stair
Climbing Stabilization of the HRP-4 Humanoid Robot using Whole-body Admittance
Control](https://hal.archives-ouvertes.fr/hal-01875387/document).

## Installation

Compilation has been tested on Ubuntu 14.04 (gcc/clang) with ROS Indigo.

### Dependencies

Compilation requires:

* [ROS](http://www.ros.org/) with a working [catkin workspace](http://wiki.ros.org/catkin/Tutorials/create_a_workspace)
* [SpaceVecAlg](https://github.com/jrl-umi3218/SpaceVecAlg)
* [RBDyn](https://github.com/jrl-umi3218/RBDyn/)
* [eigen-qld](https://github.com/jrl-umi3218/eigen-qld)
* [sch-core](https://github.com/jrl-umi3218/sch-core)
* [Tasks](https://github.com/jrl-umi3218/Tasks/)
* [mc\_rbdyn\_urdf](https://github.com/jrl-umi3218/mc_rbdyn_urdf)
* [eigen-cddlib](https://github.com/vsamy/eigen-cddlib)
* [Copra](https://github.com/vsamy/Copra-deprecated)

The following dependencies are not publicly released yet but available upon
request to [Pierre Gergondet](mailto:[email protected]):

* [mc\_rtc](https://gite.lirmm.fr/multi-contact/mc_rtc)
* [mc\_rtc\_ros](https://gite.lirmm.fr/multi-contact/mc_rtc_ros)
* [mc\_rtc\_ros\_data](https://gite.lirmm.fr/multi-contact/mc_rtc_ros_data)

There is currently an additional dependency to the *EigenQP* library. It is
redundant with *eigen-qld* and will be removed in a future update.

### Building from source on Linux

Link `lipm_walking_controller` from the ``src/`` folder of your catkin
workspace, then follow the standard catkin workflow:

```sh
catkin_make -DCMAKE_BUILD_TYPE=RelWithDebInfo && catkin_make install
```

## Usage

### Visualization

Launch RViz by:
```sh
roslaunch lipm_walking_controller display.launch
```

### Execution

Run your mc\_rtc interface on the main confuguration file:
```sh
<mc_rtc_interface> lipm_walking_controller/etc/mc_rtc.conf
```
where ``<mc_rtc_interface>`` is for instance ``mc_vrep`` or ``MCControlTCP``.

## Thanks

- To Pierre Gergondet for developing and helping with the mc\_rtc framework
1 change: 1 addition & 0 deletions cmake
Submodule cmake added at afe48f
Loading

0 comments on commit b09d4a2

Please sign in to comment.