Basic FAQ

From The Player Project

Jump to: navigation, search
(How do I get the latest code?)
 
Line 1: Line 1:
-
----
 
-
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;">
 
-
----
 
-
=[http://ajycyvitik.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=
 
-
----
 
-
=[http://ajycyvitik.co.cc CLICK HERE]=
 
-
----
 
-
</div>
 
The old FAQ is located [http://playerstage.sourceforge.net/index.php?src=faq#player_diff here], you may be interested in the old FAQ if you are still using very outdated versions of the Player project software.
The old FAQ is located [http://playerstage.sourceforge.net/index.php?src=faq#player_diff here], you may be interested in the old FAQ if you are still using very outdated versions of the Player project software.
Line 26: Line 18:
==Where can I find binary packages?==
==Where can I find binary packages?==
-
We don't maintain binary packages, but some users do. Look on the [[Download]] page.  
+
We don't maintain binary packages for Unix-like systems, but some users and Linux distributions do. We do provide a binary installer for Windows. Look on the [[Download]] page for more details.  
==What's the story of Player's creation?==
==What's the story of Player's creation?==
-
The story of the Player/Stage project can be read in the [[PlayerHistory| player's history]] page.
+
The story of the Player/Stage project can be read in the [[PlayerHistory| Player's history]] page.
==What other information about the Player/Stage Project is available online?==
==What other information about the Player/Stage Project is available online?==
Line 42: Line 34:
*Please submit links for this FAQ
*Please submit links for this FAQ
-
==What is a &quot;local&quot; or &quot;user&quot; installation?==
+
==What is a "local" or "user" installation?==
See the [[Local installation]] tutorial.
See the [[Local installation]] tutorial.
Line 62: Line 54:
=Player=
=Player=
==What is Player?==
==What is Player?==
-
Player is a device server that provides a powerful, flexible interface to a variety of sensors and actuators (e.g., robots). Because Player uses a TCP socket-based client/server model, robot control programs can be written in any programming language and can execute on any computer with network connectivity to the robot. In addition, Player supports multiple concurrent client connections to devices, creating new possibilities for distributed and collaborative sensing and control.  
+
[[Player]] is a device server that provides a powerful, flexible interface to a variety of sensors and actuators (e.g., robots). Because Player uses a TCP socket-based client/server model, robot control programs can be written in any programming language and can execute on any computer with network connectivity to the robot. In addition, Player supports multiple concurrent client connections to devices, creating new possibilities for distributed and collaborative sensing and control.  
More information on the [[Player]] page.
More information on the [[Player]] page.
Line 69: Line 61:
Previous work in the area of robot programming interfaces has focused primarily on providing a development environment that suits a particular control philosophy. While such tools are very useful, we believe that implementing them at such a low level imposes unnecessary restrictions on the programmer, who should have the choice to build any kind of control system while still benefiting from device abstraction and encapsulation.  
Previous work in the area of robot programming interfaces has focused primarily on providing a development environment that suits a particular control philosophy. While such tools are very useful, we believe that implementing them at such a low level imposes unnecessary restrictions on the programmer, who should have the choice to build any kind of control system while still benefiting from device abstraction and encapsulation.  
-
Thus in Player we make a clear distinction between the programming interface and the control structure, opting for a maximally general programming interface, with the belief that users will develop their own tools for building control systems. Further, most robot interfaces confine the programmer to a single language, providing a (generally closed-source) language-specific library to which the user must link his programs. In contrast, the TCP socket abstraction of Player allows for the use of virtually any programming language. In this way, it is much more &quot;minimal&quot; that other robot interfaces.
+
Thus in Player we make a clear distinction between the programming interface and the control structure, opting for a maximally general programming interface, with the belief that users will develop their own tools for building control systems. Further, most robot interfaces confine the programmer to a single language, providing a (generally closed-source) language-specific library to which the user must link his programs. In contrast, the TCP socket abstraction of Player allows for the use of virtually any programming language. In this way, it is much more "minimal" that other robot interfaces.
==What hardware and software does Player support?==
==What hardware and software does Player support?==
-
There is a [http://playerstage.sourceforge.net/doc/Player-cvs/player/supported_hardware.html list of supported devices].
+
There is a [http://playerstage.sourceforge.net/doc/Player-svn/player/supported_hardware.html list of supported devices].
==How do I get/build/install Player?==
==How do I get/build/install Player?==
Line 78: Line 70:
==How do I cross-compile Player (e.g., for the iPAQ or Gumstix)?==
==How do I cross-compile Player (e.g., for the iPAQ or Gumstix)?==
-
Of course you can find the [http://playerstage.sourceforge.net/doc/Player-cvs/player/group__tutorial__crosscompiling.html proper tutorial] for this.
+
Of course you can. Tutorials are available for users of [[Cross_Compile_Player_with_Openembedded_and_BitBake | OpenEmbedded]], and for [[Cross-compiling]] Player from the command line.
==What is the difference between Player and Stage and Gazebo? What is the difference between Player device drivers and simulated device models in Stage or Gazebo?==
==What is the difference between Player and Stage and Gazebo? What is the difference between Player device drivers and simulated device models in Stage or Gazebo?==
Line 84: Line 76:
See the explanation on [[Player#How_Player_works | How Player works]]
See the explanation on [[Player#How_Player_works | How Player works]]
-
==When I try to connect to Player, I get &quot;connection refused.&quot;==
+
==When I try to connect to Player, I get "connection refused."==
That's usually because either Player isn't running or because you're trying the wrong port. To check whether Player is running and to verify on which port(s) it is listening, use netstat. In Linux, the following should help (arguments will be different for other platforms):  
That's usually because either Player isn't running or because you're trying the wrong port. To check whether Player is running and to verify on which port(s) it is listening, use netstat. In Linux, the following should help (arguments will be different for other platforms):  
Line 92: Line 84:
==How do I add a device driver to Player?==
==How do I add a device driver to Player?==
-
Read [http://playerstage.sourceforge.net/doc/Player-cvs/player/group__tutorial__plugins.html this tutorial].  
+
If you already have a working plugin driver and wish to integrate it, read [[Adding drivers to Player 3]]. If you want to create your own plugin driver, read [[Writing a Player driver]]
-
==When I run Player (possibly under Stage), it exits with the message &quot;unknown host; probably should quit.&quot; What's the deal?==
+
==When I run Player (possibly under Stage), it exits with the message "unknown host; probably should quit." What's the deal?==
(This seems to occur mostly on OS X)
(This seems to occur mostly on OS X)
Add an entry to your /etc/hosts for your machine's name. For example, if your machine is called foobar:
Add an entry to your /etc/hosts for your machine's name. For example, if your machine is called foobar:
Line 100: Line 92:
127.0.0.1  localhost  foobar
127.0.0.1  localhost  foobar
-
There's probably already a line for 127.0.0.1 (known as the &quot;loopback address&quot;); you can just append your hostname to the end of that line.   
+
There's probably already a line for 127.0.0.1 (known as the "loopback address"); you can just append your hostname to the end of that line.   
==I have a syntax error involving PKG_CHECK_MODULES. What's the fix?==
==I have a syntax error involving PKG_CHECK_MODULES. What's the fix?==
If you get a syntax error involving PKG_CHECK_MODULES, it is likely that aclocal can't find the pkg.m4 file, which defines this macro. This is common on OS X with Fink, as the pkg-config package puts this file in /sw/share/aclocal, while the standard OS X aclocal program is looking in /usr/share/aclocal. Unfortunately, there is no reliable search path mechanism for aclocal, so the best  fix is just to copy (or symlink) /sw/share/aclocal/pkg.m4 to /usr/share/aclocal. This FAQ taken from the [http://www.cs.sfu.ca/research/groups/autonomy Autonomy Lab's] [http://deckard.cs.sfu.ca:8080/Wiki/PkgCheckModules P/S Wiki].  
If you get a syntax error involving PKG_CHECK_MODULES, it is likely that aclocal can't find the pkg.m4 file, which defines this macro. This is common on OS X with Fink, as the pkg-config package puts this file in /sw/share/aclocal, while the standard OS X aclocal program is looking in /usr/share/aclocal. Unfortunately, there is no reliable search path mechanism for aclocal, so the best  fix is just to copy (or symlink) /sw/share/aclocal/pkg.m4 to /usr/share/aclocal. This FAQ taken from the [http://www.cs.sfu.ca/research/groups/autonomy Autonomy Lab's] [http://deckard.cs.sfu.ca:8080/Wiki/PkgCheckModules P/S Wiki].  
 +
 +
Note that this only applied to versions of Player before Player 3.0.0.  Player 3 uses the CMake build system.
==How can I get high data rates from my SICK LMS laser rangefinder?==
==How can I get high data rates from my SICK LMS laser rangefinder?==
Line 120: Line 114:
-
Documentation about the Sony PTZ units is available [http://bssc.sel.sony.com/Professional/webapp/Literature?m=0&amp;t=L&amp;p=2&amp;d=10001&amp;sp=22 here]. In particular, page 15 of [http://bssc.sel.sony.com/Professional/docs/manuals/evid30commandlist1-21.pdf this manual] has a wiring diagram.  
+
Documentation about the Sony PTZ units is available [http://bssc.sel.sony.com/Professional/webapp/Literature?m=0&t=L&p=2&d=10001&sp=22 here]. In particular, page 15 of [http://bssc.sel.sony.com/Professional/docs/manuals/evid30commandlist1-21.pdf this manual] has a wiring diagram.  
Line 150: Line 144:
#Use an external streaming system, like Quicktime RTSP, gstreamer, VideoLAN or OpenH323.  
#Use an external streaming system, like Quicktime RTSP, gstreamer, VideoLAN or OpenH323.  
-
The first is the recommended way of accessing the camera. By building a driver in Player, the need to transmit camera information via a network is minimized. The Player server can process the image, extract whatever information you require, and return that if necessary. That is how the blobfinder and cmvision &quot;virtual sensors&quot; work. For custom vision processing algorithms (that do not belong in the Player source tree), users can create &quot;plugin&quot; drivers.  
+
The first is the recommended way of accessing the camera. By building a driver in Player, the need to transmit camera information via a network is minimized. The Player server can process the image, extract whatever information you require, and return that if necessary. That is how the blobfinder and cmvision "virtual sensors" work. For custom vision processing algorithms (that do not belong in the Player source tree), users can create "plugin" drivers.  
Line 156: Line 150:
-
Setting up an external streaming server allows you to access the &quot;live&quot; video feed using many other popular programs. Since the data is not travelling via Player, there is less impact on the performance of Player. Also, streaming servers typically compress the images before sending, reducing the network load somewhat. That said, there are no samples in Player/Stage to show you how to do this, as it is completely outside of the project.  
+
Setting up an external streaming server allows you to access the "live" video feed using many other popular programs. Since the data is not travelling via Player, there is less impact on the performance of Player. Also, streaming servers typically compress the images before sending, reducing the network load somewhat. That said, there are no samples in Player/Stage to show you how to do this, as it is completely outside of the project.  
-
Searching the mailing lists for &quot;camera&quot; will bring up most of the previous discussions of this matter.  
+
Searching the mailing lists for "camera" will bring up most of the previous discussions of this matter.  
Line 168: Line 162:
* http://www.openh323.org/
* http://www.openh323.org/
-
==What is the purpose of the key in a provides or requires field (e.g., the &quot;odometry&quot; in &quot;odometry::position:0&quot;)?==
+
==What is the purpose of the key in a provides or requires field (e.g., the "odometry" in "odometry::position:0")?==
-
Look [http://playerstage.sourceforge.net/doc/Player-cvs/player/group__tutorial__config.html#device_key here].
+
This is explained in the [[Writing configuration files#The key field in a device address | Writing Confguration Files]] tutorial.
==What is set odometry, and what does set odometry do?==
==What is set odometry, and what does set odometry do?==
Line 187: Line 181:
The opaque interface is usually used to prototype new interfaces and/  
The opaque interface is usually used to prototype new interfaces and/  
-
or extensions to existing interfaces.  After some testing and 
+
or extensions to existing interfaces.  If you would like to add a new
-
refinement, these additions can be submitted for consideration to be 
+
interface, you have two options: create a plugin interface or add a
-
included in player.h, at which point they'll be fully supported, with 
+
new interface definition to player. For custom applications, it's
-
XDR wrappers, client-side proxies, etc.
+
better to create a plugin interface.  If the interface needs to be
-
 
+
integrated into player, you can follow the instructions at [[Writing_a_Player_interface]]
Line 234: Line 228:
==How can I make movies of my Stage simulations?==
==How can I make movies of my Stage simulations?==
-
For Stage 1.6 and up, use the File:Export menu in the GUI to dump screenshots, then see &quot;How can I make movies from screenshots?&quot; question above.
+
For Stage 1.6 and up, use the File:Export menu in the GUI to dump screenshots, then see "How can I make movies from screenshots?" question above.
-
==Where is the &quot;sonar&quot; model in Stage?==  
+
==Where is the "sonar" model in Stage?==  
-
Stage does not have a &quot;sonar&quot; model, but it does have a &quot;ranger&quot; model that does a reasonable job of modeling sonar and IR rangefinders, or similar arrays of simple rangefinders. The ranger models a sonar or IR cone by raytracing a  configurable number of thin diverging beams.
+
Stage does not have a "sonar" model, but it does have a "ranger" model that does a reasonable job of modeling sonar and IR rangefinders, or similar arrays of simple rangefinders. The ranger models a sonar or IR cone by raytracing a  configurable number of thin diverging beams.
=Gazebo=
=Gazebo=
==Where can I find the full XML specification for gazebo world files?==
==Where can I find the full XML specification for gazebo world files?==
-
Gazebo 0.9 -&gt; THIS NEEDS TO BE INSERTED HERE  
+
Gazebo 0.9 -> THIS NEEDS TO BE INSERTED HERE  
==What is Gazebo?==
==What is Gazebo?==
Line 256: Line 250:
==How can I make movies of Gazebo?==  
==How can I make movies of Gazebo?==  
===Gazebo 0.7===
===Gazebo 0.7===
-
Gazebo will not make movies directly, but can be instructed to export still frames, which you can then animate (see how to make movies question above). In versions up to and including 0.3.0, click on the window you wish to export, then press the 'W' key'; frames are saved in PPM format in a directory named &quot;frames-&quot;. Note that saving frames will significantly affect Gazebo's performance.
+
Gazebo will not make movies directly, but can be instructed to export still frames, which you can then animate (see how to make movies question above). In versions up to and including 0.3.0, click on the window you wish to export, then press the 'W' key'; frames are saved in PPM format in a directory named "frames-". Note that saving frames will significantly affect Gazebo's performance.
===Gazebo 0.8===
===Gazebo 0.8===
-
Adding &lt;saveFrames&gt;true&lt;saveFrames&gt; to the camera sensor will save those frames. The frames will be saved in .jpg format.
+
Adding <saveFrames>true<saveFrames> to the camera sensor will save those frames. The frames will be saved in .jpg format.
==How can I read image data from a camera?==
==How can I read image data from a camera?==
Line 271: Line 265:
==How do I get the latest code?==
==How do I get the latest code?==
-
All the code for the project is mantained in CVS or Subversion (SVN) repositories at SourceForge. Project-specific instructions for CVS access, both anonymous and read/write, are [http://sourceforge.net/cvs/?group_id=42445 here]. The same info for SVN is [http://sourceforge.net/svn/?group_id=42445 here].
+
All the code for Player is maintained in Subversion (SVN) repositories at SourceForge. Project-specific instructions for SVN access, both anonymous and read/write, are [http://sourceforge.net/svn/?group_id=42445 here].
 +
 
 +
Stage code is maintained in git repositories at Github. Project-specific instructions for git access, both anonymous and read/writem are [https://github.com/rtv/Stage here]  
Player is in SVN.  To check out Player, use this command:
Player is in SVN.  To check out Player, use this command:
-
&lt;pre&gt;
+
<pre>
-
svn co https://playerstage.svn.sourceforge.net/svnroot/playerstage/code/player/trunk player
+
svn checkout svn://svn.code.sf.net/p/playerstage/svn/code/player/trunk player
-
&lt;/pre&gt;
+
</pre>
-
Stage is now hosted at Github. You can get the very latest Stage 3.2 using this command:
+
Stage is now hosted at Github. You can get the very latest Stage using this command:
-
&lt;pre&gt;
+
<pre>
git clone http://github.com/rtv/Stage.git stage
git clone http://github.com/rtv/Stage.git stage
-
&lt;/pre&gt;
+
</pre>
-
Gazebo is in SVN.  To check out Gazebo:
+
Gazebo is now hosted at [http://www.gazebosim.org gazebosim.org].  Please see their [http://www.gazebosim.org/downloads.html Downloads] page for more information
-
&lt;pre&gt;
+
-
svn co https://playerstage.svn.sourceforge.net/svnroot/playerstage/code/gazebo/trunk gazebo
+
-
&lt;/pre&gt;
+
===Branches===
===Branches===
-
To check out a branch from SVN, say, the release-2-0-patches branch of Player:
+
To check out a branch from SVN, say, the release-3-0-patches branch of Player:
-
&lt;pre&gt;
+
<pre>
-
$ svn co https://playerstage.svn.sourceforge.net/svnroot/playerstage/code/player/branches/release-2-0-patches player-2.0.x
+
svn checkout svn://svn.code.sf.net/p/playerstage/svncode/player/branches/release-3-0-patches player-3.0.x
-
&lt;/pre&gt;
+
</pre>
-
To check out Stage 2.1, use this command:
+
Recent releases of Stage are git tags in the Stage github repository. After cloning the git repository with the directions above, you can check out tags like so:
-
&lt;pre&gt;
+
<pre>
-
svn co https://playerstage.svn.sourceforge.net/svnroot/playerstage/code/stage/branches/release-2-1-patches stage_2.1
+
git checkout v4.0.0
-
&lt;/pre&gt;
+
</pre>
-
To check out a branch from CVS, say, the release-2-0-patches branch of Stage:
+
Older release of Stage are still in subversion.  To check out Stage 3.2, use this command:
-
&lt;pre&gt;
+
<pre>
-
(first set up your CVSROOT)
+
svn checkout svn://svn.code.sf.net/p/playerstage/svn/code/stage/branches/release-3-2-patches stage_3.2
-
$ cvs co -r release-2-0-patches stage
+
</pre>
-
&lt;/pre&gt;
+
==How do I build from an SVN working copy?==
==How do I build from an SVN working copy?==
Line 333: Line 325:
===Stage===
===Stage===
-
Stage's CMake-based build system is still under development, so it still uses the GNU Autotools-based build system. Since we're using the GNU Autotools, it's a little different to build from a working copy instead of from a distribution. First, you need autoconf and automake installed. They are already installed on any reasonable UNIX-like machine, but you might need to upgrade them; you can download both packages from any GNU mirror. We're currently using:
+
Stage uses a CMake build system similar to Player's.  Follow the directions for Player above.
-
* autoconf 2.53
+
-
* automake 1.9
+
-
   
+
-
Newer versions will probably work, but older ones probably won't. If you do use newer versions, keep in mind that you should not use any macros that aren't available in the versions listed above, because that will likely break the build for other developers.
+
-
 
+
-
Building from SVN involve the same steps:
+
-
 
+
-
# autoreconf -i -s  OR  ./bootstrap
+
-
# ./configure [options]
+
-
# make
+
-
# make install (optional)
+
-
 
+
-
The autoreconf tool runs the right Autotools in the right order to generate necessary files, including a configure script. You only need to supply the -i -s arguments the first time you use autoreconf on a checked out copy. If autoreconf doesn't work for you (older versions were pretty buggy), then you can run the bootstrap script instead, which does the same thing.
+
-
 
+
-
You only usually need to run autoreconf when some part of the build system, such as configure.in or acinclude.m4, has changed; at other times, you can just run configure, or even just make. However, it's safest to run autoreconf whenever you update from SVN, in case something important changed. The exact dependencies among the various files and tools are of course deterministic but extremely complex and it's best not to think about them.
+
-
 
+
-
One more thing: since we're using automake, we don't write Makefiles. Instead, we write Makefile.ams (automake files), which are like meta-Makefiles. Except in special cases, Makefiles (and Makefile.ins) are auto-generated and should not be checked in.
+
===Gazebo===
===Gazebo===
Line 360: Line 335:
Patches to fix up the docs would be most appreciated.  
Patches to fix up the docs would be most appreciated.  
-
Patches against SVN/CVS are always better.  There's some value to making patches against the latest release, as it's easier for users to apply them.  But if you only make one patch, please make it against SVN/CVS (and submit to the [http://sourceforge.net/tracker/?group_id=42445&amp;atid=433166 patch tracker] at SourceForge; that way it won't get lost).
+
Patches against SVN/GIT are always better.  There's some value to making patches against the latest release, as it's easier for users to apply them.  But if you only make one patch, please make it against SVN/GIT (and submit to the [http://sourceforge.net/tracker/?group_id=42445&atid=433166 patch tracker] at SourceForge; that way it won't get lost).
 +
 
 +
Please also read the [[Contributing]] page, the [[Roadmap]], and the [[Wishlist]].
[[Category:Documentation]]
[[Category:Documentation]]
 +
 +
[http://custom-essay-writing-service.org/index.php custom essay writing]

Latest revision as of 03:06, 17 December 2012

Personal tools