EU@HomeEdu 2019 - Preliminary activities

The preliminary activities in preparation of EU@HomeEdu 2019 are provided in form of Assignments. Each assignment contains a specific task to be carried out to make your team ready for the workshop and competition. Assignments will be periodically assigned and teams will be informed by e-mail about new assignments published here. Challenge organizers will be available to support teams encountering problems in performing the assignments.

Technical questions may be sent to:

iocchi@diag.uniroma1.it

i@jeffreytan.org

roboticsarena@mathworks.com (MATLAB)

Assignment 1. Software installation (part 1)

Goal: Having a first easy-to-install and ready-to-use installation of the software needed for the Challenge.

Requirements: a laptop or desktop computer with enough computational power, memory and disk space and already installed OS.

Linux OS preferred, but Microsoft Windows OS is also acceptable.

Tasks:

  1. Install Oracle VirtualBox and Oracle VM VirtualBox Extension Pack
  2. Download MARRtino VM image from MARRtino software web site and install it
  3. Download and install MATLAB (last version) including the Robotics Toolbox
  4. Go to the RoboCup support page and request a complimentary software license.
  5. https://www.mathworks.com/academia/student-competitions/robocup.html
  6. The steps to install and activate MATLAB will be emailed to you once the license is approved, and each team member should use the same information.
          1. Toolboxes required to run examples:
          1. Additionally recommended:
            1. MATLAB
            2. Robotics System Toolbox
            3. Image Processing Toolbox
            4. Computer Vision Toolbox
            5. Statistics and Machine Learning Toolbox
            6. Deep Learning Toolbox
            1. Simulink
            2. Stateflow
            3. MATLAB Coder
            4. Simulink Coder
            5. Embedded Coder
            6. Automated Driving Toolbox
            7. Text Analytics Toolbox
            8. Control System Toolbox
            9. Simulink Control Design
            10. Signal Processing Toolbox

Note: MATLAB can be installed on the same host machine running the Virtual Machine or on a different one. MATLAB can also be installed within the virtual machine, but you will need to create a new virtual disk (suggested size 32 GB), to connect and mount it in the VM file system, and to install MATLAB on it.

Note: For network connection between the Virtual Machine and the Host machine (running a browser or MATLAB) use Bridged or Host-only adapter in the settings of the VirtualBox Virtual Machine.

Exercise 1. Run the virtual machine, run firefox in the virtual machine. Access the Bringup web page, connect to localhost, and start the simulated robot (Simrobot start button). Open a new firefox tab on the Programming web page and choose Commands, Blockly or Python. Connect to localhost, write your simple program (e.g., move the robot in a square) and see the robot moving in the simulator.

Exercise 2. Repeat exercise 1 using MATLAB interface instead of the web programming interface.

Download MATLAB scripts from https://github.com/robocupathomeedu/rc-home-edu-learn-matlab

and follow instructions for the scripts in IntroROS section

Assignment 2. Software installation (part 2)

Goal: Having a more efficient software installation for the Challenge

Requirements: a laptop with enough computational power, memory and disk space and a free partition to install Linux.

Tasks:

  1. Install Linux Ubuntu 16.04 on a partition (Ubuntu Mate 16.04 suggested)
  2. Install ROS kinetic ( ros-kinetic-desktop-full and ros-kinetic-navigation )
  3. Install MATLAB as in Assignment 1 under Ubuntu OS

Exercise 1. Run stage simulator (follow instructions in http://wiki.ros.org/stage_ros).

Type a shell command to move the robot

    rostopic pub /cmd_vel geometry_msgs/Twist -r 3 -- '[0.5,0.0,0.0]' '[0.0, 0.0, 0.0]'

Exercise 2. Run stage simulator and move the robot using MATLAB interface

[velPub,velMsg] = rospublisher('/cmd_vel');

velMsg.Linear.X = 0.5;

send(velPub,velMsg);

Assignment 3. Navigation

Goal: testing mapping and navigation functionalities using Stage simulator.

Requirements: Software installed as in Assignments 1 or 2 above, including marrtino_apps, MATLAB and rc-home-edu-learn-matlab.

You need to update the software installed. The following commands are customized for MARRtino VM

cd ~/Downloads

wget -N http://www.diag.uniroma1.it/iocchi/marrtino/update_rchomeedu_1.bash

source update_rchomeedu_1.bash

cd ~/src/marrtino_apps

git pull

If you have your own different installation, please adapt these commands to your settings.

References:

RoboCup@Home Education MARRtino Guide

Tasks:

  1. Odometry navigation. Run the examples "Velocity Control" and "Odometry Reading" in Part 4 of MARRtino Guide.
  2. Mapping. Create a map of the environment with the instructions about "Building a Map with Simulator" in Part 4 of MARRtino Guide.
  3. In Step 3, when saving the map file, use the name of your team as name of the map to save.
  4. For example, if your team name is ABC, modify the command into
  5. rosrun map_server map_saver -f ABC
  6. Navigation with Rviz. Follow the instructions "Navigation with Simulator" in the same document.
  7. In Step 1, use the map name provided during the mapping phase.
  8. For example,
  9. ./simrobot_navigation.bash ABC
  10. Set several goals with Rviz to explore all the environment.
  11. Navigation with Python. Set goals with Python script
  12. cd src/marrtino_apps/navigation
  13. python move.py 0 0 0
  14. Navigation with MATLAB. Use the script
    1. rc-home-edu-learn-matlab/Navigation/testMoveBaseAction.m
    2. modifiy the script to change goals

Exercise 1. Create the map of Montreal 2018 @Home arena (or any other environment you want to try) that appears when you start the simulator on the virtual machine, start the navigation mode with the new map, and write a program for the robot to visit all the rooms in the apartment and then exit the door in the bottom-right side.

Version 1A. Use Python

Version 1B. Use MATLAB

Note: all the tasks and exercises can be performed on real robots as well. If using MARRtino robot, you should just need to run the robot node instead of the simulator node. For mapping and navigation, you should have a laser range finder mounted on the robot and run the corresponding node.

Assignment 4. Speech synthesis and recognition

Goal: testing speech functionalities integrated with navigation using Stage simulator and LU4R Android app.

Requirements: Software installed as in Assignments 1 or 2 above, including marrtino_apps, MATLAB and rc-home-edu-learn-matlab, rc-home-edu-learn-ros,LU4R Android app for Speech Recognition

Update the software installed on MARRtino VM

cd ~/src/marrtino_apps

git pull

cd ~/src/rc-home-edu-learn-matlab

git pull

cd ~/src/rc-home-edu-learn-ros

git pull

References:

RoboCup@Home Education MARRtino Guide

Tasks:

1. Voice-command control. Run MARRtino simulator and audio server (follow instructions in Part 2 of

RoboCup@Home Education MARRtino Guide). Install, run and configure LU4R Android app for speech recognition. Run the program listed as Example 1 speech control in Part 3 of RoboCup@Home Education MARRtino Guide.

2. Test speech functionalities described in the last part of RoboCup@Home Education MARRtino Guide

Exercise 1. Define a set of locations in the simulated environment as pairs (location name, global map coordinates). For example: ('kitchen', 6, -5, -90), ('living room', 9, -4, -90), and so on. Use global map coordinates as described in Assignment 3. Run a simulated robot with navigation capabilities on a map (as described in Assignment 3).

Write a program for voice control of robot locations, where the user can say to the robot to go to a location (e.g., "go to the kitchen") and the robot will move there using the mapping between location names and map coordinates specified above.

Version 1A. Use Python

Version 1B. Use MATLAB

Assignment 5. Vision and object recognition

Goal: testing object recognition functionalities using MARRtino VM.

Requirements: MARRtino VM (Software installed as in Assignments 1 above).

Update the software installed on MARRtino VM up to version 2.6.1.

cd ~/install

python marrtino_update.py

Run python marrtino_update.py until you reach version 2.6.1

References:

RoboCup@Home Education MARRtino Guide

Tasks:

1. Read Part 4, Section Vision functionalities in RoboCup@Home Education MARRtino Guide and test how to download images from web and display them in the VM.

2. Test object recognition functionalities on web images

Exercise 1. Define a set of locations in the simulated environment and run a simulated robot with navigation capabilities on a map (as described in Assignment 4).

Write a program to bring objects in the proper location, by implementing the following behavior: 1) get a web image (it will be a random object), 2) use object recognition to classify the object, 3) declare the object recognized with speech, 4) bring the object in the proper location (i.e., move to that location) according to the table below.

fruit (banana, orange, pineapple) -> kitchen

cup, water_bottle, plastic_bag -> living_room

volleyball, teddy -> bedroom

Version 1A. Use Python

Version 1B. Use MATLAB