Ubuntu 16.04 安装 Gazebo
Gazebo 是一款 3D 動(dòng)態(tài)模擬器,能夠準(zhǔn)確有效地模擬復(fù)雜室內(nèi)和室外環(huán)境中的機(jī)器人群體。雖然類似于游戲引擎,Gazebo 提供了更高保真度的物理模擬、一套傳感器以及用戶和程序接口。
Gazebo 的典型用途包括:
- 測(cè)試機(jī)器人算法,
- 設(shè)計(jì)機(jī)器人,
- 使用真實(shí)場(chǎng)景執(zhí)行回歸測(cè)試
Gazebo 的一些主要功能包括:
- 多個(gè)物理引擎,
- 豐富的機(jī)器人模型和環(huán)境庫,
- 各種各樣的傳感器,
- 方便的編程和圖形界面
Gazebo 的安裝方法如下。
在 Gazebo 的 下載頁面 下載 Gazebo 的 .deb 包。
實(shí)際下載回來的是一個(gè)腳本文件。為該文件添加可執(zhí)行權(quán)限:
$ chmod a+x gazebo8_install.sh然后執(zhí)行該腳本文件:
$ ./gazebo8_install.sh [sudo] hanpfei0306 的密碼: Downloading keys OK Retrieving packages *** Error in `appstreamcli': double free or corruption (fasttop): 0x0000000001d8fbd0 *** ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f671d60f7e5] /lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f671d61837a] /lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f671d61c53c] /usr/lib/x86_64-linux-gnu/libappstream.so.3(as_component_complete+0x439)[0x7f671d994d19] /usr/lib/x86_64-linux-gnu/libappstream.so.3(as_data_pool_update+0x44a)[0x7f671d995f0a] /usr/lib/x86_64-linux-gnu/libappstream.so.3(as_cache_builder_refresh+0x1c2)[0x7f671d98b272] appstreamcli(ascli_refresh_cache+0x12e)[0x4049de] appstreamcli(as_client_run+0x6fb)[0x403ceb] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f671d5b8830] appstreamcli(_start+0x29)[0x403519] ======= Memory map: ======== 00400000-00408000 r-xp 00000000 08:04 2490418 /usr/bin/appstreamcli 00607000-00608000 r--p 00007000 08:04 2490418 /usr/bin/appstreamcli 00608000-00609000 rw-p 00008000 08:04 2490418 /usr/bin/appstreamcli 0107d000-02bd7000 rw-p 00000000 00:00 0 [heap] 7f6714000000-7f6714021000 rw-p 00000000 00:00 0 7f6714021000-7f6718000000 ---p 00000000 00:00 0 7f6718909000-7f6718d94000 r--p 00000000 08:04 2491866 /usr/lib/locale/locale-archive 7f6718d94000-7f671a64a000 r-xp 00000000 08:04 2490706 /usr/lib/x86_64-linux-gnu/libicudata.so.55.1 7f671a64a000-7f671a849000 ---p 018b6000 08:04 2490706 /usr/lib/x86_64-linux-gnu/libicudata.so.55.1 7f671a849000-7f671a84a000 r--p 018b5000 08:04 2490706 /usr/lib/x86_64-linux-gnu/libicudata.so.55.1 7f671a84a000-7f671a84b000 rw-p 018b6000 08:04 2490706 /usr/lib/x86_64-linux-gnu/libicudata.so.55.1 7f671a84b000-7f671a84f000 r-xp 00000000 08:04 2369831 /lib/x86_64-linux-gnu/libuuid.so.1.3.0 7f671a84f000-7f671aa4e000 ---p 00004000 08:04 2369831 /lib/x86_64-linux-gnu/libuuid.so.1.3.0 7f671aa4e000-7f671aa4f000 r--p 00003000 08:04 2369831 /lib/x86_64-linux-gnu/libuuid.so.1.3.0 . . . . . . 7f671e6c0000-7f671e6c1000 r--p 00025000 08:04 2369408 /lib/x86_64-linux-gnu/ld-2.23.so 7f671e6c1000-7f671e6c2000 rw-p 00026000 08:04 2369408 /lib/x86_64-linux-gnu/ld-2.23.so 7f671e6c2000-7f671e6c3000 rw-p 00000000 00:00 0 7ffeaf4a6000-7ffeaf4c7000 rw-p 00000000 00:00 0 [stack] 7ffeaf4d2000-7ffeaf4d4000 r--p 00000000 00:00 0 [vvar] 7ffeaf4d4000-7ffeaf4d6000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Aborted (core dumped) E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi' E: Sub-process returned an error code OK Installing Gazebo 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關(guān)系樹 正在讀取狀態(tài)信息... 完成 有一些軟件包無法被安裝。如果您用的是 unstable 發(fā)行版,這也許是 因?yàn)橄到y(tǒng)無法達(dá)到您要求的狀態(tài)造成的。該版本中可能會(huì)有一些您需要的軟件 包尚未被創(chuàng)建或是它們已被從新到(Incoming)目錄移出。 下列信息可能會(huì)對(duì)解決問題有所幫助:下列軟件包有未滿足的依賴關(guān)系:gazebo8 : 依賴: libgazebo8 (= 8.2.0-1~xenial) 但是它將不會(huì)被安裝依賴: libsdformat5 但是它將不會(huì)被安裝推薦: gazebo8-plugin-baselibgazebo8-dev : 依賴: libsdformat5-dev 但是它將不會(huì)被安裝依賴: libgazebo8 (= 8.2.0-1~xenial) 但是它將不會(huì)被安裝依賴: gazebo8-plugin-base (= 8.2.0-1~xenial) E: 無法修正錯(cuò)誤,因?yàn)槟竽承┸浖3脂F(xiàn)狀,就是它們破壞了軟件包間的依賴關(guān)系。 Complete. Type gazebo to start the按照提示輸入密碼。腳本會(huì)自動(dòng)執(zhí)行 apt-get 安裝所有的依賴。但在通過 apt-get 安裝依賴時(shí),報(bào)出了如上面所示的錯(cuò)誤,比較關(guān)鍵的是如下這些錯(cuò)誤信息:
*** Error in `appstreamcli': double free or corruption (fasttop): 0x0000000001d8fbd0 ***即檢測(cè)到二進(jìn)制可執(zhí)行文件 appstreamcli 在執(zhí)行時(shí)發(fā)生了 double free 問題。這個(gè)問題在 Ask Ubuntu 中已經(jīng)有人遇到過,并已經(jīng)有了解法了:
sudo apt-get purge libappstream3修復(fù)上面 apt-get 的問題之后,再次執(zhí)行 Gazebo 的安裝腳本 gazebo8_install.sh:
$ ./gazebo8_install.sh Downloading keys OK Retrieving packages OK Installing Gazebo 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關(guān)系樹 正在讀取狀態(tài)信息... 完成 下列軟件包是自動(dòng)安裝的并且現(xiàn)在不需要了:fltk1.3-doc fluid fonts-lato gazebo7-common gir1.2-gtk-2.0 gnome-software-common libapr1-dev libaprutil1-dev libassimp-dev libassimp3v5 libatk1.0-devlibbz2-dev libcairo-script-interpreter2 libcairo2-dev libcollada-dom2.4-dp-dev libcollada-dom2.4-dp0 libconsole-bridge-dev libconsole-bridge0.2v5libeigen3-dev libflann-dev libflann1.8 libfltk-cairo1.3 libfltk-forms1.3 libfltk-gl1.3 libfltk-images1.3 libfltk1.3 libfltk1.3-dev libfontconfig1-devlibfreetype6-dev libgdk-pixbuf2.0-dev libgl2ps-dev libgl2ps0 libgtk2.0-dev libgtkspell3-3-0 libharfbuzz-dev libharfbuzz-gobject0 libhdf5-mpi-devlibhdf5-openmpi-10 libhdf5-openmpi-dev libinput-dev libjbig-dev libjs-jquery-ui libjs-sphinxdoc libjs-underscore libjsoncpp-dev liblog4cxx-devliblog4cxx10-dev liblog4cxx10v5 liblz4-dev liblzma-dev libnetcdf-c++4 libnetcdf-cxx-legacy-dev libogg-dev libopenni-dev libopenni-sensor-pointclouds0libopenni0 libpango1.0-dev libpcl-apps1.7 libpcl-common1.7 libpcl-dev libpcl-features1.7 libpcl-filters1.7 libpcl-io1.7 libpcl-kdtree1.7 libpcl-keypoints1.7libpcl-octree1.7 libpcl-outofcore1.7 libpcl-people1.7 libpcl-recognition1.7 libpcl-registration1.7 libpcl-sample-consensus1.7 libpcl-search1.7libpcl-segmentation1.7 libpcl-surface1.7 libpcl-tracking1.7 libpcl-visualization1.7 libpcl1.7 libpoco-dev libpococrypto9v5 libpocodata9v5 libpocofoundation9v5libpocomysql9v5 libpoconet9v5 libpoconetssl9v5 libpocoodbc9v5 libpocosqlite9v5 libpocoutil9v5 libpocoxml9v5 libpocozip9v5 libproj-dev libpyside-py3-2.0libpyside2-dev libpyside2.0 libqgsttools-p1 libqhull-dev libqhull7 libqt5clucene5 libqt5designercomponents5 libqt5help5 libqt5multimediaquick-p5libqt5multimediawidgets5 libqt5quickparticles5 libqt5scripttools5 libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev libqt5xmlpatterns5libqt5xmlpatterns5-dev libqt5xmlpatterns5-private-dev libqtwebkit-dev libruby2.3 libsctp-dev libsctp1 libshiboken-py3-2.0 libshiboken2-dev libshiboken2.0libtheora-dev libtiff5-dev libtiffxx5 libtinyxml2-dev liburdfdom-dev liburdfdom-headers-dev liburdfdom-model-state0.4 liburdfdom-model0.4 liburdfdom-sensor0.4liburdfdom-tools liburdfdom-world0.4 libvtk-java libvtk5.10 libvtk6-dev libvtk6-java libvtk6-qt-dev libvtk6.2 libvtk6.2-qt libwxbase3.0-0v5 libwxgtk3.0-0v5libxcb-shm0-dev libxcomposite-dev libxft-dev libyaml-cpp-dev libyaml-cpp0.5v5 linux-headers-4.4.0-21 linux-headers-4.4.0-21-genericlinux-image-4.4.0-21-generic linux-image-extra-4.4.0-21-generic openni-utils pyqt5-dev python-attr python-autobahn python-concurrent.futures python-cyclerpython-empy python-glade2 python-gobject-2 python-gtk2 python-imaging python-lz4 python-matplotlib python-matplotlib-data python-mpi4py python-msgpackpython-netifaces python-nose python-numpy python-opengl python-pam python-pyasn1-modules python-pydot python-pyparsing python-pyqt5 python-pyqt5.qtopenglpython-pyqt5.qtsvg python-pyqt5.qtwebkit python-pyside2 python-pyside2.qtconcurrent python-pyside2.qtcore python-pyside2.qtgui python-pyside2.qthelppython-pyside2.qtnetwork python-pyside2.qtprintsupport python-pyside2.qtqml python-pyside2.qtquick python-pyside2.qtquickwidgets python-pyside2.qtscriptpython-pyside2.qtsql python-pyside2.qtsvg python-pyside2.qttest python-pyside2.qtuitools python-pyside2.qtwebkit python-pyside2.qtwebkitwidgetspython-pyside2.qtwidgets python-pyside2.qtx11extras python-pyside2.qtxml python-rosdep python-serial python-service-identity python-sip python-sip-devpython-snappy python-trollius python-twisted python-twisted-bin python-twisted-core python-txaio python-tz python-vtk6 python-wxgtk3.0 python-wxtoolspython-wxversion qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev qtmultimedia5-dev qtscript5-dev qtscript5-private-dev qttools5-devqttools5-dev-tools qttools5-private-dev rake ros-kinetic-actionlib ros-kinetic-actionlib-msgs ros-kinetic-actionlib-tutorials ros-kinetic-anglesros-kinetic-bond ros-kinetic-bond-core ros-kinetic-bondcpp ros-kinetic-bondpy ros-kinetic-camera-calibration ros-kinetic-camera-calibration-parsersros-kinetic-camera-info-manager ros-kinetic-catkin ros-kinetic-class-loader ros-kinetic-cmake-modules ros-kinetic-collada-parser ros-kinetic-collada-urdfros-kinetic-common-msgs ros-kinetic-common-tutorials ros-kinetic-compressed-depth-image-transport ros-kinetic-compressed-image-transportros-kinetic-control-msgs ros-kinetic-cpp-common ros-kinetic-cv-bridge ros-kinetic-depth-image-proc ros-kinetic-desktop ros-kinetic-diagnostic-aggregatorros-kinetic-diagnostic-analysis ros-kinetic-diagnostic-common-diagnostics ros-kinetic-diagnostic-msgs ros-kinetic-diagnostic-updater ros-kinetic-diagnosticsros-kinetic-dynamic-reconfigure ros-kinetic-eigen-conversions ros-kinetic-eigen-stl-containers ros-kinetic-executive-smach ros-kinetic-filtersros-kinetic-gazebo-msgs ros-kinetic-gencpp ros-kinetic-geneus ros-kinetic-genlisp ros-kinetic-genmsg ros-kinetic-gennodejs ros-kinetic-genpyros-kinetic-geometric-shapes ros-kinetic-geometry ros-kinetic-geometry-msgs ros-kinetic-geometry-tutorials ros-kinetic-gl-dependency ros-kinetic-image-commonros-kinetic-image-geometry ros-kinetic-image-pipeline ros-kinetic-image-proc ros-kinetic-image-publisher ros-kinetic-image-rotate ros-kinetic-image-transportros-kinetic-image-transport-plugins ros-kinetic-image-view ros-kinetic-interactive-marker-tutorials ros-kinetic-interactive-markersros-kinetic-joint-state-publisher ros-kinetic-kdl-conversions ros-kinetic-kdl-parser ros-kinetic-laser-assembler ros-kinetic-laser-filtersros-kinetic-laser-geometry ros-kinetic-laser-pipeline ros-kinetic-librviz-tutorial ros-kinetic-map-msgs ros-kinetic-media-export ros-kinetic-message-filtersros-kinetic-message-generation ros-kinetic-message-runtime ros-kinetic-mk ros-kinetic-nav-msgs ros-kinetic-nodelet ros-kinetic-nodelet-coreros-kinetic-nodelet-topic-tools ros-kinetic-nodelet-tutorial-math ros-kinetic-octomap ros-kinetic-opencv3 ros-kinetic-orocos-kdl ros-kinetic-pcl-conversionsros-kinetic-pcl-msgs ros-kinetic-pcl-ros ros-kinetic-perception ros-kinetic-perception-pcl ros-kinetic-pluginlib ros-kinetic-pluginlib-tutorialsros-kinetic-polled-camera ros-kinetic-python-orocos-kdl ros-kinetic-python-qt-binding ros-kinetic-qt-dotgraph ros-kinetic-qt-gui ros-kinetic-qt-gui-cppros-kinetic-qt-gui-py-common ros-kinetic-qwt-dependency ros-kinetic-random-numbers ros-kinetic-resource-retriever ros-kinetic-robot ros-kinetic-robot-modelros-kinetic-robot-state-publisher ros-kinetic-ros ros-kinetic-ros-base ros-kinetic-ros-comm ros-kinetic-ros-core ros-kinetic-ros-tutorials ros-kinetic-rosbagros-kinetic-rosbag-migration-rule ros-kinetic-rosbag-storage ros-kinetic-rosbash ros-kinetic-rosboost-cfg ros-kinetic-rosbuild ros-kinetic-roscleanros-kinetic-rosconsole ros-kinetic-rosconsole-bridge ros-kinetic-roscpp ros-kinetic-roscpp-core ros-kinetic-roscpp-serialization ros-kinetic-roscpp-traitsros-kinetic-roscpp-tutorials ros-kinetic-roscreate ros-kinetic-rosgraph ros-kinetic-rosgraph-msgs ros-kinetic-roslang ros-kinetic-roslaunch ros-kinetic-roslibros-kinetic-roslint ros-kinetic-roslisp ros-kinetic-roslz4 ros-kinetic-rosmake ros-kinetic-rosmaster ros-kinetic-rosmsg ros-kinetic-rosnode ros-kinetic-rosoutros-kinetic-rospack ros-kinetic-rosparam ros-kinetic-rospy ros-kinetic-rospy-tutorials ros-kinetic-rosservice ros-kinetic-rostest ros-kinetic-rostimeros-kinetic-rostopic ros-kinetic-rosunit ros-kinetic-roswtf ros-kinetic-rqt-action ros-kinetic-rqt-bag ros-kinetic-rqt-bag-pluginsros-kinetic-rqt-common-plugins ros-kinetic-rqt-console ros-kinetic-rqt-dep ros-kinetic-rqt-graph ros-kinetic-rqt-gui ros-kinetic-rqt-gui-cppros-kinetic-rqt-gui-py ros-kinetic-rqt-image-view ros-kinetic-rqt-launch ros-kinetic-rqt-logger-level ros-kinetic-rqt-moveit ros-kinetic-rqt-msgros-kinetic-rqt-nav-view ros-kinetic-rqt-plot ros-kinetic-rqt-pose-view ros-kinetic-rqt-publisher ros-kinetic-rqt-py-common ros-kinetic-rqt-py-consoleros-kinetic-rqt-reconfigure ros-kinetic-rqt-robot-dashboard ros-kinetic-rqt-robot-monitor ros-kinetic-rqt-robot-plugins ros-kinetic-rqt-robot-steeringros-kinetic-rqt-runtime-monitor ros-kinetic-rqt-rviz ros-kinetic-rqt-service-caller ros-kinetic-rqt-shell ros-kinetic-rqt-srv ros-kinetic-rqt-tf-treeros-kinetic-rqt-top ros-kinetic-rqt-topic ros-kinetic-rqt-web ros-kinetic-rviz ros-kinetic-rviz-plugin-tutorials ros-kinetic-rviz-python-tutorialros-kinetic-self-test ros-kinetic-sensor-msgs ros-kinetic-shape-msgs ros-kinetic-smach ros-kinetic-smach-msgs ros-kinetic-smach-ros ros-kinetic-smclibros-kinetic-stage ros-kinetic-stage-ros ros-kinetic-std-msgs ros-kinetic-std-srvs ros-kinetic-stereo-image-proc ros-kinetic-stereo-msgs ros-kinetic-tfros-kinetic-tf-conversions ros-kinetic-tf2 ros-kinetic-tf2-eigen ros-kinetic-tf2-geometry-msgs ros-kinetic-tf2-kdl ros-kinetic-tf2-msgs ros-kinetic-tf2-pyros-kinetic-tf2-ros ros-kinetic-theora-image-transport ros-kinetic-topic-tools ros-kinetic-trajectory-msgs ros-kinetic-turtle-actionlib ros-kinetic-turtle-tfros-kinetic-turtle-tf2 ros-kinetic-turtlesim ros-kinetic-urdf ros-kinetic-urdf-parser-plugin ros-kinetic-urdf-tutorial ros-kinetic-vision-opencvros-kinetic-visualization-marker-tutorials ros-kinetic-visualization-msgs ros-kinetic-visualization-tutorials ros-kinetic-viz ros-kinetic-webkit-dependencyros-kinetic-xacro ros-kinetic-xmlrpcpp ruby ruby-did-you-mean ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.3 rubygems-integration sbclshiboken2 sip-dev tcl-dev tcl-vtk6 tcl8.6-dev tk-dev tk8.6-dev ttf-liberation vtk6 x11proto-composite-dev 使用'sudo apt autoremove'來卸載它(它們)。 將會(huì)同時(shí)安裝下列軟件:gazebo7-common gazebo8-common gazebo8-plugin-base libavdevice-dev libavdevice-ffmpeg56 libavfilter-dev libavresample-dev libbullet-dev libbulletsoftbody2.83.6libgazebo8 libignition-cmake-dev libignition-math3 libignition-math3-dev libignition-math4 libignition-math4-dev libignition-msgs libignition-msgs-devlibignition-msgs0 libignition-msgs0-dev libignition-transport3 libignition-transport3-dev libpostproc-dev libqwt-headers libqwt-qt5-6 libqwt-qt5-devlibsdformat5 libsdformat5-dev libsdl1.2debian libzmq3-dev sdformat-sdf 建議安裝:gazebo8-doc 下列軟件包將被【卸載】:gazebo7 gazebo7-plugin-base libgazebo7 libgazebo7-dev libignition-math2 libignition-math2-dev libsdformat4 libsdformat4-dev ros-kinetic-desktop-fullros-kinetic-gazebo-dev ros-kinetic-gazebo-plugins ros-kinetic-gazebo-ros ros-kinetic-gazebo-ros-pkgs ros-kinetic-simulators 下列【新】軟件包將被安裝:gazebo8 gazebo8-common gazebo8-plugin-base libavdevice-dev libavdevice-ffmpeg56 libavfilter-dev libavresample-dev libbullet-dev libbulletsoftbody2.83.6libgazebo8 libgazebo8-dev libignition-cmake-dev libignition-math3 libignition-math3-dev libignition-math4 libignition-math4-dev libignition-msgslibignition-msgs-dev libignition-msgs0 libignition-msgs0-dev libignition-transport3 libignition-transport3-dev libpostproc-dev libqwt-headers libqwt-qt5-6libqwt-qt5-dev libsdformat5 libsdformat5-dev libsdl1.2debian libzmq3-dev 下列軟件包將被升級(jí):gazebo7-common sdformat-sdf 升級(jí)了 2 個(gè)軟件包,新安裝了 30 個(gè)軟件包,要卸載 14 個(gè)軟件包,有 368 個(gè)軟件包未被升級(jí)。 需要下載 97.7 MB 的歸檔。 解壓縮后將會(huì)空出 339 MB 的空間。 您希望繼續(xù)執(zhí)行嗎? [Y/n] Y. . . . . . Complete. Type gazebo to start the simulator.一大堆依賴會(huì)被安裝。安裝完成后,即可通過 gazebo 命令來啟動(dòng) Gazebo 了。Gazebo 啟動(dòng)之后界面如下:
Gazebo 是開源的,可以通過如下的方式來下載源碼:
hg clone https://bitbucket.org/osrf/gazebo即官方是通過 Mercurial 這一版本工具來管理項(xiàng)目源碼的。不過我們可以將 Mercurial 工程轉(zhuǎn)換為 Git 工程。方法如下:
~/gazebo8$ hg clone https://bitbucket.org/osrf/gazebo destination directory: gazebo applying clone bundle from https://api.media.atlassian.com/file/764236f6-f6d2-46d8-b836-c95f6603d1a0/binary?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIxZWZmNzMzZC05MmQwLTQ5Y2EtOGQxNS0wZmUyNDJjN2M0OWYiLCJhY2Nlc3MiOnsidXJuOmZpbGVzdG9yZTpmaWxlOjc2NDIzNmY2LWY2ZDItNDZkOC1iODM2LWM5NWY2NjAzZDFhMCI6WyJyZWFkIl19LCJuYmYiOjE1MTY4Nzg2NDksImV4cCI6MTUxNjg3OTA2OX0.ZKT8yBn3k9pPNgVC7pK6Wpe4JFNcZE-IYJdl1gNNxKs&client=1eff733d-92d0-49ca-8d15-0fe242c7c49f adding changesets adding manifests adding file changes added 35951 changesets with 147449 changes to 11883 files (+581 heads) finished applying clone bundle searching for changes adding changesets adding manifests adding file changes added 167 changesets with 290 changes to 143 files (+3 heads) updating to branch default 3423 files updated, 0 files merged, 0 files removed, 0 files unresolved ~/gazebo8$ mkdir gazebo_repo ~/gazebo8$ cd gazebo_repo/ ~/gazebo8/gazebo_repo$ git clone git://repo.or.cz/fast-export.git . ~/gazebo8/gazebo_repo$ rm -rf .git .gitignore ~/gazebo8/gazebo_repo$ git init ~/gazebo8/gazebo_repo$ ./hg-fast-export.sh -r ../gazebo在執(zhí)行上面的 hg-fast-export.sh 命令時(shí),可能報(bào)出如下的錯(cuò)誤:
~/gazebo8/gazebo_repo$ ./hg-fast-export.sh -r ../gazebo Warning: sanitized branch [test time stepping] to [test_time_stepping] Warning: sanitized branch [gazebo7__default] to [gazebo7_default] Warning: sanitized branch [Fix cmake] to [Fix_cmake] Error: repository has at least one unnamed head: hg r6420 git-fast-import statistics: --------------------------------------------------------------------- Alloc'd objects: 5000 Total objects: 0 ( 0 duplicates )blobs : 0 ( 0 duplicates 0 deltas of 0 attempts)trees : 0 ( 0 duplicates 0 deltas of 0 attempts)commits: 0 ( 0 duplicates 0 deltas of 0 attempts)tags : 0 ( 0 duplicates 0 deltas of 0 attempts) Total branches: 0 ( 0 loads )marks: 1024 ( 0 unique )atoms: 0 Memory total: 2282 KiBpools: 2048 KiBobjects: 234 KiB --------------------------------------------------------------------- pack_report: getpagesize() = 4096 pack_report: core.packedGitWindowSize = 1073741824 pack_report: core.packedGitLimit = 8589934592 pack_report: pack_used_ctr = 0 pack_report: pack_mmap_calls = 0 pack_report: pack_open_windows = 0 / 0 pack_report: pack_mapped = 0 / 0 ---------------------------------------------------------------------即:
Error: repository has at least one unnamed head: hg r6420這個(gè)錯(cuò)誤可通過為 hg-fast-export.sh 命令添加 --force 選項(xiàng)來解決(StackOverflow 有對(duì)這個(gè)問題的討論),像下面這樣:
~/gazebo8/gazebo_repo$ ./hg-fast-export.sh -r ../gazebo --force轉(zhuǎn)換完成后,執(zhí)行如下命令來清理導(dǎo)入工具:
~/gazebo8/gazebo_repo$ git clean -f # remove fast-export filesDone.
總結(jié)
以上是生活随笔為你收集整理的Ubuntu 16.04 安装 Gazebo的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一种 Android 用户事件的自适应分
- 下一篇: ptrace 系统调用