ROS安装官网手册:http://wiki.ros.org/kinetic/Installation/Ubuntu
根据自己需求安装,一般安装ros-kinetic-desktop版本即可,后面需要的什么包可以再单独安装。
安装方法
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential一般用不到,先不安装。
检测是否成功安装
下面运行一个鼠标控制海龟移动的demo来验证ROS是否成功安装好了。
第一步,打开一个终端测试roscore是否能正常启动,使用ROS必须保证roscore运行:
roscore
第二步,新开启一个终端,执行以下命令:
rosrun turtlesim turtlesim_node
第三步,再开启一个终端,执行以下命令:
rosrun turtlesim turtle_teleop_key
安装ros后,python 2可以使用opencv,python 3不能使用opencv?
python3
import cv2
提示报错:
ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type
这是因为ros安装后在bashrc中添加了source /opt/ros/kinetic/setup.bash, termial里查看echo $PYTHONPATH发现变为/opt/ros/kinetic/lib/python2.7/dist-packages,
解决方法:
cd ~
gedit .bashrc
在bashrc最后添加:
export PYTHONPATH=/usr/local/lib/python3.5/dist-packages
随后,在新的termial使用echo $PYTHONPATH发现已经变为/usr/local/lib/python3.5/dist-packages,使用python3发现可以import cv2,
或者也可以在不使用ros时注释掉:
source /opt/ros/kinetic/setup.bash
安装失败,dependency错误,可能是已安装的软件冲突导致的。
源使用:http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64
先安装opencv,再安装ros可以正常安装:
sudo apt-get install ros-kinetic-desktop
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
snapd-login-service
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
binfmt-support blt bzip2-doc comerr-dev curl docutils-common docutils-doc
fonts-lyx google-mock graphviz hddtemp krb5-multidev libapr1 libapr1-dev
libaprutil1 libaprutil1-dev libarmadillo6 libarpack2 libassimp-dev
libassimp3v5 libbz2-dev libcdt5 libcgraph6 libcollada-dom2.4-dp-dev
libcollada-dom2.4-dp0 libconsole-bridge-dev libconsole-bridge0.2v5
libcurl4-openssl-dev libdap-dev libdap17v5 libdapclient6v5 libdapserver7v5
libepsilon1 libfreeimage3 libfreexl1 libgdal-dev libgdal1i libgeos-3.5.0
libgeos-c1v5 libgeos-dev libgif-dev libgif7 libgl2ps-dev libgl2ps0
libglade2-0 libgssrpc4 libgtest-dev libgvc6 libgvpr2 libhdf4-0-alt
libhdf4-alt-dev libhdf5-mpi-dev libhdf5-openmpi-10 libhdf5-openmpi-dev
libinput-dev libjs-jquery-ui libjs-sphinxdoc libjs-underscore libjsoncpp-dev
libjxr0 libkadm5clnt-mit9 libkadm5srv-mit9 libkdb5-8 libkmlbase1 libkmldom1
libkmlengine1 libldap2-dev liblog4cxx-dev liblog4cxx10-dev liblog4cxx10v5
liblz4-dev libminizip1 libmysqlclient-dev libmysqlclient20 libnetcdf-c++4
libnetcdf-cxx-legacy-dev libnetcdf-dev libnetcdf11 libodbc1 libogdi3.2
libogre-1.9-dev libogre-1.9.0v5 libopenjp2-7 libpathplan4 libpoco-dev
libpococrypto9v5 libpocodata9v5 libpocofoundation9v5 libpocomysql9v5
libpoconet9v5 libpoconetssl9v5 libpocoodbc9v5 libpocosqlite9v5
libpocoutil9v5 libpocoxml9v5 libpocozip9v5 libpq-dev libpq5 libproj9
libpyside-py3-2.0 libpyside2-dev libpyside2.0 libqgsttools-p1 libqhull-dev
libqhull7 libqt5clucene5 libqt5designer5 libqt5designercomponents5
libqt5help5 libqt5multimediaquick-p5 libqt5multimediawidgets5
libqt5quickparticles5 libqt5script5 libqt5scripttools5 libqt5svg5-dev
libqt5webkit5-dev libqt5x11extras5 libqt5x11extras5-dev libqt5xmlpatterns5
libqt5xmlpatterns5-dev libqt5xmlpatterns5-private-dev libsctp-dev libsctp1
libshiboken-py3-2.0 libshiboken2-dev libshiboken2.0 libspatialite-dev
libspatialite7 libsqlite3-dev libssl-dev libssl-doc libsuperlu4
libtinyxml-dev libtinyxml2-2v5 libtinyxml2-dev libudev-dev liburdfdom-dev
liburdfdom-headers-dev liburdfdom-model-state0.4 liburdfdom-model0.4
liburdfdom-sensor0.4 liburdfdom-tools liburdfdom-world0.4 liburiparser1
libvtk6-dev libvtk6-java libvtk6-qt-dev libvtk6.2 libvtk6.2-qt libwebp-dev
libwxbase3.0-0v5 libwxgtk3.0-0v5 libxerces-c-dev libxerces-c3.1 libxss-dev
libyaml-cpp-dev libyaml-cpp0.5v5 libzzip-0-13 mysql-common odbcinst
odbcinst1debian2 proj-bin proj-data pyqt5-dev python-attr python-autobahn
python-cairo python-catkin-pkg python-catkin-pkg-modules python-cffi-backend
python-chardet python-concurrent.futures python-crypto python-cryptography
python-cycler python-dateutil python-defusedxml python-docutils python-ecdsa
python-empy python-enum34 python-glade2 python-gobject-2 python-gtk2
python-idna python-imaging python-ipaddress python-lz4 python-matplotlib
python-matplotlib-data python-mpi4py python-msgpack python-netifaces
python-nose python-numpy python-opengl python-openssl python-pam
python-paramiko python-pil python-psutil python-pyasn1 python-pyasn1-modules
python-pydot python-pygments python-pyparsing python-pyqt5
python-pyqt5.qtopengl python-pyqt5.qtsvg python-pyqt5.qtwebkit
python-pyside2 python-pyside2.qtconcurrent python-pyside2.qtcore
python-pyside2.qtgui python-pyside2.qthelp python-pyside2.qtnetwork
python-pyside2.qtprintsupport python-pyside2.qtqml python-pyside2.qtquick
python-pyside2.qtquickwidgets python-pyside2.qtscript python-pyside2.qtsql
python-pyside2.qtsvg python-pyside2.qttest python-pyside2.qtuitools
python-pyside2.qtwebkit python-pyside2.qtwebkitwidgets
python-pyside2.qtwidgets python-pyside2.qtx11extras python-pyside2.qtxml
python-roman python-rosdep python-rosdistro python-rosdistro-modules
python-rospkg python-rospkg-modules python-serial python-service-identity
python-sip python-sip-dev python-six python-snappy python-tk python-trollius
python-twisted python-twisted-bin python-twisted-core python-txaio python-tz
python-vtk6 python-wxgtk3.0 python-wxtools python-wxversion python-yaml
python-zope.interface qtbase5-private-dev qtdeclarative5-dev
qtdeclarative5-private-dev qtmultimedia5-dev qtscript5-dev
qtscript5-private-dev qttools5-dev qttools5-dev-tools qttools5-private-dev
ros-kinetic-actionlib ros-kinetic-actionlib-msgs
ros-kinetic-actionlib-tutorials ros-kinetic-angles ros-kinetic-bond
ros-kinetic-bond-core ros-kinetic-bondcpp ros-kinetic-bondpy
ros-kinetic-catkin ros-kinetic-class-loader ros-kinetic-cmake-modules
ros-kinetic-collada-parser ros-kinetic-collada-urdf ros-kinetic-common-msgs
ros-kinetic-common-tutorials ros-kinetic-control-msgs ros-kinetic-cpp-common
ros-kinetic-cv-bridge ros-kinetic-diagnostic-aggregator
ros-kinetic-diagnostic-analysis ros-kinetic-diagnostic-common-diagnostics
ros-kinetic-diagnostic-msgs ros-kinetic-diagnostic-updater
ros-kinetic-diagnostics ros-kinetic-dynamic-reconfigure
ros-kinetic-eigen-conversions ros-kinetic-eigen-stl-containers
ros-kinetic-executive-smach ros-kinetic-filters ros-kinetic-gencpp
ros-kinetic-geneus ros-kinetic-genlisp ros-kinetic-genmsg
ros-kinetic-gennodejs ros-kinetic-genpy ros-kinetic-geometric-shapes
ros-kinetic-geometry ros-kinetic-geometry-msgs
ros-kinetic-geometry-tutorials ros-kinetic-gl-dependency
ros-kinetic-image-transport ros-kinetic-interactive-marker-tutorials
ros-kinetic-interactive-markers ros-kinetic-joint-state-publisher
ros-kinetic-kdl-conversions ros-kinetic-kdl-parser
ros-kinetic-laser-geometry ros-kinetic-librviz-tutorial ros-kinetic-map-msgs
ros-kinetic-media-export ros-kinetic-message-filters
ros-kinetic-message-generation ros-kinetic-message-runtime ros-kinetic-mk
ros-kinetic-nav-msgs ros-kinetic-nodelet ros-kinetic-nodelet-core
ros-kinetic-nodelet-topic-tools ros-kinetic-nodelet-tutorial-math
ros-kinetic-octomap ros-kinetic-opencv3 ros-kinetic-orocos-kdl
ros-kinetic-pluginlib ros-kinetic-pluginlib-tutorials
ros-kinetic-python-orocos-kdl ros-kinetic-python-qt-binding
ros-kineti