Prerequisites

You are required to be on two mailing lists before you can work on the pr2:

  • robots@ias.cs.tum.edu (register TBD)
  • pr2-users@lists.willowgarage.com (register TBD)

You also need to watch the pr2 safety video before working on it. We recommend to read the pr2 manual.

Accounts

You can get your account from the administrators Alexis, Georg, Gheorghe. You will get full sudo permissions on the robot. Be careful with it. If you do not know all possible effects of an action, ask one of the administrators before. Installation of new software packages with `aptitude` or `apt-get` is not a problem. Messing around in configuration files or doing something like `sudo make install` is not allowed. Please be always aware that the robot may be reinstalled and your home directory gets deleted during this process. Never keep any important data on the robot. Always copy important data to your local machine.

Computer's Clock Synchronization

Consistent time-stamping of data exchanged between the user's computer and the robot's computer is crucial for interpreting this data, on both computers. Keeping the the user's computer time synced with the robot's computer time requires some attention. The tool employed to take care of this synchronization is chrony http://chrony.tuxfamily.org. The general strategy is to have the two computers (user's computer and robot's computer) tightly coupled to one another, but loosely coupled to an external time source. This will prevent the robot time and the user time from drifting too far one from the other. In our case the external time source will be the robot's base station. The robot's computer time should be always synced to the base station time. chony's job is to synchronize the user's computer time to the base station time.

I order to employ chrony to keep synced your computer time with the base station computer time, make sure:

1. you have chrony installed

sudo apt-get install chrony

2. you updated your chrony configuration file:

/etc/chrony/chrony.conf

allowing chrony to check if whether another chronyd client is already running (to be newly added to your chrony.conf file):

pidfile /var/run/chrony-internal.pid

and telling chrony client which is the chrony server to whom to sync (to replace the old servers in your chrony.conf):

server pr2a minpoll 3 maxpoll 15 maxdelay .010
initstepslew 0 pr2a 0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org

3. restarting chrony client (running on user's computer)

sudo /etc/init.d/chrony restart

4. check your installation / configuration

Start chrony:

chronyc

Ask chrony the synchronization sources:

sources

You should get something similar with:

210 Number of sources = 1
MS Name/IP address           Stratum Poll LastRx Last sample
============================================================================
^* pr2a.ai.loc                3    5      0    -24us[  -31us] +/-   33ms

The asterisk * appearing in front of the source confirms your computer time is synced to the pr2base.

Exit chrony:

exit

Now you should be fine.

A second test would be:

ntpdate -q pr2a

with an expected value smaller than 0.0001 milisecond.

Sometimes the clocks on the computers get into an inconsistent state. This will show up as an error in the pr2dashboard as: “NTP offset from XXX to YYY; Offset too great.” If the clocks are in an inconsistent state, try restarting chrony on your computer. If this still doesn't solve the problem you may ask one of the PR2 admins to restart chrony on the basestation, c1, and c2, in this order.

For additional details you may have a look how the synchronization problem between PR2's C1 and C2 is solved with the base station help http://pr2support.willowgarage.com/wiki/PR2%20Manual/Chapter13#Clock_Synchronization.

Software installation

Get familiar with ROS by working through the following tutorials on your local machine before getting started on the robot:

Running the robot

To work on the robot, your computer must be either connected to the lab network. The robot's computers in the network are named pr2a and pr2b.

export ROS_IP=<the-ip-of-your-machine>
export ROS_MASTER_URI=http://pr2a:11311

to run some ros nodes locally. To start your stuff, ssh into the robot with

ssh <your-name>@pr2a

You will see a message if the robot is free or claimed right now. If it is claimed, go and find the person who claimed it and ask if he/she still needs it. Never kill someone else's processes without asking. If the robot is not claimed, first find the wireless runstop. It should be close around the robot.

Now claim the robot:

robot claim

Make sure that the runstop is off before you start up the robot with:

roslaunch /etc/ros/indigo/robot.launch

The robot should come up now. To check, set the ROS_MASTER_URI on your local machine to http://pr2a:11311 and launch the rqt_pr2_dashboard with

rosrun rqt_pr2_dashboard rqt_pr2_dashboard

You should see only green fields. It is important that you run the dashboard whenever you are working on the robot.

It might be a good idea to first start the core manually before running the robot and to run all your commands in a screen or terminator session. Now release the runstop. The robot might calibrate. Be sure that it will not hit anything while calibrating. While moving the robot, always make sure that the wireless runstop is in reach. If you need to leave the robot for a short amount of time, make sure that you always press the runstop and make sure that the pr2's power cable is plugged in. First plug in the power cable into the PR2's inlet, then into the wall outlet. This is important because the power cable and the pr2 power inlet might get damaged otherwise. When you are done on the robot, move it to its docking station and plug in the network cable and the power cable. Press the red button on the runstop. Now release the robot with:

robot release

No food or drink in the PR2 workspace, in particular anywhere the PR2 might make contact with. Keep the joystick plugged into the USB hub nearby the robot charging station when not in use. Obey standard PR2 safety protocol, including: No sharp objects in the PR2’s grasp. No liquids near the PR2, regardless of how sturdy you think the container is. No objects may be placed on top of the PR2. Be wary of small objects (e.g. screws). If you suspect anything has fallen in the PR2, cut the power with the breakers and contact Alexis immediately.

Running Kinect2 from PR2

  • Make sure the robot is running.
  • Make sure your user has access to the Backpack PC.

Starting Kinect 2 Node

  1. Connect to pr2a:
    # ssh -XAC pr2a
  2. Start the Kinect2 bridge: (stopping with CTRL+C)
    # /etc/ros/kinect2_bridge_remote.sh

    This script sets the environment and launches the kinect2_bridge node on the Backpack PC.

Checklists

Running the robot

  • Check if the robot is claimed. Do not kill other people's processes without asking them.
  • Make sure the runstop is off
  • Claim and start up the robot with
    robot claim
  • Run the dashboard on your local machine
  • Release the runstop. The robot might calibrate. Make sure that it doesn't hit anything.
  • Work with the robot.
  • Always have the runstop in reach.
  • When you are done working with the robot press the “Stop” button on runstop.
  • Release the robot
    robot release

Leaving the robot for a short time

  • Press the runstop
  • Make sure the robot is plugged in

Shutting down the robot

  • Move the robot to its docking station
  • Plug in the robot (Ethernet and power). First plug in the power cable into the PR2's inlet, then plug in the power cable into the wall outlet
  • Press the red button on the runstop
  • Release the robot with `robot release`
  • Plug the PS3 controller into the USB hub nearby the robot

Rebooting the robot

  • on pr2b enter the command
    sudo shutdown -h now
  • on pr2a enter the command
    sudo shutdown -h now
  • flip off the power switch (on the back side of robot's base)
  • flip on the power switch (on the back side of robot's base)
  • pr2a should boot automatically (no help needed)
  • in case help is needed then in your favourite browser, open pr2a's remote BIOS screen http://192.168.102.79
  • pr2b needs manual trigger for the the booting process
  • hit enter in order to trigger the pr2b's booting process (just follow the instructions on the screen)
  • next step: the calibration routine (trigger at the first run of roslaunch /etc/ros/indigo/robot.launch)
 
robots/pr2_guidelines.txt · Last modified: 2017/02/22 17:13 by lisca · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki