funny-things
is a repository which contains, among other funny things, a set of modules for easy scripting and execution of non-interactive (pre-programmed) demos. These modules (funnyPostures
, iCubBlinker
and gaze.lua
) are devised to perform a set of actions, including moving, gazing, blinking, face expressions, etc, which can be easily handled through rpc
commands. Moreover, these calls can be managed directly through the use of bash (.sh
) scripts, which allow easy synchronization, ordering and test of these calls so that they can be predefined for particular demos. Several examples are available in the repo.
cd
into the repo folder (./funny-things
)mkdir build
ccmake ../
make
make install
icubDemoScripts
(or icubDemoScriptsSIM
to work on the simulator) template, adapt them and save as apps..sh
) and modify or add any commands to suit your demo needs.yarpserver
and iCub_SIM
on simulator).Face_Expressions
iCubSpeech
Open the icubDemoScripts
(or icubDemoScriptsSIM
) app and launch and connect modules.
On the terminal, go to the ./funny-things/app/scripts/shells
folder../<scriptname>.sh <command>
- eg ./isp-movements welcome
..sh
with another name (tg2.sh
can be a good starting point), and modify it to suit your needs.
funnyThingsApp
Enabling CREATE_FUNNYTHINGSAPP
at configure time, it is possible to build the funny-things
electron app, that allows to quickly and easily design awesome demos.
Here how to install the dependencies:
sudo apt update
sudo apt install -y curl
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g npm@latest
And here the funnyThingsApp.AppImage
in action:
https://user-images.githubusercontent.com/4537987/131512979-9686f8a3-7fd7-4d19-ad2c-d72c826d002b.mp4
Moreover, it is possibile to export the demo designed in the .funnythings
format(that can be loaded and eventually modified through the app), and .sh
format.
E.g:
This app is just a higher layer for helping the user in designing the interaction with the robot, under the hood each action need that specific excutables are running:
cptService
for the parts involvedspeech
servicesiKinGazeCtrl
emotionInterface
For more info, see: