Electric Emys — релиз от 30 августа 2011 — четвёртый
дистрибутив ROS .
Electric Emys содержит стабильные версии библиотек arm_navigation и
PCL , а так же расширяет поддержку новых платформ, таких как
Android и
Arduino .
ROS Electric предназначена для работы под
Ubuntu Linux Lucid (10.04) — Natty (11.04), но может быть установлена и на другие дистрибутивы
Linux (Red Hat, Debian, Gentoo). Так же, система может быть установлена на Mac OS X, FreeBSD, Android и даже Windows, но функциональность системы будет ограничена.
Обзор
Разработчики ROS, стремятся интегрировать в систему лучшие открытые робототехнические библиотеки, сохраняя при этом модульность системы, чтобы пользователь мог установить только те модули, которые ему действительно необходимы.
Теперь, такие библиотеки как
OpenCV , assimp, yaml-cpp, TinyXML и
Eigen вынесены из ROS и устанавливаются в ОС стандартным образом, что позволяет использовать эти библиотеки и без ROS.
В ROS Electric многие низкоуровневые библиотки ROS были разделены на более мелкие компоненты, так что, у пользователей, опять же есть возможность использовать то, что нужно.
Arm navigation 1.0
Интерактивные маркеры (Interactive markers)
PCL 1.1
Обновлена версия библиотеки
Point Cloud Library
OpenCV 2.3, standalone
Стек
vision_opencv теперь интегрируется с «системной версией» OpenCV и обновляется до OpenCV 2.3.1
Android, Pure Java
Damon Kohler из Google создал новую библиотеку
rosjava , которая написана только на Java и совместима с Android.
Arduino
Michael Ferguson и Adam Stambler создали новую библиотеку —
rosserial , которая позволяет использовать
Arduino совместно с ROS. Данная библиотека устанавливает соединение точка-точка (point-to-point connection) с контроллером Arduino так, что вы можете посылать сообщения ROS туда и обратно.
Windows
Daniel Stonier (Yujin Robot) поддерживает стек
win_ros , который содержит библиотеки и инструменты для использования ROS под ОС Windows.
ARM
доступны бинарные Debian пакеты некоторых стеков ROS для систем на базе
ARM (armel systems). Это позволит провести бинарную установку стеков ROS на такие платформы, как PandaBoard и Gumstix.
Python 3
Установка
Шаги по устанновке ROS Electric под Ubuntu Linux расписаны на официальном сайте:
www.ros.org/wiki/electric/Installation/Ubuntu
Установка Electric почти ничем не отличается от
установки C turtle .
Установим на виртуальную машину
VirtualBox , Ubuntu 11.04 (Natty)
и выполним несколько простых команд:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu natty main" > /etc/apt/sources.list.d/ros-latest.list' — добавляем адрес сервера ROS, чтобы менеджер пакетов знал откуда брать пакеты ROS
wget http://packages.ros.org/ros.key -O - | sudo apt-key add - — получим ключ
sudo apt-get update — обновим список пакетов, тем самым сервер ROS.org будет проиндексирован
sudo apt-get install ros-electric-desktop-full — собственно сама команда установки ROS Electric ( рекомендованная конфигурация
Desktop-Full )
по традиции, приведу огромный список устанавливаемых пакетов:
$ sudo apt-get install ros-electric-desktop-full
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
assimp-dev autoconf automake autotools-dev blt cmake cmake-data comerr-dev
debhelper doxygen doxygen-latex emacsen-common esound-common freeglut3
freeglut3-dev gccxml graphviz html2text krb5-multidev lacheck latex-beamer
latex-xcolor libaa1-dev libapr1 libapr1-dev libaprutil1 libaprutil1-dev
libasound2-dev libassimp2 libatk1.0-dev libaudio-dev libaudio2
libaudiofile-dev libaudiofile0 libavahi-client-dev libavahi-common-dev
libavcodec-dev libavcodec52 libavformat-dev libavformat52 libavutil-dev
libavutil50 libblas-dev libblas3gf libboost-all-dev libboost-date-time-dev
libboost-date-time1.42-dev libboost-date-time1.42.0 libboost-dev
libboost-filesystem-dev libboost-filesystem1.42-dev
libboost-filesystem1.42.0 libboost-graph-dev libboost-graph1.42-dev
libboost-graph1.42.0 libboost-iostreams-dev libboost-iostreams1.42-dev
libboost-iostreams1.42.0 libboost-math-dev libboost-math1.42-dev
libboost-math1.42.0 libboost-program-options-dev
libboost-program-options1.42-dev libboost-program-options1.42.0
libboost-python-dev libboost-python1.42-dev libboost-python1.42.0
libboost-regex-dev libboost-regex1.42-dev libboost-regex1.42.0
libboost-serialization-dev libboost-serialization1.42-dev
libboost-signals-dev libboost-signals1.42-dev libboost-signals1.42.0
libboost-system-dev libboost-system1.42-dev libboost-system1.42.0
libboost-test-dev libboost-test1.42-dev libboost-test1.42.0
libboost-thread-dev libboost-thread1.42-dev libboost-thread1.42.0
libboost-wave-dev libboost-wave1.42-dev libboost-wave1.42.0
libboost1.42-all-dev libboost1.42-dev libbz2-dev libcaca-dev
libcairo-script-interpreter2 libcairo2-dev libcdt4 libcgraph5
libcppunit-1.12-1 libcppunit-dev libcurl3 libcurl4-openssl-dev libdb4.8-dev
libdbus-1-3 libdbus-1-dev libdrm-dev libeigen3-dev libesd0 libesd0-dev
libexpat1-dev libfltk1.1 libfltk1.1-dev libfontconfig1-dev libfreeimage-dev
libfreeimage3 libfreetype6 libfreetype6-dev libgdk-pixbuf2.0-dev
libgfortran3 libgl1-mesa-dev libgl1-mesa-glx libgl2ps-dev libgl2ps0
libglib2.0-dev libglu1-mesa libglu1-mesa-dev libglut3-dev libgraph4 libgsm1
libgssapi-krb5-2 libgssrpc4 libgtest-dev libgtest0 libgtk2.0-dev libgvc5
libgvpr1 libhdf5-serial-1.8.4 libhdf5-serial-dev libibverbs-dev libibverbs1
libice-dev libicu-dev libidn11-dev libjasper-dev libjpeg62-dev libk5crypto3
libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkms1 libkrb5-3 libkrb5-dev
libkrb5support0 liblapack-dev liblapack3gf libldap2-dev liblog4cxx10
liblog4cxx10-dev libltdl-dev libmail-sendmail-perl libmysqlclient-dev
libmysqlclient16 libncurses5-dev libnetpbm10 libnetpbm10-dev libnuma1
libogg-dev libopencv2.3 libopencv2.3-dev libopenmpi-dev libopenmpi1.3
libpango1.0-dev libpathplan4 libpcre3-dev libpcrecpp0 libpixman-1-dev
libpng12-0 libpng12-dev libpq-dev libpq5 libpthread-stubs0
libpthread-stubs0-dev libpulse-browse0 libpulse-dev libpulse-mainloop-glib0
libpulse0 libqhull-dev libqhull5 libschroedinger-1.0-0 libsdl-image1.2
libsdl-image1.2-dev libsdl1.2-dev libslang2-dev libsm-dev libsqlite3-dev
libssl-dev libsvn1 libswscale-dev libswscale0 libsys-hostname-long-perl
libtheora-dev libtiff4-dev libtiffxx0c2 libtinyxml-dev libtinyxml2.5.3
libtool libtorque2 libv4l-dev libva1 libvpx0 libvtk5-dev libvtk5.4
libwxbase2.8-0 libwxbase2.8-dev libwxgtk2.8-0 libwxgtk2.8-dev libx11-dev
libxau-dev libxaw7-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev
libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev
libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2 libxml2-dev
libxmlrpc-core-c3-0 libxmu-dev libxmu-headers libxpm-dev libxrandr-dev
libxrender-dev libxss-dev libxt-dev libxxf86vm-dev libyaml-0-2 libyaml-dev
libzzip-0-13 libzzip-dev lmodern luatex m4 mercurial mercurial-common
mesa-common-dev mpi-default-dev mysql-common nvidia-cg-toolkit
openmpi-common pgf po-debconf preview-latex-style prosper ps2eps pulseaudio
pulseaudio-esound-compat pulseaudio-module-bluetooth pulseaudio-module-gconf
pulseaudio-module-x11 pulseaudio-utils python-dateutil python-dev
python-docutils python-epydoc python-jinja2 python-lxml python-matplotlib
python-matplotlib-data python-numpy python-paramiko python-pygments
python-pyparsing python-roman python-sip python-sip-dev python-sphinx
python-tk python-tz python-wxgtk2.8 python-wxversion python-yaml
python2.7-dev ros-electric-assimp ros-electric-bond-core ros-electric-bullet
ros-electric-common ros-electric-common-msgs ros-electric-common-rosdeps
ros-electric-common-tutorials ros-electric-diagnostics
ros-electric-diagnostics-monitors ros-electric-documentation
ros-electric-driver-common ros-electric-eigen ros-electric-executive-smach
ros-electric-executive-smach-visualization ros-electric-filters
ros-electric-geometry ros-electric-geometry-experimental
ros-electric-geometry-tutorials ros-electric-geometry-visualization
ros-electric-image-common ros-electric-image-pipeline
ros-electric-image-transport-plugins ros-electric-laser-pipeline
ros-electric-navigation ros-electric-nodelet-core
ros-electric-orocos-kinematics-dynamics ros-electric-perception-pcl
ros-electric-physics-ode ros-electric-pluginlib ros-electric-robot-model
ros-electric-robot-model-tutorials ros-electric-robot-model-visualization
ros-electric-ros ros-electric-ros-comm ros-electric-ros-tutorials
ros-electric-rx ros-electric-simulator-gazebo ros-electric-simulator-stage
ros-electric-slam-gmapping ros-electric-stage ros-electric-vision-opencv
ros-electric-visualization ros-electric-visualization-common
ros-electric-visualization-tutorials ros-electric-xacro subversion tcl8.5
tcl8.5-dev tex-common texlive-base texlive-binaries texlive-common
texlive-doc-base texlive-extra-utils texlive-font-utils
texlive-fonts-recommended texlive-fonts-recommended-doc
texlive-generic-recommended texlive-latex-base texlive-latex-base-doc
texlive-latex-extra texlive-latex-extra-doc texlive-latex-recommended
texlive-latex-recommended-doc texlive-luatex texlive-pictures
texlive-pictures-doc texlive-pstricks texlive-pstricks-doc tipa tk8.5
tk8.5-dev ttf-lyx uuid-dev wx2.8-headers x11proto-composite-dev
x11proto-core-dev x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev
x11proto-kb-dev x11proto-randr-dev x11proto-render-dev
x11proto-scrnsaver-dev x11proto-xext-dev x11proto-xf86vidmode-dev
x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev yaml-cpp0.2.6-dev
zlib1g-dev
Suggested packages:
autoconf2.13 autoconf-archive gnu-standards autoconf-doc blt-demo dh-make
doxygen-doc doxygen-gui esound-clients graphviz-doc krb5-doc auctex
libasound2-doc nas libfaad-dev libgsm1-dev libschroedinger-dev libspeex-dev
libvorbis-dev libraw1394-dev libdc1394-22-dev libboost1.42-doc docbook-xsl
default-jdk fop libcairo2-doc libqttestrunner1c2a libcppunit-doc
libcurl3-dbg db4.8-doc libeigen3-doc fltk1.1-doc fluid libpng12-0-dev
libglib2.0-doc python-subunit krb5-user libgtk2.0-doc libhdf5-doc icu-doc
liblog4cxx10-doc libtool-doc ncurses-doc libpango1.0-doc imagemagick
postgresql-doc-8.4 sqlite3-doc libtinyxml-doc automaken gfortran
fortran95-compiler gcj vtk-examples vtk-doc openmpi-bin lam-runtime
wx2.8-doc libgnomeprintui2.2-0 wx-common xlibmesa-glu-dev libglu-dev qct
wish vim emacs kdiff3 tkdiff meld xxdiff python-mysqldb libmail-box-perl
pavumeter paman paprefs pulseaudio-module-raop texlive-lang-french
epydoc-doc python-profiler python-jinja2-doc python-lxml-dbg dvipng ipython
python-configobj python-excelerator python-matplotlib-doc python-scipy
python-traits python-qt4 python-numpy-doc python-numpy-dbg python-nose
ttf-bitstream-vera jsmath tix python-tk-dbg wx2.8-examples python-wxtools
ruby tcsh csh octave3.0 mksh pdksh python-xml editra subversion-tools
db4.8-util tclreadline tcl8.5-doc perl-tk dvidvi fragmaster latexmk
purifyeps xindy psutils t1utils texpower tk8.5-doc
The following NEW packages will be installed:
assimp-dev autoconf automake autotools-dev blt cmake cmake-data comerr-dev
debhelper doxygen doxygen-latex emacsen-common esound-common freeglut3
freeglut3-dev gccxml graphviz html2text krb5-multidev lacheck latex-beamer
latex-xcolor libaa1-dev libapr1 libapr1-dev libaprutil1 libaprutil1-dev
libasound2-dev libassimp2 libatk1.0-dev libaudio-dev libaudio2
libaudiofile-dev libaudiofile0 libavahi-client-dev libavahi-common-dev
libavcodec-dev libavcodec52 libavformat-dev libavformat52 libavutil-dev
libavutil50 libblas-dev libblas3gf libboost-all-dev libboost-date-time-dev
libboost-date-time1.42-dev libboost-date-time1.42.0 libboost-dev
libboost-filesystem-dev libboost-filesystem1.42-dev
libboost-filesystem1.42.0 libboost-graph-dev libboost-graph1.42-dev
libboost-graph1.42.0 libboost-iostreams-dev libboost-iostreams1.42-dev
libboost-iostreams1.42.0 libboost-math-dev libboost-math1.42-dev
libboost-math1.42.0 libboost-program-options-dev
libboost-program-options1.42-dev libboost-program-options1.42.0
libboost-python-dev libboost-python1.42-dev libboost-python1.42.0
libboost-regex-dev libboost-regex1.42-dev libboost-regex1.42.0
libboost-serialization-dev libboost-serialization1.42-dev
libboost-signals-dev libboost-signals1.42-dev libboost-signals1.42.0
libboost-system-dev libboost-system1.42-dev libboost-system1.42.0
libboost-test-dev libboost-test1.42-dev libboost-test1.42.0
libboost-thread-dev libboost-thread1.42-dev libboost-thread1.42.0
libboost-wave-dev libboost-wave1.42-dev libboost-wave1.42.0
libboost1.42-all-dev libboost1.42-dev libbz2-dev libcaca-dev
libcairo-script-interpreter2 libcairo2-dev libcdt4 libcgraph5
libcppunit-1.12-1 libcppunit-dev libcurl3 libcurl4-openssl-dev libdb4.8-dev
libdbus-1-dev libdrm-dev libeigen3-dev libesd0 libesd0-dev libexpat1-dev
libfltk1.1 libfltk1.1-dev libfontconfig1-dev libfreeimage-dev libfreeimage3
libfreetype6-dev libgdk-pixbuf2.0-dev libgfortran3 libgl1-mesa-dev
libgl2ps-dev libgl2ps0 libglib2.0-dev libglu1-mesa-dev libglut3-dev
libgraph4 libgsm1 libgssrpc4 libgtest-dev libgtest0 libgtk2.0-dev libgvc5
libgvpr1 libhdf5-serial-1.8.4 libhdf5-serial-dev libibverbs-dev libibverbs1
libice-dev libicu-dev libidn11-dev libjasper-dev libjpeg62-dev
libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkms1 libkrb5-dev
liblapack-dev liblapack3gf libldap2-dev liblog4cxx10 liblog4cxx10-dev
libltdl-dev libmail-sendmail-perl libmysqlclient-dev libmysqlclient16
libncurses5-dev libnetpbm10 libnetpbm10-dev libnuma1 libogg-dev libopencv2.3
libopencv2.3-dev libopenmpi-dev libopenmpi1.3 libpango1.0-dev libpathplan4
libpcre3-dev libpcrecpp0 libpixman-1-dev libpng12-dev libpq-dev libpq5
libpthread-stubs0 libpthread-stubs0-dev libpulse-dev libqhull-dev libqhull5
libschroedinger-1.0-0 libsdl-image1.2 libsdl-image1.2-dev libsdl1.2-dev
libslang2-dev libsm-dev libsqlite3-dev libssl-dev libsvn1 libswscale-dev
libswscale0 libsys-hostname-long-perl libtheora-dev libtiff4-dev
libtiffxx0c2 libtinyxml-dev libtinyxml2.5.3 libtool libtorque2 libv4l-dev
libva1 libvpx0 libvtk5-dev libvtk5.4 libwxbase2.8-0 libwxbase2.8-dev
libwxgtk2.8-0 libwxgtk2.8-dev libx11-dev libxau-dev libxaw7-dev
libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev
libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev
libxft-dev libxi-dev libxinerama-dev libxml2-dev libxmlrpc-core-c3-0
libxmu-dev libxmu-headers libxpm-dev libxrandr-dev libxrender-dev libxss-dev
libxt-dev libxxf86vm-dev libyaml-0-2 libyaml-dev libzzip-0-13 libzzip-dev
lmodern luatex m4 mercurial mercurial-common mesa-common-dev mpi-default-dev
mysql-common nvidia-cg-toolkit openmpi-common pgf po-debconf
preview-latex-style prosper ps2eps python-dateutil python-dev
python-docutils python-epydoc python-jinja2 python-lxml python-matplotlib
python-matplotlib-data python-numpy python-paramiko python-pygments
python-pyparsing python-roman python-sip python-sip-dev python-sphinx
python-tk python-tz python-wxgtk2.8 python-wxversion python-yaml
python2.7-dev ros-electric-assimp ros-electric-bond-core ros-electric-bullet
ros-electric-common ros-electric-common-msgs ros-electric-common-rosdeps
ros-electric-common-tutorials ros-electric-desktop-full
ros-electric-diagnostics ros-electric-diagnostics-monitors
ros-electric-documentation ros-electric-driver-common ros-electric-eigen
ros-electric-executive-smach ros-electric-executive-smach-visualization
ros-electric-filters ros-electric-geometry
ros-electric-geometry-experimental ros-electric-geometry-tutorials
ros-electric-geometry-visualization ros-electric-image-common
ros-electric-image-pipeline ros-electric-image-transport-plugins
ros-electric-laser-pipeline ros-electric-navigation
ros-electric-nodelet-core ros-electric-orocos-kinematics-dynamics
ros-electric-perception-pcl ros-electric-physics-ode ros-electric-pluginlib
ros-electric-robot-model ros-electric-robot-model-tutorials
ros-electric-robot-model-visualization ros-electric-ros
ros-electric-ros-comm ros-electric-ros-tutorials ros-electric-rx
ros-electric-simulator-gazebo ros-electric-simulator-stage
ros-electric-slam-gmapping ros-electric-stage ros-electric-vision-opencv
ros-electric-visualization ros-electric-visualization-common
ros-electric-visualization-tutorials ros-electric-xacro subversion tcl8.5
tcl8.5-dev tex-common texlive-base texlive-binaries texlive-common
texlive-doc-base texlive-extra-utils texlive-font-utils
texlive-fonts-recommended texlive-fonts-recommended-doc
texlive-generic-recommended texlive-latex-base texlive-latex-base-doc
texlive-latex-extra texlive-latex-extra-doc texlive-latex-recommended
texlive-latex-recommended-doc texlive-luatex texlive-pictures
texlive-pictures-doc texlive-pstricks texlive-pstricks-doc tipa tk8.5
tk8.5-dev ttf-lyx uuid-dev wx2.8-headers x11proto-composite-dev
x11proto-core-dev x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev
x11proto-kb-dev x11proto-randr-dev x11proto-render-dev
x11proto-scrnsaver-dev x11proto-xext-dev x11proto-xf86vidmode-dev
x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev yaml-cpp0.2.6-dev
zlib1g-dev
The following packages will be upgraded:
libdbus-1-3 libfreetype6 libgl1-mesa-glx libglu1-mesa libgssapi-krb5-2
libk5crypto3 libkrb5-3 libkrb5support0 libpng12-0 libpulse-browse0
libpulse-mainloop-glib0 libpulse0 libxml2 pulseaudio
pulseaudio-esound-compat pulseaudio-module-bluetooth pulseaudio-module-gconf
pulseaudio-module-x11 pulseaudio-utils
19 upgraded, 359 newly installed, 0 to remove and 216 not upgraded.
Need to get 974 MB of archives.
After this operation, 2,619 MB of additional disk space will be used.
Чтож, по сравнению с
C turtle , аппетиты уменьшились с 1,650MB до 974MB, что не может не радовать.
Но размеры всё же оставляют впечатление монстрообразности ROS. С другой стороны, видно, что основная масса установки — это различные системные библиотеки, которые просто необходимы для работы ROS, а сами пакеты ROS Electric (ros-electric-*.deb) весят всего 324MB.
После установки ROS находится в директории
/opt/ros/electric/ — как видите у Electric свой подкаталог в директории /opt/ros/, что позволяет устанавливать на одну ОС несколько версий ROS.
Почему-то файлы setup в /opt/ros/electric/ не заданы исполняемыми — исправляем:
sudo chmod +x /opt/ros/electric/setup.*
Остаётся прописать установку переменных окружения ROS, при начале новой сессии bash:
echo "source /opt/ros/electric/setup.bash" >> ~/.bashrc
Открываем новый терминал и для проверки запускаем
roscore
Вот и всё!
ROS Electic установлена и можно перейти к
изучению ROS !
По теме:
Робософт — обзор существующих решений
ROS — Robot Operating System
Дистрибутивы ROS
ROS — установка (ROS C turtle)
Комментарии (7)
RSS свернуть / развернутьmaster
noonv
MAFia
noonv
blackhand999
noonv
admin
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.