La configuración básica de la plataforma de simulación de drones basada en ROS y PX4 bajo Ubuntu 18.04

La configuración básica de la plataforma de simulación de drones basada en ROS y PX4 bajo Ubuntu 18.04

Materiales de referencia:
https://www.yuque.com/xtdrone/manual_cn/basic_config_1.11
https://blog.csdn.net/qq_42585108/article/details/106781596
https://blog.csdn.net/qq_44830040/article / details / 106049992
https://blog.csdn.net/abc869788668/article/details/78323395?locationNum=8&fps=1

El proyecto XTDrone de Xiao Kun se utilizó para la construcción de la plataforma de simulación de UAV. Muchas gracias. La página web relacionada: https://gitee.com/robin_shaun/XTDrone. Aquí solo tengo un resumen de la construcción de la plataforma de simulación de UAV.
Este artículo es solo un resumen y una experiencia de instalación personal basada en estos artículos. Puede haber muchas citas en el medio. Si constituye una infracción, comuníquese conmigo para eliminarlo.

Sistema Ubuntu18.04, comencé a instalar desde un Ubuntu recién instalado, paso a paso, e integré algunos métodos de construcción de red y problemas encontrados en él, y los registré para su referencia. Si hay algún error, corrígeme.

Una instalación dependiente

1 、

sudo apt install -y \
ninja-build \
exiftool \
python-argparse \
python-empy \
python-toml \
python-numpy \
python-yaml \
python-dev \
python-pip \
ninja-build \
protobuf-compiler \
libeigen3-dev \
genromfs \
xmlstarlet \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev

2 、

pip install \
pandas \
jinja2 \
pyserial \
cerberus \
pyulog \
numpy \
toml \
pyquaternion

Si se produce el siguiente error, puede actualizar setuptools y pip primero

Collecting pandas
  Using cached https://files.pythonhosted.org/packages/64/f1/8fdbd74edfc31625d597717be8c155c6226fc72a7c954c52583ab81a8614/pandas-1.1.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-qtvsjq8t/pandas/setup.py", line 349
        f"{extension}-source file '{sourcefile}' not found.\n"
                                                             ^
    SyntaxError: invalid syntax
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-qtvsjq8t/pandas/
pip install --upgrade setuptools
#若未报错不需要输入这两行命令
python -m pip install --upgrade pip

Dos, instalación ROS

Para la instalación,
consulte el sitio web oficial de ROS: http://wiki.ros.org/Installation/Ubuntu o consulte el tutorial: https://blog.csdn.net/qq_44830040/article/details/106049992 (este tutorial es una instalación de fuente doméstica, Aunque se puede usar ros, puede haber problemas al usarlo con otros como darknet_ros. Aunque la descarga desde fuentes domésticas será mucho más rápida, aún se recomienda descargar desde el sitio web oficial)

Nota: Ubuntu 18.04 se puede instalar directamente (es decir, el comando sudo apt-get install ros-melodic-desktop, es decir, para ROS Melodic, elija la instalación completa de escritorio, que instalará Gazebo9 y las bibliotecas relacionadas con la percepción al mismo tiempo), pero personalmente recomiendo 18.04 La instalación de gazebo9.0 directamente tiene defectos y pueden ocurrir problemas más adelante. Se recomienda instalar el escritorio y luego instalar gazebo9.13 o superior
Ubuntu16.04 (ROS Kinetic) en los siguientes pasos. Seleccione Destop o instalar. Gazebo7 no puede realizar simulaciones posteriores.
Aquí también está la instalación de ROS (tomando melódico como ejemplo):

1. Configure el repositorio de Ubuntu
. Haga clic en el código fuente en el software y actualice.
Inserte la descripción de la imagen aquí
2. Configure sources.list. Los
siguientes son Tsinghua Mirror, Zhongke University Mirror y la opción predeterminada oficial. Sin embargo, personalmente recomiendo el mirror doméstico, la descarga será mucho más rápida

Espejo Tsinghua:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

Espejo de la Universidad de Ciencia y Tecnología de China:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

El valor predeterminado oficial:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

3. Establecer la clave

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

4. Instalación

sudo apt update
sudo apt install ros-melodic-desktop

Si instala ROS normalmente, puede sudo apt install ros-melodic-desktop-full, aquí estoy sudo apt install ros-melodic-desktop, la razón se ha mencionado antes

5. Establecer el entorno

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6. Construir dependencias

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init

Si se produce un error:
ERROR: no se puede descargar la lista de fuentes predeterminada desde:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list El
sitio web puede estar inactivo.
Ejecute el siguiente comando :

cd /etc
sudo gedit hosts

Agregue al final: 151.11.84.133 raw.githubusercontent.com y luego guarde el archivo y salga.

Si ocurre un error: ERROR: el archivo de lista de fuentes predeterminado ya existe:
/etc/ros/rosdep/sources.list.d/20-default.list
Elimine si desea reinicializar la
solución, ejecute el siguiente comando:

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

Luego ejecuta de nuevosudo rosdep init

7. Realice la actualización de rosdep

rosdep update

Si se produce el siguiente error:
ERROR: error al cargar la lista de fuentes:
('La operación de lectura agotó el tiempo de espera',)
probablemente sea un problema de red, simplemente ejecute el comando de actualización rosdep repetidamente

Inicie ROS después de la instalación:

roscore

El siguiente resultado indica que la instalación se realizó correctamente:

... logging to /home/robin/.ros/log/a5118af0-5474-11ea-8b86-e454e828c524/r
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://robin-G3-3590:34223/
ros_comm version 1.12.14
SUMMARY
========
PARAMETERS
* /rosdistro: kinetic
* /rosversion: 1.12.14
NODES
auto-starting new master
process[master]: started with pid [30244]
ROS_MASTER_URI=http://robin-G3-3590:11311/
setting /run_id to a5118af0-5474-11ea-8b86-e454e828c524
process[rosout-1]: started with pid [30261]
started core service [/rosout]

Para crear un nuevo espacio de trabajo, se recomienda utilizar catkin-tools para administrar el espacio de trabajo. Después de eso, excepto para el inicio del entorno de simulación PX4, los proyectos restantes relacionados con ROS se administran en este espacio de trabajo.

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source devel/setup.bash

Tres, instalación de Gazebo

Ya sea ros Kinetic o Melodic, el Gazebo incorporado tiene defectos.Si se instaló un gazebo cuando se instaló ros, se recomienda desinstalarlo y reinstalarlo. Se recomienda que la versión de gazebo sea superior a 9.13.
Consulte el sitio web oficial para la instalación de Gazebo:
http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install
Nota:
1. Elija la instalación alternativa: instalación paso a paso
2. Instale Gazebo9.13 O arriba

La instalación de la glorieta también se enumera aquí para mayor comodidad.

1. Configure su computadora para aceptar software de package.osrfoundation.org

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
cat /etc/apt/sources.list.d/gazebo-stable.list
#如果出现deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial main表示没问题

2. Establecer la clave

wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update

3. Instale las instrucciones de gazebo9.1:

sudo apt-get install gazebo9=9.1*

Después de la instalación, entrada de terminal, gazebosi se abre Gazebo, la instalación es exitosa

4.Gazebo en sí es independiente de ROS, por lo que también necesita instalar el complemento Gazebo para ROS

sudo apt install ros-melodic-gazebo9-*
sudo apt install ros-melodic-gazebo-*

prueba

roscore  
rosrun gazebo_ros gazebo 

Si se puede abrir Gazebo, el complemento entre Gazebo y ROS también se ha instalado correctamente. También puede verificar la versión de mirador
escribiendogazebo --version

Cuatro, instalación MAVROS

sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
roscd mavros
sudo wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh 

El sudo final ./install_geographiclib_datasets.sh Este paso tarda un poco en instalarse, tenga paciencia

Cinco, configuración PX4 (versión 1.11)

git clone https://github.com/PX4/Firmware
mv Firmware PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1
git submodule update --init --recursive

Dado que descargar el código fuente y actualizar el submódulo es demasiado lento, he proporcionado el enlace PX4_Firmware descargado y actualizado aquí. Después de descargarlo, descomprímelo y extráelo en el directorio principal: https://download.csdn.net/download/qq_45067735/12713464

Instale las dependencias de Python necesarias:

cd ~/PX4_Firmware
bash
bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools

Compilar

make px4_sitl_default gazebo

Si el error de compilación solicita la instrucción ignition :: math :: Matrix4 xformV (vq); en PX4_Firmware / Tools / sitl_gazebo / src / gazebo_usv_dynamics_plugin.cpp; en la instrucción, xformV no definió el tipo antes,
modifíquelo a ignition :: math :: Matrix4 xformV ( vq); Recompilar después de guardar.

Modifique ~ / .bashrc en PX4_Firmware, agregue el siguiente código, preste atención a la coincidencia de ruta

source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

Luego ejecute el siguiente comando, Gazebo se iniciará en este momento, como se muestra en la figura a continuación.

cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch

Inserte la descripción de la imagen aquí
Y correr

rostopic echo /mavros/state

Si está conectado: Verdadero, significa que MAVROS y SITL se comunican correctamente.

---
header:
seq: 11
stamp:
secs: 1827
nsecs: 173000000
frame_id: ''
connected: True
armed: False
guided: False
manual_input: True
mode: "MANUAL"
system_status: 3
---

Nota:
1. Se recomienda descargar científicamente en línea. La velocidad de descarga en GitHub es relativamente lenta y puede fallar. También intenté modificar la red y el efecto es casi nulo. Se recomienda poner el código fuente de PX4 en GitHub en gitee antes de clonar git. Utilice la nube de código usted mismo. buscar.
Si descarga el código en la nube de código, la descarga de GitHub en el submódulo de actualización (git submodule update --init --recursive) también es muy lenta. Parece que es necesario modificar el submódulo, pero todavía no sé cómo operar , Si hay un gran dios que quiera dar alguna orientación.

2. El proceso de make px4_sitl_default gazebo puede probar la memoria de la computadora. Varias veces en mi computadora, la CPU está funcionando al 100%, y la
situación puede ser la siguiente:

Inserte la descripción de la imagen aquí
Puede intentar aumentar el espacio de intercambio temporal primero y luego ejecutar el comando make px4_sitl_default gazebo, o ejecutar directamente el comando make px4_sitl_default gazebo nuevamente, que puede requerir varias ejecuciones.

#注释:of=/home/swap,放置swap的空间; count的大小就是增加的swap空间的大小,64M就是块大小,这里是64MB,所以总共空间就是bs*count=1024MB.这里分配空间的时候需要一点时间,等待执行完毕。
sudo dd if=/dev/zero of=/home/swap bs=64M count=16  

#注释:把刚才空间格式化成swap各式
sudo mkswap /home/swap (可能会提示warning: don't erase bootbits sectorson whole disk. Use -f to force,不用理会)


#注释:使刚才创建的swap空间
sudo swapon /home/swap

3. El siguiente error puede ocurrir cuando se ejecuta el último comando (make px4_sitl_default gazebo):
Inserte la descripción de la imagen aquí
Solución:

sudo apt-get install libgstreamer-plugins-base1.0-dev

4. Las siguientes condiciones pueden ocurrir durante el funcionamiento:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquíestos errores y advertencias no afectan el uso y pueden ignorarse.

5. El proceso es lento cuando se ejecuta por primera vez. Gazebo puede tener una pantalla negra por un tiempo. De hecho, esto se está inicializando. Espere pacientemente, ya que será el caso más adelante.

6. Se recomienda modificar el archivo ./bashrc directamente en el directorio principal, usar control + h para ver los archivos ocultos, copiar las tres líneas de arriba directamente a la parte inferior e ingresar para source ~/.bashrcreiniciar barshc, para que se haga de una vez por todas, pero después de la modificación, abra el comando cada vez La línea aparecerá recién agregada
Inserte la descripción de la imagen aquí

6. Instalación de la estación terrestre QGC (opcional)

Enlace de instalación: https://docs.qgroundcontrol.com/en/getting_started/download_and_install.html Después del
inicio, aparecerá la pantalla que se muestra a continuación. Tenga en cuenta que Ubuntu16.04 no puede usar directamente la serie QGroundcontrol versión 4 (se puede usar la serie 3). Ubuntu16.04 requiere la compilación del código fuente de la serie 4. Por favor revise el enlace de instalación cuidadosamente.
Inserte la descripción de la imagen aquí

Seven, descarga de la fuente XTDrone

git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
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/models/* ~/.gazebo/models/
cp sitl_config/launch/* ~/PX4_Firmware/launch/
#如果之前没有catkin_ws,需要建立一下,之后的教程会用到
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts

Nota: cp -r sitl_config / models / * ~ / .gazebo / models / Este paso puede tener la siguiente situación:
Inserte la descripción de la imagen aquí
puede dejarlo solo por ahora, continuar con los siguientes pasos y volver a intentarlo después de la compilación, o puede ir al correspondiente manualmente Cree una carpeta y luego opere

8. Usa el teclado para controlar el vuelo del dron

Ejecutar en una terminal

cd ~/PX4_Firmware
roslaunch px4 indoor1.launch

Al ejecutar roslaunch px4 indoor1.launch por primera vez, la glorieta puede tardar un poco en cargarse, tenga paciencia

Después de iniciar Gazebo, ejecútelo en otra terminal

cd ~/XTDrone/communication/
python multirotor_communication.py iris 0

Después de establecer comunicación con iris 0, ejecute en otro terminal

cd ~/XTDrone/control/
python multirotor_keyboard_control.py iris 1 vel

Después del éxito, como se muestra en la figura,
puede controlar el desbloqueo / bloqueo de un iris a través del teclado, modificar el modo de vuelo, la velocidad del avión, etc. Utilice el modo de vuelo de despegue para despegar con t, y los parámetros relevantes (velocidad de despegue, altitud) deben configurarse en rcS. Generalmente, el modo fuera de borda se puede utilizar para despegar y la velocidad de despegue debe ser superior a 0,3 m / s para despegar. (Método de despegue: primero presione la tecla t para desbloquear, luego presione la tecla i para hacer que la velocidad ascendente sea mayor o igual a 0.3. En este momento, puede ver el rotor girando hacia arriba, y finalmente presione la tecla b para despegar. El intervalo entre las teclas debe ser más rápido, de lo contrario el tiempo Si el intervalo es demasiado largo, el dron se bloqueará automáticamente, y tendrás que repetir los pasos justo ahora) En
Inserte la descripción de la imagen aquíeste punto, se completa la configuración básica de la plataforma de simulación.
Nota: Los
siguientes errores pueden ocurrir cuando roslaunch px4 indoor1.launch:
1.
Inserte la descripción de la imagen aquí
Ver la solución: https: // blog .csdn.net / abc869788668 / article / details / 78323395? locationNum = 8 & fps = 1 Luego
ingrese el siguiente comando:

sudo /opt/ros/melodic/lib/mavros/install_geographiclib_datasets.sh

Puede llevar mucho tiempo y debes esperar pacientemente
. 2. El
Inserte la descripción de la imagen aquí
autor original dijo que puede ser un problema de LIDAR 3D, pero después de unos días de intentarlo, descubrí que el gazebo9.0 instalado tendrá el error anterior y gazebo9.13 puede ejecutarse, puedes intentar instalar gazebo Cambie la versión a 9.13 para probar. Es por eso que recomiendo elegir melodic-desktop al instalar ros y gazebo, e instalar gazebo 9.13 o posterior.

Página web de referencia:
[1]: https://www.yuque.com/xtdrone/manual_cn/basic_config_1.11
[2]: https://blog.csdn.net/qq_42585108/article/details/106781596
[3]: https : //blog.csdn.net/qq_44830040/article/details/106049992
[4]: https://blog.csdn.net/abc869788668/article/details/78323395?locationNum=8&fps=1

Supongo que te gusta

Origin blog.csdn.net/qq_45067735/article/details/107303796
Recomendado
Clasificación