【XTDrone Ubuntu18.04】XTDrone + Ubuntu18.04 + PX4 安装过程
重新配置所有的软件
卸载之前安装的ROS GAZEBO
记得把/home下的.ros和.gazebo也删除,删就删干净
参考链接:ROS的卸载与安装 血泪总结!亲测有效
卸载ROS方法
正式安装
安装依赖
sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple/pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse -i https://pypi.tuna.tsinghua.edu.cn/simple/
国内源地址
https://pypi.tuna.tsinghua.edu.cn/simple/http://mirrors.aliyun.com/pypi/simple/http://pypi.mirrors.ustc.edu.cn/simple/https://repo.huaweicloud.com/repository/pypi/simple/
ROS安装
参考链接:ubuntu 18.04 三五分钟即可一键安装ROS系统(亲测有效)
再次安装出现依赖混乱的问题:
apt-get purge package-name
sudo apt-get purge ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk
下列软件包是自动安装的并且现在不需要了:default-libmysqlclient-dev dh-python freeglut3 freeglut3-dev gdal-datagir1.2-harfbuzz-0.0 google-mock googletest hdf5-helpers ibverbs-providersicu-devtools libaec-dev libaec0 libapr1 libapr1-dev libaprutil1libaprutil1-dev libarmadillo-dev libarmadillo8 libarpack2 libarpack2-devlibassuan-dev libavcodec-dev libavdevice-dev libavdevice57 libavfilter-devlibavformat-dev libavresample-dev libavutil-dev libblas-dev libblas3libboost-all-dev libboost-atomic-dev libboost-atomic1.65-devlibboost-atomic1.65.1 libboost-chrono-dev libboost-chrono1.65-devlibboost-chrono1.65.1 libboost-container-dev libboost-container1.65-devlibboost-container1.65.1 libboost-context-dev libboost-context1.65-devlibboost-context1.65.1 libboost-coroutine-dev libboost-coroutine1.65-devlibboost-coroutine1.65.1 libboost-date-time-dev libboost-date-time1.65-devlibboost-dev libboost-exception-dev libboost-exception1.65-devlibboost-fiber-dev libboost-fiber1.65-dev libboost-fiber1.65.1libboost-filesystem-dev libboost-filesystem1.65-dev libboost-graph-devlibboost-graph-parallel-dev libboost-graph-parallel1.65-devlibboost-graph-parallel1.65.1 libboost-graph1.65-dev libboost-graph1.65.1libboost-iostreams-dev libboost-iostreams1.65-dev libboost-locale-devlibboost-locale1.65-dev libboost-log-dev libboost-log1.65-devlibboost-log1.65.1 libboost-math-dev libboost-math1.65-devlibboost-math1.65.1 libboost-mpi-dev libboost-mpi-python-devlibboost-mpi-python1.65-dev libboost-mpi-python1.65.1 libboost-mpi1.65-devlibboost-mpi1.65.1 libboost-numpy-dev libboost-numpy1.65-devlibboost-numpy1.65.1 libboost-program-options-devlibboost-program-options1.65-dev libboost-program-options1.65.1libboost-python-dev libboost-python1.65-dev libboost-python1.65.1libboost-random-dev libboost-random1.65-dev libboost-random1.65.1libboost-regex-dev libboost-regex1.65-dev libboost-regex1.65.1libboost-serialization-dev libboost-serialization1.65-devlibboost-serialization1.65.1 libboost-signals-dev libboost-signals1.65-devlibboost-signals1.65.1 libboost-stacktrace-dev libboost-stacktrace1.65-devlibboost-stacktrace1.65.1 libboost-system-dev libboost-system1.65-devlibboost-test-dev libboost-test1.65-dev libboost-test1.65.1libboost-thread-dev libboost-thread1.65-dev libboost-timer-devlibboost-timer1.65-dev libboost-timer1.65.1 libboost-tools-devlibboost-type-erasure-dev libboost-type-erasure1.65-devlibboost-type-erasure1.65.1 libboost-wave-dev libboost-wave1.65-devlibboost-wave1.65.1 libboost1.65-dev libboost1.65-tools-dev libbullet-devlibbullet2.87 libbz2-dev libconsole-bridge-dev libconsole-bridge0.4libcurl4-openssl-dev libdap-dev libdap25 libdapclient6v5 libdapserver7v5libdrm-dev libegl1-mesa-dev libepsilon-dev libepsilon1 libexpat1-devlibfabric1 libfreeimage-dev libfreeimage3 libfreexl-dev libfreexl1libfyba-dev libfyba0 libgdal-dev libgdal20 libgeos-3.6.2 libgeos-c1v5libgeos-dev libgeotiff-dev libgeotiff2 libgfortran4 libgif-dev libgif7libgl1-mesa-dev libgles1 libgles2-mesa-dev libglib2.0-dev libglib2.0-dev-binlibglu1-mesa-dev libglvnd-core-dev libglvnd-dev libgpg-error-devlibgpgme-dev libgraphite2-dev libgtest-dev libgts-dev libharfbuzz-devlibharfbuzz-gobject0 libhdf4-0-alt libhdf4-alt-dev libhdf5-100libhdf5-cpp-100 libhdf5-dev libhwloc-dev libhwloc-plugins libhwloc5libibverbs-dev libibverbs1 libice-dev libicu-dev libicu-le-hb-devlibicu-le-hb0 libiculx60 libignition-common libignition-fuel-tools1-1libignition-math4 libignition-msgs libignition-transport4 libjbig-devlibjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libjson-c-dev libjsoncpp-devlibjxr0 libkml-dev libkmlbase1 libkmlconvenience1 libkmldom1 libkmlengine1libkmlregionator1 libkmlxsd1 liblapack-dev liblapack3 libldap2-devliblog4cxx-dev liblog4cxx10v5 libltdl7:i386 liblz4-dev liblzma-devlibminizip-dev libminizip1 libmysqlclient-dev libmysqlclient20 libnetcdf-devlibnetcdf13 libnl-route-3-200 libnuma-dev libodbc1 libogdi3.2 libogdi3.2-devlibogre-1.9-dev libogre-1.9.0v5 libopenblas-base libopengl0 libopenjp2-7-devlibopenmpi-dev libopenmpi2 liborc-0.4-dev liborc-0.4-dev-bin libpcre16-3libpcre3-dev libpcre32-3 libpcrecpp0v5 libpng-dev libpng-tools libpoco-devlibpococrypto50 libpocodata50 libpocodatamysql50 libpocodataodbc50libpocodatasqlite50 libpocofoundation50 libpocojson50 libpocomongodb50libpoconet50 libpoconetssl50 libpocoredis50 libpocoutil50 libpocoxml50libpocozip50 libpoppler-dev libpoppler-private-dev libpostproc-dev libpq-devlibpq5 libproj-dev libproj12 libprotobuf-dev libprotobuf-lite10libprotoc-dev libprotoc10 libpsm-infinipath1 libpthread-stubs0-devlibpython-all-dev libpython-dev libpython2.7-dev libpython3-devlibpython3.6-dev libqhull-dev libqhull-r7 libqhull7 libqt5concurrent5libqt5designer5 libqt5opengl5 libqt5opengl5-dev libqt5sql5 libqt5sql5-sqlitelibqt5test5 libqwt-headers libqwt-qt5-6 libqwt-qt5-dev librdmacm1libsctp-dev libsctp1 libsdformat6 libsdl2-2.0-0 libsimbody-devlibsimbody3.5v5 libsm-dev libspatialite-dev libspatialite7 libspnav0libsqlite3-dev libssl-dev libsuperlu-dev libsuperlu5 libswresample-devlibswscale-dev libsz2 libtar-dev libtar0 libtbb-dev libtbb2 libtiff-devlibtiff5-dev libtiffxx5 libtinyxml-dev libtinyxml2-6 libtinyxml2-devlibtinyxml2.6.2v5 liburdfdom-dev liburdfdom-headers-dev liburdfdom-modelliburdfdom-model-state liburdfdom-sensor liburdfdom-world liburiparser-devliburiparser1 libusb-1.0-0-dev libusb-1.0-doc libwayland-bin libwayland-devlibwebp-dev libwxbase3.0-0v5 libwxgtk3.0-gtk3-0v5 libx11-dev libx11-doclibx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-devlibxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-devlibxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-dev libxdmcp-devlibxerces-c-dev libxerces-c3.2 libxext-dev libxfixes-dev libxi-devlibxml2-dev libxmu-dev libxmu-headers libxshmfence-dev libxt-devlibxxf86vm-dev libyaml-cpp-dev libyaml-cpp0.5v5 libyaml-dev libzip-devlibzip4 libzmq3-dev linux-headers-5.4.0-146-genericlinux-hwe-5.4-headers-5.4.0-146 linux-image-5.4.0-146-genericlinux-modules-5.4.0-146-generic linux-modules-extra-5.4.0-146-genericmesa-common-dev mpi-default-bin mpi-default-dev mysql-common odbcinst:i386odbcinst1debian2 odbcinst1debian2:i386 openmpi-bin openmpi-common pkg-configproj-data python-all python-all-dev python-asn1crypto python-cffi-backendpython-crypto python-cryptography python-dbus python-defusedxml python-devpython-empy python-enum34 python-gi python-gnupg python-idnapython-ipaddress python-keyring python-keyrings.alt python-netifacespython-nose python-numpy python-paramiko python-pip-whl python-pyasn1python-pycryptodome python-rospkg python-secretstorage python-wheelpython-wxgtk3.0 python-wxtools python-wxversion python-xdg python2.7-devpython3-catkin-pkg-modules python3-dev python3-pyparsing python3-wheelpython3.6-dev qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-toolsqtchooser sdformat-sdf ttf-dejavu-core unixodbc-dev uuid-devx11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-fixes-devx11proto-input-dev x11proto-xext-dev x11proto-xf86vidmode-devxorg-sgml-doctools xtrans-dev zlib1g-dev
使用'sudo apt autoremove'来卸载它(它们)。
使用该命令删除之前安装的包,(如果依赖关系冲突,不能被解决,我的情况是给不出依赖问题解决方案,如果不手动解决,无法安装,所以我直接卸载删除之前安装的所有)
sudo apt autoremove
然后使用命令
wget http://fishros.com/install -O fishros && . fishros
使用roscore命令检查是否安装成功。
... logging to /home/sunx/.ros/log/56dfc0a6-ecbd-11ed-98fb-28cdc497963d/roslaunch-sunx-NBLK-WAX9X-15496.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.started roslaunch server http://sunx-NBLK-WAX9X:37869/
ros_comm version 1.14.13SUMMARY
========PARAMETERS* /rosdistro: melodic* /rosversion: 1.14.13NODESauto-starting new master
process[master]: started with pid [15516]
ROS_MASTER_URI=http://sunx-NBLK-WAX9X:11311/setting /run_id to 56dfc0a6-ecbd-11ed-98fb-28cdc497963d
process[rosout-1]: started with pid [15534]
started core service [/rosout]
安装完后还需要初始化下rosdep
wget http://fishros.com/install -O fishros && . fishros
由于前面已经删除了catkin_ws,所以这里需要重新建一个。
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts
cd catkin_ws && catkin init # 使用catkin_make话,则为cd catkin_ws/src && catkin_init_workspace
catkin build # 使用catkin_make话,则为 cd .. && catkin_make
如果前面没用过catkin build需要先装catkin-tools(sudo apt install python3-catkin-tools)。
然后再
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts
cd catkin_ws && catkin init # 使用catkin_make话,则为cd catkin_ws/src && catkin_init_workspace
catkin build # 使用catkin_make话,则为 cd .. && catkin_make
Warning, builtin verb aliases at '/home/sunx/.config/catkin/verb_aliases/00-default-aliases.yaml' differ from builtin, overwriting
---------------------------------------------------------
Profile: default
Extending: [env] /opt/ros/melodic
Workspace: /home/sunx/catkin_ws
---------------------------------------------------------
Build Space: [exists] /home/sunx/catkin_ws/build
Devel Space: [exists] /home/sunx/catkin_ws/devel
Install Space: [unused] /home/sunx/catkin_ws/install
Log Space: [missing] /home/sunx/catkin_ws/logs
Source Space: [exists] /home/sunx/catkin_ws/src
DESTDIR: [unused] None
---------------------------------------------------------
Devel Space Layout: linked
Install Space Layout: None
---------------------------------------------------------
Additional CMake Args: None
Additional Make Args: None
Additional catkin Make Args: None
Internal Make Job Server: True
Cache Job Environments: False
---------------------------------------------------------
Buildlisted Packages: None
Skiplisted Packages: None
---------------------------------------------------------
Workspace configuration appears valid.NOTE: Forcing CMake to run for each package.
---------------------------------------------------------
[build] No packages were found in the source space '/home/sunx/catkin_ws/src'
[build] No packages to be built.
[build] Package table is up to date.
Starting >>> catkin_tools_prebuild
Finished <<< catkin_tools_prebuild [ 2.6 seconds ]
[build] Summary: All 1 packages succeeded!
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: None.
[build] Failed: None.
[build] Runtime: 2.6 seconds total.
Gazebo
参考链接:Ubuntu18安装Gazebo9
卸载
sudo apt-get remove gazebo*
sudo apt-get remove libgazebo*
sudo apt-get remove ros-melodic-gazebo* #kinetic noetic对应修改
先Git一个XTDrone代码。
git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
git submodule update --init --recursive
step-by-step安装方式
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
You can check to see if the file was written correctly.
cat /etc/apt/sources.list.d/gazebo-stable.list
setup keys
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
update the debian database
sudo apt-get update
Next install gazebo-9 by:
sudo apt-get install gazebo9
# For developers that work on top of Gazebo, one extra package
sudo apt-get install libgazebo9-dev
检查安装情况:
gazebo
出现错误:
sunx@sunx-NBLK-WAX9X:~$ gazebo
gazebo: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgazebo_common.so.9: undefined symbol: _ZN8ignition10fuel_tools12ClientConfig12SetUserAgentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
这个是有相应的库没有升级
sudo apt upgrade libignition-math2
我们对Gazebo的ROS插件做了修改,因此需要源码编译。安装依赖:
sudo apt-get install ros-melodic-moveit-msgs ros-melodic-object-recognition-msgs ros-melodic-octomap-msgs ros-melodic-camera-info-manager ros-melodic-control-toolbox ros-melodic-polled-camera ros-melodic-controller-manager ros-melodic-transmission-interface ros-melodic-joint-limits-interface
然后编译(如果编译时还缺其他的依赖,同上方法安装),由于需要用到XTDrone的文件,需要先完成XTDrone源码下载。
cd ~/catkin_ws
cp -r ~/XTDrone/sitl_config/gazebo_ros_pkgs src/
catkin build #开发者测试使用catkin_make会出问题,因此建议使用catkin build
错误2
编译的时候的错误:
执行catkin build时报错:
---------------------------------------------------------
Profile: default
Extending: [env] /opt/ros/melodic
Workspace: /home/sunx/catkin_ws
---------------------------------------------------------
Build Space: [exists] /home/sunx/catkin_ws/build
Devel Space: [exists] /home/sunx/catkin_ws/devel
Install Space: [unused] /home/sunx/catkin_ws/install
Log Space: [exists] /home/sunx/catkin_ws/logs
Source Space: [exists] /home/sunx/catkin_ws/src
DESTDIR: [unused] None
---------------------------------------------------------
Devel Space Layout: linked
Install Space Layout: None
---------------------------------------------------------
Additional CMake Args: None
Additional Make Args: None
Additional catkin Make Args: None
Internal Make Job Server: True
Cache Job Environments: False
---------------------------------------------------------
Buildlisted Packages: None
Skiplisted Packages: None
---------------------------------------------------------
Workspace configuration appears valid.
---------------------------------------------------------
[build] Found 6 packages in 0.0 seconds.
[build] Updating package table.
Starting >>> gazebo_dev
Starting >>> gazebo_msgs
Finished <<< gazebo_dev [ 2.7 seconds ]
Finished <<< gazebo_msgs [ 9.6 seconds ]
Starting >>> gazebo_ros
Finished <<< gazebo_ros [ 21.5 seconds ]
Starting >>> gazebo_plugins
Starting >>> gazebo_ros_control
Finished <<< gazebo_ros_control [ 27.2 seconds ]
_______________________________________________________________________________
Errors << gazebo_plugins:make /home/sunx/catkin_ws/logs/gazebo_plugins/build.make.000.log
c++: internal compiler error: 已杀死 (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
make[2]: *** [CMakeFiles/gazebo_ros_openni_kinect.dir/src/gazebo_ros_openni_kinect.cpp.o] Error 4
make[1]: *** [CMakeFiles/gazebo_ros_openni_kinect.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
make: *** [all] Error 2
cd /home/sunx/catkin_ws/build/gazebo_plugins; catkin build --get-env gazebo_plugins | catkin env -si /usr/bin/make --jobserver-fds=3,4 -j; cd -...............................................................................
Failed << gazebo_plugins:make [ Exited with code 2 ]
Failed <<< gazebo_plugins [ 2 minutes and 26.4 seconds ]
Abandoned <<< gazebo_ros_pkgs [ Unrelated job failed ]
[build] Summary: 4 of 6 packages succeeded.
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: 1 packages were abandoned.
[build] Failed: 1 packages failed.
[build] Runtime: 2 minutes and 57.6 seconds total.
[build] Note: Workspace packages have changed, please re-source setup files to use them.
这个错误是因为系统的交换空间不够,需要临时增加交换空间大小
参考链接make px4_sitl_default gazebo
我执行了命令,释放空间
sudo dd if=/dev/zero of=/swapfile bs=64M count=32 #使用swap创建临时分区
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB(这里空间大小也可以根据自己的需要设置)
sudo mkswap /swapfile
sudo chmod 0600 /swapfile
sudo swapon /swapfile
swapoff -a
再次执行catkin build通过编译
---------------------------------------------------------
Profile: default
Extending: [cached] /opt/ros/melodic
Workspace: /home/sunx/catkin_ws
---------------------------------------------------------
Build Space: [exists] /home/sunx/catkin_ws/build
Devel Space: [exists] /home/sunx/catkin_ws/devel
Install Space: [unused] /home/sunx/catkin_ws/install
Log Space: [exists] /home/sunx/catkin_ws/logs
Source Space: [exists] /home/sunx/catkin_ws/src
DESTDIR: [unused] None
---------------------------------------------------------
Devel Space Layout: linked
Install Space Layout: None
---------------------------------------------------------
Additional CMake Args: None
Additional Make Args: None
Additional catkin Make Args: None
Internal Make Job Server: True
Cache Job Environments: False
---------------------------------------------------------
Buildlisted Packages: None
Skiplisted Packages: None
---------------------------------------------------------
Workspace configuration appears valid.
---------------------------------------------------------
[build] Found 6 packages in 0.0 seconds.
[build] Package table is up to date.
Starting >>> gazebo_dev
Starting >>> gazebo_msgs
Finished <<< gazebo_dev [ 0.2 seconds ]
Finished <<< gazebo_msgs [ 0.8 seconds ]
Starting >>> gazebo_ros
Finished <<< gazebo_ros [ 0.6 seconds ]
Starting >>> gazebo_plugins
Starting >>> gazebo_ros_control
Finished <<< gazebo_ros_control [ 0.3 seconds ]
Finished <<< gazebo_plugins [ 16.4 seconds ]
Starting >>> gazebo_ros_pkgs
Finished <<< gazebo_ros_pkgs [ 2.7 seconds ]
[build] Summary: All 6 packages succeeded!
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: None.
[build] Failed: None.
[build] Runtime: 20.6 seconds total.
[build] Note: Workspace packages have changed, please re-source setup files to use them.
编译成功后执行:
source ~/catkin_ws/devel/setup.bash
rosrun gazebo_ros gazebo
第一次执行会稍微慢一点,其中可以
gedit ~/.bashrc
# 把setup.bash写入到其中
source ~/catkin_ws/devel/setup.bash
# 并保存
这样以后使用就比较方便了.
下载模型,并解压
unzip models.zip
cp -r models ~/.gazebo/models/
MAVROS安装
sudo apt install ros-kinetic-mavros ros-kinetic-mavros-extras # for ros-kinetic
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras # for ros-melodic
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.shsudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步需要装一段时间
sunx@sunx-NBLK-WAX9X:~$ wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
--2023-05-07 21:09:40-- https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
正在解析主机 gitee.com (gitee.com)... 212.64.63.215, 212.64.63.190
正在连接 gitee.com (gitee.com)|212.64.63.215|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 1244 (1.2K) [text/plain]
正在保存至: “install_geographiclib_datasets.sh.1”install_geographicl 100%[===================>] 1.21K --.-KB/s 用时 0s 2023-05-07 21:09:41 (164 MB/s) - 已保存 “install_geographiclib_datasets.sh.1” [1244/1244])sunx@sunx-NBLK-WAX9X:~$ sudo chmod a+x ./install_geographiclib_datasets.sh
sunx@sunx-NBLK-WAX9X:~$ sudo ./install_geographiclib_datasets.sh #这步需要装一段时间
GeographicLib geoids dataset egm96-5 already exists, skipping
GeographicLib gravity dataset egm96 already exists, skipping
GeographicLib magnetic dataset emm2015 already exists, skippings
PX4配置
git clone https://github.com/PX4/PX4-Autopilot.git
mv PX4-Autopilot PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1
git submodule update --init --recursive
make px4_sitl_default gazebo
PX4安装可以参考该链接:
完整安装PX4/PX4-Autopilot,无需科学上网
报错:c++: internal compiler error: 已杀死 (program cc1plus)
c++: internal compiler error: 已杀死 (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
[47/100] Building CXX object CMakeFile...dir/src/gazebo_gst_camera_plugin.cpp.o
ninja: build stopped: subcommand failed.
[736/740] Linking CXX executable bin/px4
FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-build
cd /home/sunx/PX4_Firmware/build/px4_sitl_default/build_gazebo && /usr/bin/cmake --build .
ninja: build stopped: subcommand failed.
Makefile:198: recipe for target 'px4_sitl_default' failed
make: *** [px4_sitl_default] Error 1
空间不够大,编译不了
执行命令:
cd PX4_Firmware
make px4_sitl_default gazebo
运行报错:
Traceback (most recent call last):File "/home/sunx/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model", line 34, in <module>from tf.transformations import quaternion_from_eulerFile "/opt/ros/melodic/lib/python2.7/dist-packages/tf/__init__.py", line 30, in <module>from tf2_ros import TransformException as Exception, ConnectivityException, LookupException, ExtrapolationExceptionFile "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/__init__.py", line 39, in <module>from .buffer_interface import *File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/buffer_interface.py", line 32, in <module>import roslib; roslib.load_manifest('tf2_ros')File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 64, in load_manifestsys.path = _generate_python_path(package_name, _rospack) + sys.pathFile "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 97, in _generate_python_pathm = rospack.get_manifest(pkg)File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 171, in get_manifestreturn self._load_manifest(name)File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 215, in _load_manifestretval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name, rospack=self)File "/usr/lib/python2.7/dist-packages/rospkg/manifest.py", line 414, in parse_manifest_file_static_rosdep_view = init_rospack_interface()File "/usr/lib/python2.7/dist-packages/rosdep2/rospack.py", line 60, in init_rospack_interfacelookup = _get_default_RosdepLookup(Options())File "/usr/lib/python2.7/dist-packages/rosdep2/main.py", line 136, in _get_default_RosdepLookupverbose=options.verbose)File "/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py", line 603, in create_defaultsources = load_cached_sources_list(sources_cache_dir=sources_cache_dir, verbose=verbose)File "/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py", line 560, in load_cached_sources_listraise CachePermissionError('Failed to write cache file: ' + str(e))
rosdep2.core.CachePermissionError: Failed to write cache file: [Errno 13] Permission denied: '/home/sunx/.ros/rosdep/sources.cache/index'
[vehicle_spawn_sunx_NBLK_WAX9X_3023_4520051423393195513-5] process has died [pid 3101, exit code 1, cmd /home/sunx/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model -sdf -file /home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/iris/iris.sdf -model iris -x 0 -y 0 -z 0 -R 0 -P 0 -Y 0 __name:=vehicle_spawn_sunx_NBLK_WAX9X_3023_4520051423393195513 __log:=/home/sunx/.ros/log/b4e3907c-ece2-11ed-b9a4-28cdc497963d/vehicle_spawn_sunx_NBLK_WAX9X_3023_4520051423393195513-5.log].
log file: /home/sunx/.ros/log/b4e3907c-ece2-11ed-b9a4-28cdc497963d/vehicle_spawn_sunx_NBLK_WAX9X_3023_4520051423393195513-5*.log
解决方法:
sudo rosdep fix-permissions
运行命令
rostopic echo /mavros/state
结果:
XTDrone
对XTDrone进行配置,因为之前已经下载了源码
cd XTDrone
git submodule update --init --recursive
cp sensing/gimbal/gazebo_gimbal_controller_plugin.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src/
cp sitl_config/init.d-posix/rcS ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/
cp -r sitl_config/launch/* ~/PX4_Firmware/launch/
cd ~/.gazebo/models/
rm -r stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/
参考链接:ROS 遇到问题及解决——汇总
XTDorne平台搭建无人机仿真环境时遇到的问题及解决
ubuntu卸载已安装的包
相关文章:

【XTDrone Ubuntu18.04】XTDrone + Ubuntu18.04 + PX4 安装过程
重新配置所有的软件 卸载之前安装的ROS GAZEBO 记得把/home下的.ros和.gazebo也删除,删就删干净 参考链接:ROS的卸载与安装 血泪总结!亲测有效 卸载ROS方法 正式安装 安装依赖 sudo apt install ninja-build exiftool ninja-build protobuf…...

网站使用什么协议比较好
网站协议大多数使用HTTP和HTTPS HTTP协议,超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议。 HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议&…...

18. 机器学习——集成学习
机器学习面试题汇总与解析——集成学习 本章讲解知识点 什么是集成学习AdaBoost梯度提升树(Gradient Boosting Decision Tree, GBDT)随机森林(Random Forest,简称RF)XGBoostLightGBM本专栏适合于Python已经入门的学生或人士,有一定的编程基础。 本专栏适合于算法工程师、机器…...

SimaPro生命周期评估建模与碳足迹分析流程
SimaPro以系统和透明的方式轻松建模和分析复杂的生命周期,通过确定供应链中每个环节的热点,从原材料的提取到制造,分销,使用和处置,衡量所有生命周期阶段的产品和服务对环境的影响。SimaPro是过去25年评估生命周期的最…...

我的项目分享(不喜勿喷)
我要分享的项目是大喇叭C2C电商平台系统,一个面向移动端的电子商务平台,为个体消费者和商家提供直接交易和沟通的便利,丰富了人们的生活。 主要功能模块: 该项目的主要功能包括: 1. 用户注册功能:使用正则…...

PyTorch:张量与矩阵
PyTorch 是一个基于 Python 的科学计算包,专门针对深度学习研究,提供了丰富的工具和库。在 PyTorch 中,张量(tensor)是深度学习的核心数据结构,它可以看作是可以进行自动微分的多维数组。张量不仅可以代表标…...

传统广电媒体为何选择上云?有何优势?
随着现在互联网和科技的发展,现在更多的行业都搭上了科技这辆快车快速的完成了转型,那么在传统的广电媒资行业他们目前有哪些痛点呢?传统广电媒体转型发展现状是什么?企业如何数字化转型?企业上云的优势有哪些…...

系列十、堆参数调优
一、堆内存调优参数 -Xms堆空间的最小值,默认为物理内存的1/64-Xmx堆空间的最大值,默认为物理内存的1/4-XX:PrintGCDetails输出详细的GC处理日志 二、获取堆内存的默认物理内存 /*** Author : 一叶浮萍归大海* Date: 2023/11/16 14:50* Description: 获…...

sqlite3简单使用
为什么要使用sqlite3? sqlite3轻量简介,无需单独的数据库服务,只需访问磁盘上的.db的文件。在某些情况下很有用。 下面是一些简单的使用代码: import sqlite3 from uuid import uuid1# 连接数据库文件,如果不存在会创建 with…...

实测文心一言4.0,真的比GPT-4毫不逊色吗?
10月17日,李彦宏在百度世界2023上表示。当天,李彦宏以《手把手教你做AI原生应用》为主题发表演讲,发布文心大模型4.0版本。 今天,咱们就开门见山啊。这一回要测一测,昨天才发布的文心一言大模型 4.0。 之所以要测它&…...

损失函数——KL散度(Kullback-Leibler Divergence,KL Divergence)
KL散度(Kullback-Leibler Divergence,简称KL散度)是一种度量两个概率分布之间差异的指标,也被称为相对熵(Relative Entropy)。KL散度被广泛应用于信息论、统计学、机器学习和数据科学等领域。 KL散度衡量的…...

基于springboot的医护人员排班系统 全套代码 全套文档
基于springboot的医护人员排班系统,springboot vue mysql (毕业论文10411字以上,共27页,程序代码,MySQL数据库) 代码下载链接:https://pan.baidu.com/s/177HdCGtTvqiHP4O7qWAgxA?pwd0jlf 提取码:0jlf 【运行环境】 IDEA, JDK1.8, Mysql, Node, Vue …...

【YOLOX简述】
YOLOX的简述 一、 原因1. 背景2. 概念 二、 算法介绍2.1 YOLOX算法结构图:2.2 算法独特点2.3 Focus网络结构2.4 FPN,PAN2.5 BaseConv2.6 SPP2.7 CSPDarknet2.8 YOlO Head 三、预测曲线3.1 曲线 一、 原因 1. 背景 工业的缺陷检测是计算机视觉中不可缺少…...

一文带你深入浅出Web的自动化测试工具Selenium【建议收藏】
文章目录 前言第01节 Selenium概述第02节 安装浏览器驱动(以Google为例)第03节 定位页面元素1. 打开指定页面2. id 定位3. name 定位4. class 定位5. tag 定位6. xpath 定位7. css 选择器8. link 定位9. 示例 有道翻译 第04节 浏览器控制1. 修改浏览器窗…...

Django模版层
解析: forloop内置对象:运行结果解析 counter0: 从0开始计数 counter : 从1开始计数 first: True,判断循环的开始 last : Tues,判断循环的结束模版变量的书写 我们可以在html中编写python代码。 演示: {{ 填写变量 }}{% 填写类的 %}{{ d.0 }} {{ d.1 }…...

同一个IP地址可有不同的写法?
每个人在上网的时候,都会被分配一个IP地址,这是互联网世界中的“身份证号码”。IP地址是以数字形式呈现的,例如192.168.1.1。然而,你是否知道,尽管一个IP地址的数字串唯一标识一个设备,但它可以有不同的写法…...

《Effective C++》条款13
以对象管理资源 有这样一段代码: class A { public:A* create(){...}}; class B :public A { public:A* ptr create();...delete ptr; }; 我们定义了ptr去接收create()函数的返回值,并且在最后进行了回收资源。看似是没问题的。但是实际上有很多隐患&am…...

【入门Flink】- 09Flink水位线Watermark
在窗口的处理过程中,基于数据的时间戳,自定义一个“逻辑时钟”。这个时钟的时间不会自动流逝;它的时间进展,就是靠着新到数据的时间戳来推动的。 什么是水位线 用来衡量事件时间进展的标记,就被称作“水位线”&#x…...

华为交换机的基本配置,看完秒懂
一、 交换机的基本配置 交换机连接方式 本地:计算机COM口/USB口 --> Console线 --> 交换机Console口 远程:Putty、SecureCRT、Xshell远程管理工具 华为VRP网络操作系统 1)华为的视图模式 <Huawei> //用户视图&#x…...

spark与scala的对应版本查看
仓库地址 https://mvnrepository.com/artifact/org.apache.spark/spark-core 总结 spark3.0 以后,不再支持 scala2.11spark3.0 以后,只能用 scala2.12以上...

影响力|子芽首创代码疫苗技术获评“年度技术突破者”
近日,由业界权威机构嘶吼产业研究院主办的2023网络安全“金帽子”年度评选结果已正式公布。本届评选由网安产业监管机构及相关委办局领导坐镇、行业资深专家、头部网安企业负责人权威加持。凭借首创的专利级代码疫苗技术创新突破了数字供应链安全领域关键核心技术&a…...

还在为忘记BIOS密码担心?至少有五种方法可以重置或删除BIOS密码
忘记密码是一个我们都非常熟悉的问题。虽然在大多数情况下,只需单击“忘记密码”选项,然后按照几个简单的步骤即可恢复访问权限,但情况并非总是如此。忘记BIOS密码(通常为避免进入BIOS设置或避免个人计算机启动而设置的密码)意味着你将无法完全启动系统。 幸运的是,就像…...

部署百川大语言模型Baichuan2
Baichuan2是百川智能推出的新一代开源大语言模型,采用 2.6 万亿 Tokens 的高质量语料训练。在多个权威的中文、英文和多语言的通用、领域 benchmark 上取得同尺寸最佳的效果。包含有 7B、13B 的 Base 和 Chat 版本,并提供了 Chat 版本的 4bits 量化。 模…...

java面试常问
文章目录 java 基础1、JDK 和 JRE的区别2、 和equals的区别3、String、StringBuffer、StringBuilder4、String str “a”、 new String(“a”)一样吗?5、ArrayList 和 LinkedList的区别?6、HashMap的原理与实现6.1、容量与扩容6.2、扩容机制 7、HashMa…...

关于nginx一个域名,配置多个端口https的方法
假如我有一个域名 abc.com。在这个域名下,部署了两个应用,分别对应端口:8081,8082 想要给两个应用接口都开启https访问。 nginx配置如下: server { #监听443端口 listen 443 ssl;…...

IntelliJ IDEA插件开发入门实战
介绍 IntelliJ IDEA是备受赞誉的Java开发工具,提供了丰富的功能和工具。通过使用插件,可以扩展和增强这个集成开发环境。IntelliJ IDEA拥有庞大的插件生态系统,涵盖了代码分析、格式化工具和完整的框架等各个领域。开发人员还可以创建自己的…...

站群服务器如何选择
站群服务器如何选择 1.站群服务器线路 双线服务器在访问网站不受线路影响,较稳定。 2.站群服务器的稳定性 选择站群服务器的时候,服务器的稳定性是非常重要的。 3.站群服务器带宽大小 站群服务器网站在日常使用时,主要的目的是为了集中网…...

【vue】AntDV组件库中a-upload实现文件上传:
文章目录 一、文档:二、使用(以Jeecg为例):【1】template:【2】script: 三、效果图: 一、文档: Upload 上传–Ant Design Vue 二、使用(以Jeecg为例): 【1】template: <a-uploa…...

JSP在Scriptlet中编写java代码的形式
我们想在jsp界面中去写java代码,就需要将java代码写在Scriptlet中 虽然说 有这种方式 但是 目前 大部分都会不建议你往jsp中去写java代码 因为 目前都在推广前后端分离 这也是jsp使用面有没有少的原因 jsp也建议解耦 不要让你的程序耦合性太高 还是前端是前端 后端是…...

btree,hash,fulltext,Rtree索引类型区别及使用场景
当涉及到数据库索引类型的选择时,理解其特点和适用场景非常重要。下面是对B树、哈希索引、全文索引和R树的详细介绍,以及它们在不同数据场景下的使用示例: B树(B-tree):特点:B树是一种多路搜索…...