• 【总结好文】【新手避坑指南】Ubuntu18.04 轻松愉快的安装ROS并带你仿真个无人机飞行


    Ubuntu18.04 ROS无人机PX4仿真环境搭建

    引用文章

    1. 环境搭建总流程
    2. [indoor1.launch] is neither a launch file。。。。的解决办法(在最后)
    3. Gazebo模型大全下载方式
    4. 无人机上添加激光雷达、双目相机和下视摄像头的方法
    5. catkin init/build 遇到catkin:command not found 亲测有效的解决办法。
    6. 键盘控制无人机飞行

    注意事项及说明

    1. 纯净的Ubuntu上来先sudo apt-get update一下再进行其他的操作。
    2. 做无人机仿真的ROS安装时,不要安装完整版。这一点在环境搭建总流程的链接里有明显提示,注意!
    3. 第七步XTDrone源码下载期间的命令:cp -r sitl_config/models/{3d_gpu_lidar,3d_lidar,hokuyo_lidar,kinect,stereo_camera} ~/.gazebo/models/
      如果这一步出现了报错,说明Gazebo的模型没有导入成功,需要看引用文章的第3篇,成功添加后别忘了更新环境,具体看第2篇
    4. 第8步使用键盘飞行无人机时,cd ~/XTDrone/communication/这一步路径有错,在cd进一层就好了,忘记是哪一层了,在里面找一找就可以了。

    阉割版安装流程

    安装依赖
    sudo apt-get update
    
    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
    
    pip2 install pandas jinja2 pyserial cerberus pyulog numpy toml pyquaternion  -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    pip3 install packaging numpy empy toml pyyaml jinja2 -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    ROS安装
    1. 软件与更新中点击源代码
      在这里插入图片描述
    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'
    
    1. 设置Key
    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    
    1. 安装
    sudo apt update
    
    sudo apt install ros-melodic-desktop
    
    1. 环境设定
    echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
    
    source ~/.bashrc
    
    1. 构建软件包的依赖关系
    sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
    
    sudo apt install python-rosdep
    
    sudo rosdep init
    
    1. 执行rosdep update更新
    rosdep update
    
    Gazebo安装
    1. 设置计算机以接受来自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
    
    1. 设置密钥
    wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
    
    sudo apt-get update
    
    1. 安装gazebo9.1
    sudo apt-get install gazebo9=9.1*
    
    1. 插件安装
    sudo apt install ros-melodic-gazebo9-*
    
    sudo apt install ros-melodic-gazebo-*
    
    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 
    

    原文说的这一步sudo ./install_geographiclib_datasets.sh需要很长时间,但是本人实际操作时很快就结束,可能是因为在国外的缘故?

    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
    

    原文中有更快的解决方案,详细请看原文,引用文章的第一篇。

    安装必要的python依赖

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

    编译

    make px4_sitl_default gazebo
    

    修改环境变量

    source ~/catkin_ws/devel/setup.bash
    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
    

    运行

    cd ~/PX4_Firmware
    roslaunch px4 mavros_posix_sitl.launch
    

    再运行

    rostopic echo /mavros/state
    

    若connected: True 则说明MAVROS与SITL通信成功。

    QGC地面站安装

    只有一个安装链接,本人未亲自尝试,但是好像路径规划来看,这个还是挺重要的,未深入了解过,做路径规划避障的一定要下载。
    安装链接

    XTDrone源码下载
    git clone https://gitee.com/robin_shaun/XTDrone.git
    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/models/{3d_gpu_lidar,3d_lidar,hokuyo_lidar,kinect,stereo_camera} ~/.gazebo/models/
    cp sitl_config/launch/* ~/PX4_Firmware/launch/
    

    若期间有报错,请看注意事项中的第三条。
    修改之后重新编译

    cd ~/PX4_Firmware
    make px4_sitl_default gazebo
    

    编译不过更新环境再编译
    更新环境:

    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
    
    用键盘控制无人机飞行

    在一个终端运行

    cd ~/PX4_Firmware
    roslaunch px4 indoor1.launch
    

    第二个终端运行
    这一步在注意事项里有具体描述!详查!

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

    第三个终端运行

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

    之后可以查看引用文章来通过键盘操控无人机了。

    一点小概念

    PX4_SITL为PX4软件的仿真模块。PX4_SitL相当于在PC上运行的PX4代码,区别在于单片机运行的PX4代码传感器数据来自于真实的传感器数据, PX4_SitL的传感器数据来自于软件仿真。

  • 相关阅读:
    leetcode 75 颜色分类 A
    leetcode525连续数组 A
    WCF无身份验证配置
    三读设计模式
    EntityFrameWork+Oracle学习笔记搭配环境(一)
    EntityFrameWork+Oracle学习笔记DBfirst(二)
    用Python解答百度测试开发算法面试题
    Python实现采集wordpress整站数据的爬虫
    吾八哥学Python(六):运算符与表达式
    吾八哥学Python(四):了解Python基础语法(下)
  • 原文地址:https://www.cnblogs.com/linglingdog/p/15874441.html
Copyright © 2020-2023  润新知