本博客是参考XTDrone内容,进行ROS安装和配置。参考连接:XTDrone
- 更新
sudo apt updata sudo apt upgrade
- 依赖安装
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==0.7.0 numpy toml pyquaternion pip3 install packaging numpy empy toml pyyaml jinja2
- ros安装:ROS官网
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'
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt update sudo apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential sudo apt install python-rosdep
rosdep会出错,依照XTDrone的rosdepc进行安装,参考链接:XTDrone ROSDEP
sudo pip install rosdepc sudo rosdepc init rosdepc update
roscore # 进行测试
- 新建工作空间
cd mkdir -p ~/catkin_ws/src mkdir -p ~/catkin_ws/scripts cd catkin_ws/src && catkin_init_workspace # 使用catkin-tools话,则为cd catkin_ws && catkin init cd .. && catkin_make # 使用catkin-tools话,则为catkin build
- mavros安装
cd 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 #这步需要装一段时间,请耐心等待PX4配置
- PX4配置,利用国内gitee
git clone https://gitee.com/robin_shaun/PX4_Firmware cd PX4_Firmware git checkout -b xtdrone/dev v1.11.0-beta1 rm .gitmodules nano .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
# The 1 git submodule update --init cd ~/PX4_Firmware/src/drivers/uavcan/libuavcan rm .gitmodules nano .gitmodules
[submodule "dsdl"] path = dsdl url = https://gitee.com/robin_shaun/dsdl branch = legacy-v0 [submodule "libuavcan/dsdl_compiler/pyuavcan"] path = libuavcan/dsdl_compiler/pyuavcan url = https://gitee.com/robin_shaun/pyuavcan [submodule "libuavcan_drivers/kinetis"] path = libuavcan_drivers/kinetis url = https://gitee.com/robin_shaun/libuavcan_kinetis.git
# The 2 git submodule update --init cd ~/PX4_Firmware/Tools/jMAVSim rm .gitmodules nano .gitmodules
[submodule "jMAVlib"] path = jMAVlib url = https://gitee.com/robin_shaun/jMAVlib branch = master
# The 3 git submodule update --init cd ~/PX4_Firmware/Tools/sitl_gazebo rm .gitmodules nano .gitmodules
[submodule "external/OpticalFlow"] path = external/OpticalFlow url = https://gitee.com/robin_shaun/OpticalFlow
# The 4 git submodule update --init cd ~/PX4_Firmware/platforms/qurt/dspal rm .gitmodules nano .gitmodules
[submodule "cmake_hexagon"] path = cmake_hexagon url = https://gitee.com/robin_shaun/cmake_hexagon
# The 5 git submodule update --init cd ~/PX4_Firmware/src/drivers/uavcan/libuavcan/libuavcan/dsdl_compiler/pyuavcan rm .gitmodules nano .gitmodules
[submodule "dsdl"] path = dsdl url = https://gitee.com/robin_shaun/dsdl
# The 6 git submodule update --init cd ~/PX4_Firmware/Tools/sitl_gazebo/external/OpticalFlow rm .gitmodules nano .gitmodules
[submodule "external/klt_feature_tracker"] path = external/klt_feature_tracker url = https://gitee.com/robin_shaun/klt_feature_tracker
git submodule update --init cd ~/PX4_Firmware make px4_sitl_default gazebo
- 修改bashrc文件
nano ~/.bashrc
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
source ~/.bashrc
- PX4飞控连接
roslaunch mavros px4.launch fcu_url:="/dev/ttyACM0:921600"



