Install ROS on Cygwin
This page is translation of this wabpage. http://cseweb.ucsd.edu/~t3wu/notes/ros/ros-cygwin.html 間違った翻訳をしていたらすみません。
ROS-rc was tested on an Windows XP inside a VMWare virtual machine and one windows xp dual core laptop. I only compiled "$ROS_ROOT/" and assumed the installation is in ~/ros/ I also did some test using "rosmake roscpp_tutorials" and "rosmake rospy_tutorials". They seems to work fine. Have fun. tingfan@gmail.com
Originally posted on Tue Jan 5 21:39:58 PST 2010 Updated on Sat Jan 9 16:46:34 PST 2010
Steps
最新のcygwinセットアップ(1.7)をダウンロードしてください、そして、追加パッケージwgetで最小設定でインストールしてください。またこれらの(デフォルト)パッケージのbash, tar, gawk およびbzip2(apt-cygのための)を必ず持ってください。
apt-cygのインストール
wget http://stephenjungels.com/jungels.net/projects/apt-cyg/apt-cyg -O /bin/apt-cyg or wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg -O /bin/apt-cyg then chmod a+x /bin/apt-cyg
今、あなたはこのコマンドラインでパッケージをインストールできます。
- apt-cyg -m [mirror site] install [package name]
ここにあなたが知る必要がある2つのサイトがあります。 1つは公式リリースのミラーで、
apt-cyg -m ftp://sourceware.org/pub/cygwin/ install [package name]
もう1つがCygwinポート。つまり束ねられたパッケージの補数における別々に維持されたパッケージ倉庫です。
apt-cyg -m ftp://sourceware.org/pub/cygwinports/ install [package name]
今度は、公式のリリースから次のツールをインストールしてください。 subversion, make, cmake, gcc4, python, pkg-config それと patch。 また、私はdiffutilsをインストールしました。
apt-cyg -m ftp://sourceware.org/pub/cygwin/ install subversion make cmake gcc4 python pkg-config vim diffutils
必要なパッケージの残りは、cygwinportsからapt-cygを使用することで自動的にrosによってインストールされるでしょう。 ROSをインストールしてください。 この部分は大体オフィシャルドキュメントどおりです。
次にPyYamlをインストールしてください。
wget --tries=10 http://pyyaml.org/download/pyyaml/PyYAML-3.09.tar.gz tar xzf PyYAML-3.09.tar.gz cd PyYAML-3.09 python setup.py install cd ..
Get rosconfig
wget --no-check-certificate http://ros.org/rosconfig -O ~/rosconfig chmod 755 ~/rosconfig
ROSソースをチェックしてください。 新しいpythonに基づいたrosdepを使用したいと思うので、私はRCバージョンを使用します。 速い接続がないなら、あなたは最初にROSだけにチェックを入れてからrcに変えるとよいでしょう。 (2010年1月09日にRCはリリースになりました。)
~/rosconfig install http://ros.org/rosconfigs/ros.thisconfig ~/ros
(アップデートのあった2010年の1月9日に、パッチは最新のリリースにほとんど合併されました。詳しい情報のためにTicket2283を読んでください。あなたが最新のソースをつかうなら、パッチは必要でないでしょう) ros-cygwinパッチをダウンロードして、適用してください。
- cd ~/ros/
wget http://www.cse.ucsd.edu/~t3wu/notes/ros/ros-cygwin.patch patch -p0 < ros-cygwin.patch
非unicoreマシンを所有しているなら、このメッセージを読んでください。 環境Setup--このステップは元の手順と異なっています。
~/rosconfig setup ~/ros > ~/.bashrc.ros echo "source ~/.bashrc.ros" >> ~/.bashrc
.bashrc.rosの端に次の線を加えてください。Rosの実行のときは、"*/lib" フォルダのdllを使用してください。
export PATH=$PATH:$ROS_ROOT/3rdparty/xmlrpcpp/lib/ export PATH=$PATH:$ROS_ROOT/core/rosconsole/lib/ export PATH=$PATH:$ROS_ROOT/core/roscpp/lib/ export PATH=$PATH:$ROS_ROOT/core/roslib/lib/ export PATH=$PATH:$ROS_ROOT/tools/rospack/lib/
何か"c:\Program Files"などの余分なパスを含むなら、echo $PATHをチェックするといいでしょう。 Lioutikovさん(r.lioutikov@gmx.de)は、問題を解決するために、.bashrc.rosにPATH=${PATH// /\\ }をエクスポートする手法を示しました。 私自らはwindowsからどんなパスも絶対に引き継ぎません。 GO!
- source ~/.bashrc ~/rosconfig bootstrap -s ~/ros/this.rosconfig ~/ros roscpp
Simple Test - Let talker from rospy talk to listener from roscpp. The "windows fire wall" dialog may popout to ask for permission to listen to a port. Just click on "unblock".
- rosmake roscpp_tutorials rosmake rospy_tutorials
In separate cygwin windows, run
- roscore rosrun rospy_tutorials talker.py rosrun roscpp_tutorials listener.exe
Known Issues
Executables on windows come with ".exe" suffix. This cause some issue in ros. Sometimes you can fix the problem by adding suffix in the command such has "rosrun roscpp_tutorials listener.exe". However, I think this should be taken care so that one version of code runs everywhere. ensure there's no spaces in "$PATH" such as "c:/Program Files", this confuses some ROS shell scrips which then produces misleading error msg. Cygwin seems to have trouble generate static-linked libraries. Therefore there will be additional dlls floating around in ros/*/lib. Maybe someone could help re-write the cmake rules to cure the problem. What's the difference between ros/rosdep.yaml and ros/tools/rosdep/rosdep.yam? There are both official release mirrors and cygwin-ports mirrors which complicate the design of rosdep.yaml (need to have some way to denote the origin). Improving apt-cyg to use more than one mirrors could be a elegant solution.
<<TracLink(REPO COMPONENT)>>