new_members_training - IRS-group/isr_tiago_docs GitHub Wiki
1) Introduction
Please visit this website to read a bit about the team.
Current team members are listed in this page.
All our wikis can be consulted here.
In summary we are a group of master students and PhD students from ISR that gather every Friday to work together on the Robot. We participate to events and competitions such as RoboCup and ERL.
The team works to develop service robots. By integrating robot navigation, manipulation, perception, task planning and speech recognition we can achieve tasks such as picking objects in an autonomous way, giving automated tours to visitors, etc.
2) Setup system and SocRob repository structure
This steps will guide you to install the Ubuntu version that is used by the team and to install all the code that we use in the robot.
Please follow this tutorial to setup correctly your system, alternatively you can use the HARODE server in which all the setup is done.
3) ssh and python
ssh:
The team leader (or some other experienced member) will give you a tutorial on ssh.
python:
In case you are not familiar with python programming, check out this course from Google developers, and ask other team members if you need help or have questions.
4) C++
This part is intended for you to learn not only C++, but also CMake. Go into this repo and make the examples that are listed there.
5) Git
In SocRob we use git to manage the code. Here are two tutorials about git if you don't know how to use it yet:
http://excess.org/article/2008/07/ogre-git-tutorial/
https://www.atlassian.com/git/tutorials
6) ROS tutorials
MBot, our MOnarCH robot, is based on ROS (Robot Operating System) therefore if you want to contribute you need to learn ROS.
To get an overview of what ROS is please watch this nice youtube video.
We highly recommend to follow these tutorials 2-17.
It is very important that you fully understand them, in case of any questions or doubts please ask team members.
7) MOnarCH robot introduction
The MOnarCH robot, mbot or Gasparzinho (little Casper) is the outcome of a research project called the MOnarCH project. Is was originally designed to interact with children in hospitals. Nowadays other FCT projects, such as HARODE, re-utilize this robot for their own goals. HARODE FCT project stands for "Human Aware Robots in Domestic Environments" and is the project that currently benefits SocRob economically speaking.
In the institute we have 3 robots (mbot01, mbot05, mbot07). mbot01 is used by prof. João Sequeira research group. mbot05 and mbot07 are used by SocRob and were extended with a Cyton Gamma 1500 Robai arm with 7 degrees of freedom. We created a custom gripper (designed by Diogo "Tec" Serra, our former lab technician). The arm is composed of Dynamixel motors joint together by 3D printed parts. Additionally we installed a GPU (GeForce GTX 1060 AERO, a rather powerful GPU for a mobile robot), that we use to run functionalities that require powerful parallel processing, like realtime object perception and natural language understanding. mbot05 and mbot07 are built with the same components and have the same software, in fact they are meant to be identical twins (although they still have subtle differences).
To know a bit more about the robot hardware details check this, in particular pages 48-51 to consult the robot operation manual.
Now is time for you to ask the team leader for a demonstration of the basic skills:
- Safely turning on/off and charging the robot
- Access the robots using the aliases
mbot
andmbot7
- Bringing up the robot using the alias
bringup_mbot
(or the super short aliasbm
), orbringup_sim
for the simulated version of our robot and testbed. - Launch navigation related nodes using the alias
nav
- Teleoperation with the joypad (only needs bringup)
- Launch the perception nodes with command
roslaunch mbot_perception_launch mbot_perception.launch
- Use the aliases
export_mbot
andexport_mbot7
and visualize all the robot data using the commandrviz
(or the super short aliasr
), while executing the following actions, look at: robot model, map, laser, depth maps, detections, navigation paths, costmap, etc - Try the autonomous navigation sending simple goals from rviz (click
2D Nav Goal
and then click and drag on the map) - Move the head and tilt the robot head camera using the joypad
- Localize the robot in a location using the command
localize_in LOCATION
(tab tab to autocomplete the location) - Ri-localize the robot in the correct position from rviz (click
2D Pose Estimate
and then click and drag on the map) - Send the robot to a location using the command
go_to LOCATION
(tab tab to autocomplete the location) - Autonomous dock and undock (using aliases
dock
andundock
) - Move the arm
- Access mbot_class and get an overview of the available components and their functionalities (start mbot_class using the alias
mbot_class
, preferably from a shell in the robot, see step 2) - Make the robot speak (from mbot_class)
- Display different emotions with the LED interface (from mbot_class)
Basic gamepad buttons map (gimp source where text can be edited):