Awesome
Pepper humanoid robot module for mc_rtc
This package contains a software representation, or a robot module, of Pepper humanoid robot platform. This robot module is used by mc_rtc
framework to realize control of Pepper robot in simulation or in experiments with real platform.
Required dependencies
Build instructions
git clone https://github.com/jrl-umi3218/mc_pepper
cd mc_pepper
mkdir build
cd build
cmake ..
make
sudo make install
Robot devices
This robot module allows to interact with some robot devices
from mc_rtc
controller, namely:
Speakers
- command a word or a sentence to sayTouchSensor
- detect when mobile base bumper is touchedVisualDisplay
- set tablet screen image
Robot module types
Depending on the use-case, users might prefer to use one of the following implemented types of the Pepper robot module:
Pepper
- moving base, hand joints included (default module)PepperFixed
- fixed base, hand joints includedPepperNoHands
- moving base, hand joints not includedPepperFixedNoHands
- fixed base, hand joints not includedPepperExtraHardware
- moving base, hand joints and extra hardware includedPepperExtraHardwareNoHands
- moving base, hand joints not included, extra hardware includedPepperFixedExtraHardwareNoHands
- fixed base, hand joints not included, extra hardware included
Example of custom tasks and constraints
In mc_rtc
controller two main elements for robot control are
- Tasks - objectives, what robot should do the best it can
- Constraints - limits, that robot should always respect
Many tasks and constraints are already implemented in mc_rtc
. For instance PostureTask
, CoMTask
, EndEffectorTask
, KinematicsConstraint
, ContactConstraint
etc. However, in some cases it might be desirable to design and implement new custom tasks or constraints not yet implemented in mc_rtc
. Such new tasks and constraint might be specific to a robot, use-case or research topic.
In this repository, we provide an example of a custom CoMRelativeBodyTask
, that allows to specify desired Pepper CoM target relative to the robot mobile base frame (as opposed to world frame in mc_rtc CoMTask
). Implementation of this custom task can be found in the tasks
folder.
An implementation of a custom BoundedAccelerationConstr
constraint, to impose acceleration bounds for Pepper mobile base, can be found in the constraints
folder.
How these custom tasks and constraints are loaded and used in a sample mc_rtc
controller can be see in PepperFSMController.
In an analogous way, many other novel tasks and constraints can be implemented and tested
Next steps
Now that mc_pepper
is successfully installed, you can use PepperFSMController
project as a staring point or an example on how to write your own mc_rtc
controller for Pepper robot.
Once your controller is ready to be tested, you can use mc_naoqi
interface to run and visualize your controller in simulation or to run your controller on a real Pepper humanoid robot platform.