Skip to content

isri-aist/LocomanipController

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ee25576 · Feb 4, 2025
Feb 4, 2025
Mar 1, 2023
Jul 13, 2023
Mar 1, 2023
Mar 3, 2023
Oct 25, 2023
Nov 23, 2023
Dec 14, 2022
May 2, 2023
Dec 28, 2022
Nov 23, 2023
Jan 25, 2023
Dec 14, 2022
Dec 14, 2022
Jan 25, 2023
Dec 14, 2022
Dec 14, 2022
Mar 1, 2023
Jul 5, 2023
Dec 14, 2022
Aug 2, 2024
Jan 22, 2023
Dec 16, 2022

Repository files navigation

Humanoid loco-manipulation controller

CI Documentation LICENSE

HRP2001-LMC-Wheelbarrow-cut-20230111.mp4
LocomanipController-PushCartWaypoint-20221227.mp4

Features

  • Completely open source! (controller framework: mc_rtc, simulator: Choreonoid, sample robot model: JVRC1)
  • Accepts commands for trajectory and velocity of a loco-manipulation object.
  • Considers object manipulation forces on the hands in the balance control during loco-manipulation.
  • Automated management with CI: Dynamics simulation is run on CI to verify loco-manipulation.

Technical details

This controller is a simple extension of BaselineWalkingController for loco-manipulation.
For more information on walking control, see BaselineWalkingController.
For more information on the balance control in loco-manipulation considering object manipulation forces, please see the following paper:

  • M Murooka, et al. Humanoid loco-Manipulations pattern generation and stabilization control. RA-Letters, 2021. (available here)

Install

Requirements

  • Compiler supporting C++17
  • Tested with Ubuntu 20.04 / ROS Noetic and Ubuntu 18.04 / ROS Melodic

Dependencies

This package depends on

This package also depends on the following packages. However, manual installation is unnecessary when this package is installed using wstool as described in Controller installation.

Preparation

  1. (Skip if ROS is already installed.) Install ROS. See here for details.
$ export ROS_DISTRO=melodic
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install ros-${ROS_DISTRO}-ros-base python-catkin-tools python-rosdep
  1. (Skip if mc_rtc is already installed.) Install mc_rtc. See here for details.
$ curl -1sLf 'https://dl.cloudsmith.io/public/mc-rtc/stable/setup.deb.sh' | sudo -E bash
$ sudo apt-get install libmc-rtc-dev mc-rtc-utils mc-state-observation jvrc-choreonoid libcnoid-dev ros-${ROS_DISTRO}-mc-rtc-plugin ros-${ROS_DISTRO}-mc-rtc-rviz-panel libeigen-qld-dev

Controller installation

  1. Setup catkin workspace.
$ mkdir -p ~/ros/ws_lmc/src
$ cd ~/ros/ws_lmc
$ wstool init src
$ wstool set -t src isri-aist/LocomanipController https://github.com/isri-aist/LocomanipController --git -y
$ wstool update -t src isri-aist/LocomanipController
$ wstool merge -t src src/isri-aist/LocomanipController/depends.rosinstall
$ wstool update -t src
  1. Install dependent packages.
$ source /opt/ros/${ROS_DISTRO}/setup.bash
$ rosdep install -y -r --from-paths src --ignore-src
  1. Build a package.
$ catkin build locomanip_controller -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_QLD=ON --catkin-make-args all tests
  1. Setup controller
$ mkdir -p ~/.config/mc_rtc/controllers
$ cp ~/ros/ws_lmc/src/isri-aist/LocomanipController/etc/mc_rtc.yaml ~/.config/mc_rtc/mc_rtc.yaml
  1. Setup motion configuration file (optional)
$ roscd locomanip_controller
$ cp .github/workflows/config/PushCartWaypoint.yaml ~/.config/mc_rtc/controllers/LocomanipController.yaml

Simulation execution

# Terminal 1
$ source ~/ros/ws_lmc/devel/setup.bash
$ roscore
# Terminal 2
$ source ~/ros/ws_lmc/devel/setup.bash
$ roscd locomanip_controller/cnoid/project/
$ /usr/share/hrpsys/samples/JVRC1/clear-omninames.sh
$ choreonoid LMC_JVRC1_Cart.cnoid --start-simulation
# Terminal 3
$ source ~/ros/ws_lmc/devel/setup.bash
$ roslaunch locomanip_controller display.launch