Contents
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
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.
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.