ROS安装和MAVROS以及PX4的安装

只能说怀着沉重的心情,本来不想写的,但是又还是害怕后续出什么幺蛾子,就记录一下,希望自己永远没有机会在看这篇文章。


ROS安装(ubuntu18.04安装melodic)


1. Ubuntu 的软件与更新:

请添加图片描述

2.设置安装源:

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'

3.设置密钥:

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

4.安装ros:

4.1

sudo apt update

4.2(这里有多个版本,可以自己去查,一般安装下面这个最完整)

sudo apt install ros-melodic-desktop-full

5.配置环境变量:

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

6.安装依赖项:

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

7.初始化rosdep:

sudo apt install python-rosdep
sudo rosdep init

这里需要注意的是:第二条命令容易出错。
根据我多次的经验,先多试几次第二条命令,多试几次就会好。如何不行,就去查查吧,记得好像可以手动添加这步下载的文件。
当第二条通过后,先修改以下文件:

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

运行上述命令,打开一个文件,替换内容如下:

# os-specific listings first rosdep update
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/osx-homebrew.yaml osx
# generic
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/base.yaml
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/python.yaml
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/ruby.yaml
gbpdistro https://gitee.com/wybros/rosdistro/raw/master/releases/fuerte.yaml fuerte

cd /usr/lib/python2.7/dist-packages/rosdep2/
sudo gedit gbpdistro_support.py

替换 FUERTE_GBPDISTRO_URL 如下:

FUERTE_GBPDISTRO_URL = 'https://gitee.com/wybros/rosdistro/raw/' \
    'master/releases/fuerte.yaml'

cd /usr/lib/python2.7/dist-packages/rosdep2/
sudo gedit rep3.py

替换 REP3_TARGETS_URL 如下:

REP3_TARGETS_URL = 'https://gitee.com/wybros/rosdistro/raw/master/releases/targets.yaml'


cd /usr/lib/python2.7/dist-packages/rosdep2/
sudo gedit sources_list.py

替换 DEFAULT_SOURCES_LIST_URL 如下:


DEFAULT_SOURCES_LIST_URL = 'https://gitee.com/wybros/rosdistro/raw/master/rosdep/sources.list.d/20-default.list'


cd /usr/lib/python2.7/dist-packages/rosdistro/
sudo gedit __init__.py

替换 DEFAULT_INDEX_URL 如下:


DEFAULT_INDEX_URL = 'https://gitee.com/wybros/rosdistro/raw/master/index-v4.yaml'

最后执行:

rosdep update

注意:上述所有命令一定要保证全部成功,不然可能会在后期出一些问题。

8.判读是否安装成功:

//打开一个终端:
roscore
//打开第二个终端(上面终端别关)
rosrun turtlesim turtlesim_node
//打开第三个终端
rosrun turtlesim turtle_teleop_key

如下图就算成功了。
在这里插入图片描述


Mavros 安装


主要有两种安装方式,但是我要和PX4结合起来用。就源码安装(安装包就不在我们自己建的工作空间)

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 

注意:一定要有耐心,出错,就多试几次。直到成功。


PX4安装


git clone https://gitee.com/robin_shaun/PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1
bash ./Tools/setup/ubuntu.sh  //--no-nuttx --no-sim-tools

替换PX4_Firware目录下的 .gitmodules 如下:

[submodule "mavlink/include/mavlink/v2.0"]
	path = mavlink/include/mavlink/v2.0
	url = https://gitee.com/robin_shaun/c_library_v2.git
	branch = master
[submodule "src/drivers/uavcan/libuavcan"]
	path = src/drivers/uavcan/libuavcan
	url = https://gitee.com/robin_shaun/uavcan.git
	branch = px4
[submodule "Tools/jMAVSim"]
	path = Tools/jMAVSim
	url = https://gitee.com/robin_shaun/jMAVSim.git
	branch = master
[submodule "Tools/sitl_gazebo"]
	path = Tools/sitl_gazebo
	url = https://gitee.com/robin_shaun/sitl_gazebo.git
	branch = master
[submodule "src/lib/matrix"]
	path = src/lib/matrix
	url = https://gitee.com/robin_shaun/Matrix.git
	branch = master
[submodule "src/lib/ecl"]
	path = src/lib/ecl
	url = https://gitee.com/robin_shaun/ecl.git
	branch = master
[submodule "boards/atlflight/cmake_hexagon"]
	path = boards/atlflight/cmake_hexagon
	url = https://gitee.com/robin_shaun/cmake_hexagon.git
	branch = px4
[submodule "src/drivers/gps/devices"]
	path = src/drivers/gps/devices
	url = https://gitee.com/robin_shaun/GpsDrivers.git
	branch = master
[submodule "src/modules/micrortps_bridge/micro-CDR"]
	path = src/modules/micrortps_bridge/micro-CDR
	url = https://gitee.com/robin_shaun/micro-CDR.git
	branch = px4
[submodule "platforms/nuttx/NuttX/nuttx"]
	path = platforms/nuttx/NuttX/nuttx
	url = https://gitee.com/robin_shaun/NuttX.git
	branch = px4_firmware_nuttx-9.1.0+
[submodule "platforms/nuttx/NuttX/apps"]
	path = platforms/nuttx/NuttX/apps
	url = https://gitee.com/robin_shaun/NuttX-apps.git
	branch = px4_firmware_nuttx-9.1.0+
[submodule "platforms/qurt/dspal"]
	path = platforms/qurt/dspal
	url = https://gitee.com/robin_shaun/dspal.git
[submodule "Tools/flightgear_bridge"]
	path = Tools/flightgear_bridge
	url = https://gitee.com/robin_shaun/PX4-FlightGear-Bridge.git
	branch = master 
[submodule "Tools/jsbsim_bridge"]
	path = Tools/jsbsim_bridge
	url = https://gitee.com/robin_shaun/px4-jsbsim-bridge.git
[submodule "src/examples/gyro_fft/CMSIS_5"]
	path = src/examples/gyro_fft/CMSIS_5
	url = https://gitee.com/mirrors/CMSIS_5

执行如下操作:

git submodule update --init --recursive

注意:这个命令可能也会出错,也是多试几次,网上有需要修改子目录文件的方法或者自己下载相应的文件夹,但是,虽然那样操作,这个命令可以通过,但是,到最后就一直有问题。经过我数十次的安装,就一直在这里执行,直到成功(可能晚上成功率高?)。

编译:

make px4_sitl_default gazebo
//or
make px4_fmu-v5_default gazebo
//上面的v5可以是其他,看自己固件版本,如果只是仿真,就第一句吧。

关于gazebo的错误,可以去查一下,若报参数无效,就在.bashrc文件最后添加

export SVGA_VGPU10=0

打开主目录下的 .bashrc文件,在最后添加如下语句:

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

运行下面launch文件:

roslaunch px4 mavros_posix_sitl.launch

如果顺利打开,先别急高兴,看一看有没有红色error,有的话,就麻烦了。
如果没有,在终端内,按回车,出现pxh> 输入 commander takeoff 观察gazebo的飞机会不会起飞。

再打开一个终端,

rostopic list
//正常应该有好多话题
rostopic echo /mavros/state
//这句执行完,出现如下,就算成功了

在这里插入图片描述
到这就算结束了。为什么会写这个网上都有的教程呢,主要还是某一天早上发现我的px4突然打开就报错了,就各种操作都不好,一直断断续续从早上10点吧,到第二天早上3点多才好,期间按照各种教程安装了可能数十次吧,就一模一样的操作,但是就是最后有问题,要么make编译不能通过,要么就是最后的launch文件运行,报各种错误。最后重新安装了一个ubuntu18.04,重新一步一步安装了ros,mavros,px4才好,但是也还是心情沉重吧,毕竟我不知道它原来是为什么会出问题的,就还是害怕后续会突然坏了。希望好运。

以下是Ubuntu 18.04上安装ROS(Robot Operating System)Gazebo、MAVROS和PX4的教程: 1. 首先,确保你的Ubuntu 18.04系统已经更新到最新版本。打开终端并运行以下命令来更新系统: ``` sudo apt update sudo apt upgrade ``` 2. 安装必要的依赖项。在终端中运行以下命令: ``` sudo apt install build-essential cmake curl git sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool python-catkin-tools sudo rosdep init rosdep update ``` 3. 创建并初始化一个catkin工作空间。在终端中运行以下命令: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws catkin init ``` 4. 下载PX4代码和模拟器。在终端中运行以下命令: ``` cd ~/catkin_ws/src git clone https://github.com/PX4/Firmware.git --recursive ``` 5. 安装PX4依赖项。在终端中运行以下命令: ``` cd ~/catkin_ws/src/Firmware ./Tools/setup/ubuntu.sh --no-nuttx ``` 6. 编译PX4。在终端中运行以下命令: ``` cd ~/catkin_ws catkin build px4 -j4 ``` 7. 安装Gazebo和相关插件。在终端中运行以下命令: ``` sudo apt install gazebo9 libgazebo9-dev sudo apt install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control ``` 8. 安装Mavros。在终端中运行以下命令: ``` sudo apt install ros-melodic-mavros ros-melodic-mavros-extras ``` 9. 配置序列设备。在终端中运行以下命令: ``` wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh chmod +x install_geographiclib_datasets.sh sudo ./install_geographiclib_datasets.sh ``` 10. 测试安装是否成功。在终端中运行以下命令,启动Gazebo仿真环境和Mavros节点: ``` roslaunch px4 mavros_posix_sitl.launch ``` 希望以上教程对你有所帮助!如果有任何问题,请在评论中提问。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值