Pepper humanoid robot module for mc_rtc
August 17, 2020 ยท View on GitHub
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.