Welcome to the first lab session of the Care-O-bot Experimentation Days

The challenge of the day will be to get your homework you did in simulation running on a real robot. To do that, you will have to do the following steps:

  • Learn how to login to the robot
  • Move the robot via a command_gui and joystick
  • Run the prepared scenario for homework 1
  • Run your modifications to solve homework 2
  • Handle further changes of the environment and the task

Before you start working on the hardware you should have attended a safety briefing given by one of the IPA staff members!

PC infrastructure

Login to desktops

To login to one of the desktop pcs, each group can use their own login, e.g. expdays-group1. All logins have the password first.

Login to the robot

On the robot each group has the same user as on the desktop machines, e.g. expdays-group1. You can login to that account using the password first.

ssh -X expdays-group1@cob3-3-pc1

Move the robot

Checking the robot status

After logging in to the robot you can start a dashboard to get information about the status of the hardware.

roslaunch cob_experimentation_days dashboard.launch

dashboard.png

All the fields should look like in the example above. If you see something red (except for the motor buttons), please contact a staff member.

Using the joystick

Using the joystick you can move the robot. Instructions about that are on the documentation page for the cob_teleop package.

Try for example to move the base around.

Using the command GUI

A more comfortable way of commanding the robot is using the cob_command_gui, which offers simple button interface to move the various components of the robot.

cob_command_gui.png

Feel free to try out the buttons.

Take care that not all positions for the arm are collision free. Ask a staff member if you are not sure if an arm movement is collision free or not.

Using the scripting interface

Until now you learned how to manually move the robot. Of course, if the robot has to solve a complex task it is important that the robot actions can be automated. Therefore the cob_script_server offers a scripting interface which makes it easy to move individual robot components and synchronise their movements. If you want to learn more about the cob_script_server, have a look at the script server tutorials.

For now your task is to make the robot introducing itself by writing a script based on the script server commands. Be creative and orchestrate a nice introduction of the robot using torso, arm, hand and speech.

As a starting point you can take this simple example and start modifying it. Copy the following lines into an empty file and save it as ~/day1.py

   1 #!/usr/bin/env python
   2 import roslib
   3 roslib.load_manifest('cob_experimentation_days')
   4 import rospy
   5 
   6 from simple_script_server import *
   7         
   8 if __name__ == "__main__":
   9     rospy.init_node('waving')           #create node
  10     sss = simple_script_server()        #create a simple script server
  11     
  12     text=["Jingle bells, jingle bells, Jingle all the way! O what fun it is to ride In a one-horse open sleigh."]
  13     
  14     #INSERT CODE HERE                   #move torso, arm and hand (e.g. wave)
  15     #INSERT CODE HERE                   #use text-to-speech for speaking "text"

Don't forget to make the python script executable.

chmod a+x ~/day1.py

Before executing your script on the real hardware you should verify if your script is running in simulation. Therefore startup the simulation on your local pc

roslaunch cob_experimentation_days experimentation_days_sim.launch

and starting your script

python ~/day1.py

Running scenarios on robot

In the previous steps you have learned how to move the robot components. No it's time to combine the movements to solve a real task.

first homework

First of all, you should run the prepared scenario (first homework) and let the robot find, grasp and bring the milk box to you.

Start the scenario specific node with

roslaunch cob_experimentation_days experimentation_days_robot.launch

Before you start, check that the robot is correctly localized in its environment. Therefore use rviz on your local machine and connect rviz to the robot using the ROS_MASTER_URI of pc1.

On a terminal on your local pc check the localization with rviz

export ROS_MASTER_URI=http://cob3-3-pc1:11311
roslaunch cob_experimentation_days rviz.launch

If the robot is localized correctly you can start the script and watch the robot while the script is running. Back on a robot terminal do

rosrun cob_experimentation_days experimentation_days.py

second homework

The task of the second homework was to modify the scenario to fulfil the slightly modified task. Instead of the milk box the robot should now grasp a different object from the table. Please do the modifications you did for the homework 2 and see if the robot can solve the modified task.

modify environment and task

If you still have time, you can make further modifications to the task or the environment and see explore the limits and shortcomings of service robotics today. This is where you can step in and do some further research in form of an internship, thesis or student job.

Wiki: cob_experimentation_days/Tutorials/day1 (last edited 2011-11-29 17:50:43 by FlorianWeisshardt)