UserPreferences

PyroInstallation


Pyro 5 Installation

Linux

Ubuntu 10.10

Does not work with Python 3.

  1. sudo apt-get install libjpeg62-dev swig

  2. svn co http://svn.cs.brynmawr.edu/pyrobot/trunk pyrobot

  3. cd pyrobot

  4. make (answer 'y' only to those things you need/want; enter 2.6 for Python version number)

  5. bin/pyrobot

Example "make config" session:

$ make
Makefile:7: Makefile.cfg: No such file or directory
python configure.py
Checking for versions of Python...

---------------------------------------------------------------------
This is the configure.py script for installing Pyro, Python Robotics.
Pressing ENTER by itself will accept the default (shown in brackets).
---------------------------------------------------------------------


Please answer the following questions either by supplying a complete
answer, or by pressing ENTER to accept the default. This uses the
'locate' command on systems (where available) to search for the best
possible answer. If there is no default, you should enter a valid
answer or 'none'.

-------------------------------------------------------------------
1. Python version number?
Default = [3.1]:  2.6
-------------------------------------------------------------------
2. Where are Python's include files?
Looking for 'include/python2.6'...
Default = [/usr/include/python2.6]:  
-------------------------------------------------------------------
3. What is Python's binary? (enter path and name)
Looking for 'bin/python2.6'...
Default = [/usr/bin/python2.6]:  
-------------------------------------------------------------------
4. Where is the X11 include directory (need rgb.txt)?
Looking for '/usr/share/X11'...
Default = [/usr/share/X11]:  
-------------------------------------------------------------------
 5. Where is the player include directory (if one, or 'none')?
Looking for 'include/player-2'...
Default = [none]:  

6. Options:
-------------------------------------------------------------------
Option:    Do you want to build Image Processing? (y/n)
Default = [y]:  
-------------------------------------------------------------------
Option:    Do you want to build Video for Linux 
(requires Image Processing)? (y/n)
Default = [y]:  n
-------------------------------------------------------------------
Option:    Do you want to build Video for Linux2 
(requires Image Processing)? (y/n)
Default = [y]:  n
-------------------------------------------------------------------
Option:    Do you want to build BT848 Video for old Pioneers 
(requires Image Processing)? (y/n)
Default = [n]:  n
-------------------------------------------------------------------
Option:    Do you want to build Simulated vision from files 
(requires Image Processing)? (y/n)
Default = [y]:  y
-------------------------------------------------------------------
Option:    Do you want to build Stage simulated vision 
(requires Image Processing and Player)? (y/n)
Default = [n]:  n
-------------------------------------------------------------------
Option:    Do you want to build Gazebo simulated vision 
(requires Image Processing and Player)? (y/n)
Default = [n]:  n
-------------------------------------------------------------------
Option:    Do you want to build Aibo vision 
(requires Image Processing)? (y/n)
Default = [y]:  y
-------------------------------------------------------------------
Option:    Do you want to build Robocup simulated vision 
(requires Image Processing)? (y/n)
Default = [y]:  n
-------------------------------------------------------------------
Option:    Do you want to build Splits a camera view in 2 or 4 
(requires combined camera image)? (y/n)
Default = [y]:  y
-------------------------------------------------------------------
Option:    Do you want to build Stereo Vision from two cameras 
(requires 2 cameras)? (y/n)
Default = [y]:  y
-------------------------------------------------------------------
Option:    Do you want to build Self-organizing Map (SOM)? (y/n)
Default = [y]:  y
-------------------------------------------------------------------
Option:    Do you want to build Cluster Analysis Tool? (y/n)
Default = [y]:  y

Configuration is complete!

You just created Makefile.cfg. You can run this again, or edit
Makefile.cfg by hand if you need to.

Now you are ready to run 'make' (if you aren't already)
...

Mac OS X

svn co http://svn.cs.brynmawr.edu/pyrobot/trunk pyrobot
cd pyrobot
./mac_makefiles
make

Windows

svn co http://svn.cs.brynmawr.edu/pyrobot/trunk pyrobot
cd pyrobot
python configWin.py

Pyro 4 Installation

This page describes the process of installing Pyro and associated programs. This process automatically will keep Fedora Core computers up-to-date. This page describes the automatic method, followed by the manual method if that doesn't work for you.

You should get the latest Pyrobot from the CVS repository: PyroDeveloperCVS

If you find that you need any files, please check here:

New: Pyro on Windows

To run Pyro on Windows:

  1. Get Python (python2.4.1.msi), python-imaging (PIL-1.1.5.win32-py2.4.exe), and python-numeric (Numeric-23.8.win32-py2.4.exe) for Windows (available [WWW]here)

  2. Install those (either for just you, or for all users)

  3. Get a pyro-windows-*.zip file (available [WWW]here)

  4. Install in the Python\Libs\site-packages\ subdirectory.

You may also need the "python for windows extensions" package (available [WWW]here) which corresponds to your version of Python. This adds the 'win32file' which is needed for serial communication with your robot.

You can then run the pyrobot.py file in the pyrobot/bin directory. Currently, only Pyrobot Simulator is supported. This does not include any vision code (or any C/C++ code) yet.

If you would like to run the latest Pyrobot from cvs under Windows:

  1. Get Pyrobot from CVS: PyroDeveloperCVS

  2. Put the pyrobot directory in Python\Libs\site-packages\

  3. Copy the file pyrobot\build\pyrobot to pyrobot\bin\pyrobot.py

  4. You may also want to put the Python.exe in your PATH, as Pyrobot spawns a Python program to run the simulator

  5. Finally, create the file pyrobot\system\version.py with the following contents:

def version():
    return "5.0.0"

(or whatever the latest version is)

Not everything runs under Windows, so you may wish to remove the following files so they don't show up in the Server load list:

Also, any Pyrobot world that mentions a Camera you will want to remove as the C++ code doesn't currently run under Windows.

New: Pyro on Mac

See PyroMac for details of running Pyro on OSX.

Pyro RPM Repository

First, as root create the file /etc/yum.repos.d/pyrobot.repo with these contents:

[pyrobot]
name=Python Robotics
baseurl=http://PyroRobotics.com/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=http://PyroRobotics.com/fedora/RPM-GPG-KEY-dblank

or simply, as root:

cd /etc/yum.repos.d/
wget http://pyrorobotics.com/pyrobot.repo

Then, all you need to do is issue an install command as root:

yum install player stage gazebo pyrobot

That will find the RPMs and any other dependencies, and install them. That's it!

You should then be able to run "pyrobot" and start Gazebo, Stage, and the Khepera simulators. If you have an Sony AIBO robot dog, you can also connect onto it.

FC5 Livna/Yum Changes

For graphics (see below):

yum install xorg-x11-drv-nvidia kmod-nvidia-smp

Gazebo Graphics

If you use ATI or NVidia graphics boards, you may wish to use the Livna kernel modules.

First, add their repositories as above, or right to /etc/yum.conf.

For Fedora Core 3:

[livna-stable]
name=Livna.org Fedora Compatible Packages (stable)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.stable
gpgcheck=1

[livna-unstable]
name=Livna.org Fedora Compatible Packages (unstable)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.unstable
gpgcheck=1

[livna-testing]
name=Livna.org Fedora Compatible Packages (testing)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.testing
gpgcheck=1

For Fedora Core 4 and greater:

[livna-stable]
name=Livna.org Fedora Compatible Packages (stable)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.lvn
gpgcheck=1

Next, add their public key to your rpm:

rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY-i386

If you have ATI graphics card, do this:

yum install kernel-module-fglrx

If you have an NVIDIA graphics card, do this:

yum install kernel-module-nvidia

Then you only need restart X (control + alt + backspace).

If your kernel is updated, do one of these if you have a livna-based video rpm:

yum install kernel-module-ntfs-$(uname -r)
yum install kernel-module-fglrx-$(uname -r)
yum install kernel-module-nvidia-$(uname -r)

Testing: when you type "glxinfo | less" in an xterm under X, it should show "Direct rendering: Yes".

Manual installation of RPM files

You can also download the RPMs manually, and install them. First, download the rpms from http://pyrorobotics.com/fedora/3/i386/ . Next:

rpm -ihv *.rpm
This did not work for me. 
I downloaded all the RPM files in that directory. When I gave the command "rpm -ihv *.rpm", I got these error messages:
 warning: gazebo-0.5.2-fc3.i386.rpm: V3 DSA signature: NOKEY, key ID c17d8428
 error: Failed dependencies:
        freeglut-devel is needed by gazebo-0.5.2-fc3.i386
        gsl is needed by gazebo-0.5.2-fc3.i386
        gsl is needed by player-1.6.4-fc3.i386
        libgsl.so.0 is needed by player-1.6.4-fc3.i386
        libgslcblas.so.0 is needed by player-1.6.4-fc3.i386
        python-imaging is needed by pyrobot-4.0.2-fc3.i386

I interpreted "You can also download the RPMs manually, and install them" as meaning
"instead of using yum as in section 1.1". Apparently this does not give me
all the files I need. I am currently on the road and have only dialup Internet access
(and that only while running windows XP), so I cannot use yum right now.
Any suggestions would be helpful. -- MJC 

(!) You should do what rpm is telling you to do: add all of the missing dpendencies. You need freeglut-devel, gsl, and python-imaging.

In that subdirectory, you will also find the source RPMs and the SPEC files. If you make packages for another distribution or architecture, please let us know.

Pioneer

We now use Player to talk to the Pioneers. Onboard the Pioneer, you really just need the following:

  1. Python 2.2.2 or greater

  2. PIL

  3. Numeric

  4. Player-1.6.4

  5. Tkinter

You can find Player on playerstage.sf.net or in http://pyrorobotics.com/download/

To build player:

tar xfz player-1.6.4.tgz
cd player
./configure --disable-alldriver --enable-p2os --enable-sonyevid30 --enable-canonvcc4
make
make install

You might have to build the Python scripts:

cd client_libs/libplayerc/bindings/python
make
make install

Make sure that those python bits go into the correct site-packages directory. It will use the default "python" so if you want them to go elsewhere, you can temporarily rename python to your other python version.

If you have an older Pioneer with BT848 camera:

cd pyrobot/camera/bt848
make

You may need a cable from your PTZ to /dev/ttyS1 on top of the computer as Player does not support the camera's PTZ command in the same manner that ActivMedia does. Thus, you will connect onto the PTZ through the serial port (/dev/ttyS1). You can make these cables (Canon and Sony have different wiring schemes), but ActivMedia will sell you these cables for about $15 each (you just need one for your camera).

/!\ WARNING: Player requires that the host computer be able to look itself up though DNS. That means that you should have appropriate /etc/resolv.conf and /etc/hosts files. If you have a DNS server that Player can't connect onto, then Player will either abort or hang for 45 seconds on startup.


The rest of this page goes through manually building the packages from source.

Player/Stage/Gazebo

Player, Stage, and Gazebo are three programs that Pyro can utilize. Player is an interface to robots, both real and simulated. Stage is a 2D simulator, and Gazebo is a 3D simulator. These programs are highly recommended for use with Pyro.

This section describes using the latest versions of their software.

Preliminaries for Player/Stage/Gazebo

You should have the following installed:

If necessary, you should add /usr/local/lib to /etc/ld.so.conf and run ldconfig as root.

If your python packages are installed in /usr/lib/, then you could do this:

mkdir -p /usr/local/lib/python2.3/
cd /usr/local/lib/python2.3/
ln -s /usr/lib/python2.3/site-packages

That will allow the packages that put items in the default Python location to do so, but they will still end up in the right place.

You could also direct the locations with a parameter to the install command, like python setup.py install --prefix=/usr/lib/python2.3/site-packages/. You would do that to every python setup command below.

To build Player/Stage/Gazeo you should have the PKG_CONFIG_PATH set so that you can find the .pc files. You may have to:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:/usr/lib/pkgconfig/

before you begin (or put it in your .bashrc file)

The following will assume that you are logged in as root. If you are not, you will need to run some commands as root (for example, "make install"), Ok, let's begin the P/S/G installation.

Open Dynamics Engine

  1. install ode-0.5

    1. get it http://ode.org/

tar xvzf ode-0.5.tgz
cd ode-0.5

We need to fix something here if you want OPCODE installed. OPCODE provides some models (e.g., terrains and roads) the collision detection library. Without OPCODE these models will run, but won't have the terrains and roads, for example. To add OPCODE:

edit config/user-settings
change the last line from:
#OPCODE_DIRECTORY=OPCODE
to:
OPCODE_DIRECTORY=OPCODE

Continue with the installation of ODE:

make configure
make ode-lib
cp -r include/ode /usr/local/include/
cp lib/libode.a /usr/local/lib/

wxPython

  1. install wxPython http://www.wxpython.org/download.php

  2. We used wxPython-src-2.5.3.1

tar xfz wxPython-src-2.5.3.1.tar.gz
cd wxPython-src-2.5.3.1
./configure
make
make install

That will install wxWidgets. Now to install wxPython:

cd wxPython

Before I could get it to build on Redhat 9, Fedora Core 2, and Fedora Core 3, I had to edit config.py:

BUILD_GLCANVAS = 0 # If true, build the contrib/glcanvas extension module
BUILD_OGL = 0      # If true, build the contrib/ogl extension module
BUILD_STC = 0      # If true, build the contrib/stc extension module
BUILD_GIZMOS = 0   # Build a module for the gizmos contrib library

Then it would build:

python setup.py build
python setup.py install

Geospatial Data Abstraction Library

  1. Install GDAL http://www.remotesensing.org/gdal/

tar xvzg gdal-1.2.5.tar.gz
cd gdal-1.2.5
./configure 
make
make install

GNU Scientific Library

http://www.gnu.org/software/gsl/

tar xfz gsl-1.6.tar.gz
cd gsl-1.6
./configure
make
make install

lib3ds

This allows the "skins" to work in Gazebo.

http://lib3ds.sourceforge.net/

tar xfz lib3ds-1.2.0.tgz
cd lib3d-1.2.0
./configure
make
make install

OpenCV

The Open Computer Vision project is used in Player.

http://sourceforge.net/projects/opencvlibrary/

tar xfz opencv-0.9.6.tar.gz
cd opencv-0.9.6
./configure
make
make install

This could have used ffmpeg; do we need that?

Gazebo

Instructions: http://playerstage.sourceforge.net/doc/Gazebo-manual-0.5-html/install.html

For now, you should get a version compatible with player-1.6.4. You'll find a copy in our [WWW]download area.

Later, you will be able to build from CVS. Instructions follow.

To get from CVS, first login:

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/playerstage login

You only have to do that once.

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/playerstage co -P gazebo
  1. install gazebo (currently, from CVS from playerstage.sourceforge.net)

cd gazebo
./bootstrap
./configure
make install

You can test this with:

export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib
wxgazebo /usr/local/share/gazebo/worlds/avatarheli.world

Troubleshooting

If that didn't work, you should make sure you have direct rendering and pbuffer support (by running glxinfo).

Some notes on Fedora Core 3 with ATI Graphics card:

You need to have "direct rendering" on to take effecient advantage of Gazebo. Otherwise, Gazebo will use software to render the scenes. Even with hardware acceleration, it may not run in real time.

To get my ATI graphics card under Fedora Core 3 to render Gazebo, I had to use the Livna kernel modules. Here are the steps:

  1. Add the following to /etc/yum.conf:

[livna-stable]
name=Livna.org Fedora Compatible Packages (stable)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.stable
gpgcheck=1

[livna-unstable]
name=Livna.org Fedora Compatible Packages (unstable)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.unstable
gpgcheck=1

[livna-testing]
name=Livna.org Fedora Compatible Packages (testing)
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.testing
gpgcheck=1
  1. Install the proper kernel module:

yum install kernel-module-fglrx-$(uname -r)
  1. Restart X

To test, you can "glxinfo | less". You should see "direct rendering: Yes".

Player

Get Player from CVS:

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/playerstage co -P player

Build and install it:

cd player
./bootstrap
./configure
make install

If you had a previous version of Player, you may have to delete playerc.so in your Python site-package directory. Try:

locate playerc.so

and if one shows up in a place like /usr/local/lib/python2.2/site-package/playerc.so, you should delete it.

Stage

Get Stage from CVS:

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/playerstage co -P stage

Build and install it:

cd stage
./bootstrap
./configure
make install

Stage is now a Player plugin. To run, you need to set PLAYERPATH to where libstage.so resides:

export PLAYERPATH=/usr/local/lib
player /usr/local/share/stage/worlds/everything.cfg

Testing

See http://playerstage.sourceforge.net/doc/ps_getting_started-1.6.txt for testing Player/Stage/Gazebo.

Pyro

You will need SWIG, Python Image Library, and Numeric.

Numeric

Also called numpy.

tar xfz Numeric-24.0b2.tar.gz
cd Numeric-24.0b2
python setup.py build
python setup.py install

Imaging

Also called PIL, Python Image Library

You will need tk-devel and tcl-devel for this.

yum install tk-devel tcl-devel
tar xfz Imaging-1.1.5.tar.gz
cd Imaging-1.1.5
python setup.py build
python setup.py install

Other details

You might want to look at Pyro3Installation. See PyroDeveloperCVS for details about getting CVS code.

Multiuser Robocup-Type Events

Here is an easy project: build a Gazebo or Stage world with as many robots as you have students. Start it on the server. Each student is assigned a port (or you could make robot.py files for each student with the port/hostname already defined). Then each would connect onto the server. You could:

  1. Play soccer

  2. Race to see who grabs the most pucks

  3. Play tag (if your bumpers fire, your out)

  4. Indy 500 racing

One issue with this is that you will need to be able to access each machine. If you have a firewall up, here is how to poke some holes in it. You need to edit /etc/sysconfig/iptables by adding the appropriate lines:

In RedHat 9.0, add:

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6665:6765 --syn -j ACCEPT

In Fedora Core 2, add:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6665:6765 --syn -j ACCEPT

Related topics:

  1. DevelopmentalRoboticsSummer2002 . . . . 1 match
  2. Pyro3Installation . . . . 1 match
  3. Pyro4Installation . . . . 1 match
  4. PyroDeveloper . . . . 1 match
  5. PyroSoftware . . . . 1 match
  6. Running Pyro . . . . 1 match