【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以上...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...