【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-data
  gir1.2-harfbuzz-0.0 google-mock googletest hdf5-helpers ibverbs-providers
  icu-devtools libaec-dev libaec0 libapr1 libapr1-dev libaprutil1
  libaprutil1-dev libarmadillo-dev libarmadillo8 libarpack2 libarpack2-dev
  libassuan-dev libavcodec-dev libavdevice-dev libavdevice57 libavfilter-dev
  libavformat-dev libavresample-dev libavutil-dev libblas-dev libblas3
  libboost-all-dev libboost-atomic-dev libboost-atomic1.65-dev
  libboost-atomic1.65.1 libboost-chrono-dev libboost-chrono1.65-dev
  libboost-chrono1.65.1 libboost-container-dev libboost-container1.65-dev
  libboost-container1.65.1 libboost-context-dev libboost-context1.65-dev
  libboost-context1.65.1 libboost-coroutine-dev libboost-coroutine1.65-dev
  libboost-coroutine1.65.1 libboost-date-time-dev libboost-date-time1.65-dev
  libboost-dev libboost-exception-dev libboost-exception1.65-dev
  libboost-fiber-dev libboost-fiber1.65-dev libboost-fiber1.65.1
  libboost-filesystem-dev libboost-filesystem1.65-dev libboost-graph-dev
  libboost-graph-parallel-dev libboost-graph-parallel1.65-dev
  libboost-graph-parallel1.65.1 libboost-graph1.65-dev libboost-graph1.65.1
  libboost-iostreams-dev libboost-iostreams1.65-dev libboost-locale-dev
  libboost-locale1.65-dev libboost-log-dev libboost-log1.65-dev
  libboost-log1.65.1 libboost-math-dev libboost-math1.65-dev
  libboost-math1.65.1 libboost-mpi-dev libboost-mpi-python-dev
  libboost-mpi-python1.65-dev libboost-mpi-python1.65.1 libboost-mpi1.65-dev
  libboost-mpi1.65.1 libboost-numpy-dev libboost-numpy1.65-dev
  libboost-numpy1.65.1 libboost-program-options-dev
  libboost-program-options1.65-dev libboost-program-options1.65.1
  libboost-python-dev libboost-python1.65-dev libboost-python1.65.1
  libboost-random-dev libboost-random1.65-dev libboost-random1.65.1
  libboost-regex-dev libboost-regex1.65-dev libboost-regex1.65.1
  libboost-serialization-dev libboost-serialization1.65-dev
  libboost-serialization1.65.1 libboost-signals-dev libboost-signals1.65-dev
  libboost-signals1.65.1 libboost-stacktrace-dev libboost-stacktrace1.65-dev
  libboost-stacktrace1.65.1 libboost-system-dev libboost-system1.65-dev
  libboost-test-dev libboost-test1.65-dev libboost-test1.65.1
  libboost-thread-dev libboost-thread1.65-dev libboost-timer-dev
  libboost-timer1.65-dev libboost-timer1.65.1 libboost-tools-dev
  libboost-type-erasure-dev libboost-type-erasure1.65-dev
  libboost-type-erasure1.65.1 libboost-wave-dev libboost-wave1.65-dev
  libboost-wave1.65.1 libboost1.65-dev libboost1.65-tools-dev libbullet-dev
  libbullet2.87 libbz2-dev libconsole-bridge-dev libconsole-bridge0.4
  libcurl4-openssl-dev libdap-dev libdap25 libdapclient6v5 libdapserver7v5
  libdrm-dev libegl1-mesa-dev libepsilon-dev libepsilon1 libexpat1-dev
  libfabric1 libfreeimage-dev libfreeimage3 libfreexl-dev libfreexl1
  libfyba-dev libfyba0 libgdal-dev libgdal20 libgeos-3.6.2 libgeos-c1v5
  libgeos-dev libgeotiff-dev libgeotiff2 libgfortran4 libgif-dev libgif7
  libgl1-mesa-dev libgles1 libgles2-mesa-dev libglib2.0-dev libglib2.0-dev-bin
  libglu1-mesa-dev libglvnd-core-dev libglvnd-dev libgpg-error-dev
  libgpgme-dev libgraphite2-dev libgtest-dev libgts-dev libharfbuzz-dev
  libharfbuzz-gobject0 libhdf4-0-alt libhdf4-alt-dev libhdf5-100
  libhdf5-cpp-100 libhdf5-dev libhwloc-dev libhwloc-plugins libhwloc5
  libibverbs-dev libibverbs1 libice-dev libicu-dev libicu-le-hb-dev
  libicu-le-hb0 libiculx60 libignition-common libignition-fuel-tools1-1
  libignition-math4 libignition-msgs libignition-transport4 libjbig-dev
  libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libjson-c-dev libjsoncpp-dev
  libjxr0 libkml-dev libkmlbase1 libkmlconvenience1 libkmldom1 libkmlengine1
  libkmlregionator1 libkmlxsd1 liblapack-dev liblapack3 libldap2-dev
  liblog4cxx-dev liblog4cxx10v5 libltdl7:i386 liblz4-dev liblzma-dev
  libminizip-dev libminizip1 libmysqlclient-dev libmysqlclient20 libnetcdf-dev
  libnetcdf13 libnl-route-3-200 libnuma-dev libodbc1 libogdi3.2 libogdi3.2-dev
  libogre-1.9-dev libogre-1.9.0v5 libopenblas-base libopengl0 libopenjp2-7-dev
  libopenmpi-dev libopenmpi2 liborc-0.4-dev liborc-0.4-dev-bin libpcre16-3
  libpcre3-dev libpcre32-3 libpcrecpp0v5 libpng-dev libpng-tools libpoco-dev
  libpococrypto50 libpocodata50 libpocodatamysql50 libpocodataodbc50
  libpocodatasqlite50 libpocofoundation50 libpocojson50 libpocomongodb50
  libpoconet50 libpoconetssl50 libpocoredis50 libpocoutil50 libpocoxml50
  libpocozip50 libpoppler-dev libpoppler-private-dev libpostproc-dev libpq-dev
  libpq5 libproj-dev libproj12 libprotobuf-dev libprotobuf-lite10
  libprotoc-dev libprotoc10 libpsm-infinipath1 libpthread-stubs0-dev
  libpython-all-dev libpython-dev libpython2.7-dev libpython3-dev
  libpython3.6-dev libqhull-dev libqhull-r7 libqhull7 libqt5concurrent5
  libqt5designer5 libqt5opengl5 libqt5opengl5-dev libqt5sql5 libqt5sql5-sqlite
  libqt5test5 libqwt-headers libqwt-qt5-6 libqwt-qt5-dev librdmacm1
  libsctp-dev libsctp1 libsdformat6 libsdl2-2.0-0 libsimbody-dev
  libsimbody3.5v5 libsm-dev libspatialite-dev libspatialite7 libspnav0
  libsqlite3-dev libssl-dev libsuperlu-dev libsuperlu5 libswresample-dev
  libswscale-dev libsz2 libtar-dev libtar0 libtbb-dev libtbb2 libtiff-dev
  libtiff5-dev libtiffxx5 libtinyxml-dev libtinyxml2-6 libtinyxml2-dev
  libtinyxml2.6.2v5 liburdfdom-dev liburdfdom-headers-dev liburdfdom-model
  liburdfdom-model-state liburdfdom-sensor liburdfdom-world liburiparser-dev
  liburiparser1 libusb-1.0-0-dev libusb-1.0-doc libwayland-bin libwayland-dev
  libwebp-dev libwxbase3.0-0v5 libwxgtk3.0-gtk3-0v5 libx11-dev libx11-doc
  libx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev
  libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev
  libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-dev libxdmcp-dev
  libxerces-c-dev libxerces-c3.2 libxext-dev libxfixes-dev libxi-dev
  libxml2-dev libxmu-dev libxmu-headers libxshmfence-dev libxt-dev
  libxxf86vm-dev libyaml-cpp-dev libyaml-cpp0.5v5 libyaml-dev libzip-dev
  libzip4 libzmq3-dev linux-headers-5.4.0-146-generic
  linux-hwe-5.4-headers-5.4.0-146 linux-image-5.4.0-146-generic
  linux-modules-5.4.0-146-generic linux-modules-extra-5.4.0-146-generic
  mesa-common-dev mpi-default-bin mpi-default-dev mysql-common odbcinst:i386
  odbcinst1debian2 odbcinst1debian2:i386 openmpi-bin openmpi-common pkg-config
  proj-data python-all python-all-dev python-asn1crypto python-cffi-backend
  python-crypto python-cryptography python-dbus python-defusedxml python-dev
  python-empy python-enum34 python-gi python-gnupg python-idna
  python-ipaddress python-keyring python-keyrings.alt python-netifaces
  python-nose python-numpy python-paramiko python-pip-whl python-pyasn1
  python-pycryptodome python-rospkg python-secretstorage python-wheel
  python-wxgtk3.0 python-wxtools python-wxversion python-xdg python2.7-dev
  python3-catkin-pkg-modules python3-dev python3-pyparsing python3-wheel
  python3.6-dev qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools
  qtchooser sdformat-sdf ttf-dejavu-core unixodbc-dev uuid-dev
  x11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-fixes-dev
  x11proto-input-dev x11proto-xext-dev x11proto-xf86vidmode-dev
  xorg-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.13


SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.13

NODES

auto-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.sh

sudo 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_euler
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf/__init__.py", line 30, in <module>
    from tf2_ros import TransformException as Exception, ConnectivityException, LookupException, ExtrapolationException
  File "/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_manifest
    sys.path = _generate_python_path(package_name, _rospack) + sys.path
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 97, in _generate_python_path
    m = rospack.get_manifest(pkg)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 171, in get_manifest
    return self._load_manifest(name)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 215, in _load_manifest
    retval = 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_interface
    lookup = _get_default_RosdepLookup(Options())
  File "/usr/lib/python2.7/dist-packages/rosdep2/main.py", line 136, in _get_default_RosdepLookup
    verbose=options.verbose)
  File "/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py", line 603, in create_default
    sources = 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_list
    raise 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卸载已安装的包

### 回答1: Ubuntu 18.04是一种广泛使用的操作系统,它有很多用途,其中之一就是用于设置PX4环境的虚拟机。 PX4是一个用于无人机的开源飞行控制系统,它是在Ubuntu上进行开发和使用的。为了建立PX4环境的虚拟机,我们首先需要安装一个虚拟机软件,比如VirtualBox或VMware。 安装完虚拟机软件后,我们可以在它们的界面上创建一个新的虚拟机。在创建过程中,我们需要选择使用Ubuntu 18.04作为虚拟机的操作系统。然后,我们需要设置虚拟机的硬盘容量、内存大小和其他配置选项。 创建虚拟机后,我们需要下载Ubuntu 18.04的镜像文件,并将其加载到虚拟机中。然后,我们可以启动虚拟机,并按照指示完成Ubuntu 18.04的安装过程安装完成后,我们可以通过虚拟机软件提供的界面进入Ubuntu 18.04的桌面环境。在桌面环境中,我们可以打开终端,并在终端中运行命令来安装PX4的依赖项和软件包。 一旦PX4环境安装完成,我们可以通过终端中的命令来启动PX4,并连接无人机,进行飞行控制和调试等操作。 在虚拟机中设置PX4环境可以提供一个安全且隔离的开发环境,以便我们能够在不影响主机系统的情况下进行PX4开发和测试。 总而言之,创建一个Ubuntu 18.04的虚拟机,并在其中设置PX4环境,可以让我们更方便地进行无人机飞行控制系统的开发和测试工作。 ### 回答2: 在Ubuntu 18.04下搭建PX4环境的虚拟机是一种常见的方法,它可以帮助开发者在稳定的环境中测试和开发PX4相关的软件。以下是一个简单的步骤指南: 1. 下载并安装虚拟机软件:可以选择VirtualBox或者VMware等虚拟机软件,根据自己的需求选择合适的版本并安装。 2. 下载Ubuntu 18.04镜像:从Ubuntu官网下载合适的Ubuntu 18.04镜像文件,记下下载位置。 3. 创建虚拟机:打开虚拟机软件,选择创建新虚拟机,一般会指导您输入虚拟机的配置信息。根据虚拟机软件的提示,指定虚拟机的名称、类型和操作系统等。 4. 配置虚拟机:在创建虚拟机后,选择“设置”菜单进入虚拟机配置界面。在“存储”选项中,添加Ubuntu 18.04镜像文件作为虚拟机的光盘驱动器。 5. 启动虚拟机:现在可以启动虚拟机了,在虚拟机软件中选择对应的虚拟机并点击启动按钮。虚拟机会加载Ubuntu 18.04镜像并启动。 6. 安装Ubuntu 18.04:根据Ubuntu的安装向导,选择合适的语言和地区设置,安装过程中会要求您选择磁盘分区和用户名密码等信息。安装完成后,重启虚拟机。 7. 更新系统:启动虚拟机后,在终端中运行以下命令更新系统: ``` sudo apt update sudo apt upgrade ``` 8. 安装PX4环境:通过终端命令安装PX4环境: ``` sudo apt install px4-ros-melodic-desktop ``` 9. 配置PX4环境:运行终端命令进入PX4目录进行配置: ``` cd ~/PX4 ./Tools/setup/ubuntu.sh ``` 10. 编译和运行PX4:按照官方文档指导,使用make命令编译PX4,并按照指导运行。 通过以上步骤,您就可以在Ubuntu 18.04下搭建并配置PX4环境的虚拟机了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SUNX-T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值