国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

無人機(jī)仿真—PX4編譯,gazebo仿真及簡單off board控制模式下無人機(jī)起飛

這篇具有很好參考價(jià)值的文章主要介紹了無人機(jī)仿真—PX4編譯,gazebo仿真及簡單off board控制模式下無人機(jī)起飛。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

無人機(jī)仿真—PX4編譯,gazebo仿真及簡單off board控制模式下無人機(jī)起飛

前言

  • 在上篇記錄中,已經(jīng)對(duì)整體的PX4仿真環(huán)境有了一定的了解,現(xiàn)如今就要開始對(duì)無人機(jī)進(jìn)行起飛等仿真環(huán)境工作,在整體虛擬環(huán)境中如果程序能夠安穩(wěn)起飛降落,即可對(duì)無人機(jī)進(jìn)行實(shí)飛操作。
  • 需要做的是,通過PX4官網(wǎng)提供的基本程序包,在ROS工作空間下新建程序包對(duì)其進(jìn)行運(yùn)行,再打開仿真環(huán)境即可

PX4編譯

  • cd /Firmware  #進(jìn)入PX4文件夾內(nèi)
    make px4_sitl_default gazebo  # 編譯固件并加載仿真環(huán)境
    
  • 如果想進(jìn)行自動(dòng)起飛,可運(yùn)行以下命令

    • commander takeoff
      

利用ROS啟動(dòng)仿真環(huán)境(正式)

  • 老規(guī)矩先加載ROS,運(yùn)行命令

    • roscore
      
      
  • px4 仿真 高,無人機(jī)

    • 出現(xiàn)紅色警告,說明ROS本地緩存大于1GB,可以忽視,如果需要清理可以使用

      • rosclean purge
        
  • 在PX4文件夾內(nèi)用mavros連接到本地ros,運(yùn)行以下命令打開gazebo仿真環(huán)境

    • roslaunch px4 mavros_posix_sitl.launch
      

    編寫外部程序包

    首先需要在ROS工作空間下,在src目錄下新建功能包

    cd ~/catkin_ws/src
    catkin_create_pkg offboard roscpp mavros geometry_msgs
    //catkin_create_pkg 是ROS命令,新建一個(gè)功能包
    //offboard 功能包名字
    //roscpp mavros geometry_msgs功能包依賴
    //命令格式catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
    

    在offboard功能包src目錄下新建cpp文件,將外部程序控制文件寫入保存

    • 新建cpp文件

    • touch offboard_node.cpp 
      

      px4 仿真 高,無人機(jī)

    • 將以下程序?qū)懭氲絚pp文件,此程序參考的是PX4官網(wǎng)給出的例程。

    • /**
       * @file offb_node.cpp
       * @brief Offboard control example node, written with MAVROS version 0.19.x, PX4 Pro Flight
       * Stack and tested in Gazebo SITL
       */
      
      #include <ros/ros.h>
      #include <geometry_msgs/PoseStamped.h>
      #include <mavros_msgs/CommandBool.h>
      #include <mavros_msgs/SetMode.h>
      #include <mavros_msgs/State.h>
      
      mavros_msgs::State current_state;
      void state_cb(const mavros_msgs::State::ConstPtr& msg){
          current_state = *msg;
      }
      
      int main(int argc, char **argv)
      {
          ros::init(argc, argv, "offb_node");
          ros::NodeHandle nh;
      
          //訂閱mavros狀態(tài)
          ros::Subscriber state_sub = nh.subscribe<mavros_msgs::State>
                  ("mavros/state", 10, state_cb);
          //發(fā)布無人機(jī)位姿信息
          ros::Publisher local_pos_pub = nh.advertise<geometry_msgs::PoseStamped>
                  ("mavros/setpoint_position/local", 10);
          //定義起飛服務(wù)客戶端(起飛,降落)
          ros::ServiceClient arming_client = nh.serviceClient<mavros_msgs::CommandBool>
                  ("mavros/cmd/arming");
          //定義設(shè)置模式服務(wù)客戶端(設(shè)置offboard模式)
          ros::ServiceClient set_mode_client = nh.serviceClient<mavros_msgs::SetMode>
                  ("mavros/set_mode");
      
          //the setpoint publishing rate MUST be faster than 2Hz
          ros::Rate rate(20.0);
      
          // wait for FCU connection
          while(ros::ok() && !current_state.connected){
              ros::spinOnce();
              rate.sleep();
          }
      
          geometry_msgs::PoseStamped pose;
          pose.pose.position.x = 0;
          pose.pose.position.y = 0;
          pose.pose.position.z = 10;
      
          //send a few setpoints before starting
          for(int i = 100; ros::ok() && i > 0; --i){
              local_pos_pub.publish(pose);
              ros::spinOnce();
              rate.sleep();
          }
      
          mavros_msgs::SetMode offb_set_mode;
          offb_set_mode.request.custom_mode = "OFFBOARD";
      
          mavros_msgs::CommandBool arm_cmd;
          arm_cmd.request.value = true;
      
          ros::Time last_request = ros::Time::now();
      
          while(ros::ok()){
              if( current_state.mode != "OFFBOARD" &&
                  (ros::Time::now() - last_request > ros::Duration(5.0))){
                  if( set_mode_client.call(offb_set_mode) &&
                      offb_set_mode.response.mode_sent){
                      ROS_INFO("Offboard enabled");
                  }
                  last_request = ros::Time::now();
              } else {
                  if( !current_state.armed &&
                      (ros::Time::now() - last_request > ros::Duration(5.0))){
                      if( arming_client.call(arm_cmd) &&
                          arm_cmd.response.success){
                          ROS_INFO("Vehicle armed");
                      }
                      last_request = ros::Time::now();
                  }
              }
      
              local_pos_pub.publish(pose);
      
              ros::spinOnce();
              rate.sleep();
          }
      
          return 0;
      }
      
      
    • 在offboard目錄下找到Cmakelists.txt文件,并設(shè)置程序運(yùn)行節(jié)點(diǎn),不然rosrun命令無法找到該節(jié)點(diǎn),從而報(bào)錯(cuò)

    • px4 仿真 高,無人機(jī)

    • 輸入以下除藍(lán)色字體的命令px4 仿真 高,無人機(jī) - 編輯好后即可進(jìn)行編譯

編譯

  • 進(jìn)入到catkin_ws目錄下,運(yùn)行終端

  • cd /catkin_ws
    catkin_make
    
    

px4 仿真 高,無人機(jī)

  • 如上圖顯示編譯成功

  • 運(yùn)行程序包

  • rosrun offboard offboard_node
    
    

    px4 仿真 高,無人機(jī)

  • 無人機(jī)實(shí)現(xiàn)自動(dòng)起飛10米高,程序運(yùn)行成功。文章來源地址http://www.zghlxwxcb.cn/news/detail-770229.html

小結(jié)

  • 之所以要記錄本次的過程,是因?yàn)樽约簩?duì)ROS工作模式的進(jìn)一步了解,當(dāng)然,實(shí)驗(yàn)這篇前需要去了解一下ROS語法,這里推薦古月居博主,可以在B站和csdn上都可以搜到。
  • 踩坑總結(jié):
    • 在已經(jīng) 建立工作空間的情況下,如果需要新建程序包,不要在工作空間目錄(catkin_ws)下新建,而是要了解ros環(huán)境后在src目錄下使用命令新建程序包,不然編譯就會(huì)出錯(cuò)
    • 運(yùn)行程序包的命令,不需要添加文件后綴名
    • 之所以會(huì)產(chǎn)生各種錯(cuò)誤,是基于自己并不了解ros的工作模式和原理,實(shí)際上,只要自己有了經(jīng)驗(yàn),有了教訓(xùn),下一次的建立會(huì)相比較第一次都會(huì)順手很多。
    • 錯(cuò)誤的不斷產(chǎn)生讓我一度以為自己的ros環(huán)境產(chǎn)生了懷疑,認(rèn)為自己的環(huán)境搭建出錯(cuò),但一切的根源就是自己的工作路徑添加錯(cuò)誤,對(duì)系統(tǒng)產(chǎn)生的錯(cuò)誤需要自己一點(diǎn)點(diǎn)去啃。
    • 因?yàn)镽OS系統(tǒng)產(chǎn)生錯(cuò)誤顯示的是英文,對(duì)于一些不常見的錯(cuò)誤,可以利用有道詞典的劃詞功能,對(duì)錯(cuò)誤進(jìn)行翻譯,只有自己真正了解到這個(gè)錯(cuò)誤,最終才能夠有根據(jù)的去尋求答案。
  • 最后送句話給自己吧。“海壓竹枝低復(fù)舉,風(fēng)吹山角晦還明”

到了這里,關(guān)于無人機(jī)仿真—PX4編譯,gazebo仿真及簡單off board控制模式下無人機(jī)起飛的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【PX4&Simulink&Gazebo聯(lián)合仿真】在Simulink中使用ROS2控制無人機(jī)進(jìn)入Offboard模式起飛懸停并在Gazebo中可視化

    【PX4&Simulink&Gazebo聯(lián)合仿真】在Simulink中使用ROS2控制無人機(jī)進(jìn)入Offboard模式起飛懸停并在Gazebo中可視化

    本篇文章介紹如何使用ROS2控制無人機(jī)進(jìn)入Offboard模式起飛懸停并在Gazebo中可視化,提供了Matlab/Simulink源代碼,以及演示效果圖。 環(huán)境: MATLAB : R2022b Ubuntu :20.04 LTS Windows :Windows 10 ROS :ROS2 Foxy Python: 3.8.2 Visual Studio :Visual Studio 2019 PX4 :1.13.0 ROS2的應(yīng)用程序管道非常簡單,這要

    2024年02月22日
    瀏覽(99)
  • 【PX4&Simulink&Gazebo聯(lián)合仿真】在Simulink中使用ROS2控制無人機(jī)沿自定義圓形軌跡飛行并在Gazebo中可視化

    【PX4&Simulink&Gazebo聯(lián)合仿真】在Simulink中使用ROS2控制無人機(jī)沿自定義圓形軌跡飛行并在Gazebo中可視化

    本篇文章介紹如何使用ROS2控制無人機(jī)沿自定義圓形軌跡飛行并在Gazebo中可視化,提供了Matlab/Simulink源代碼,以及演示效果圖。 環(huán)境: MATLAB : R2022b Ubuntu :20.04 LTS Windows :Windows 10 ROS :ROS2 Foxy Python: 3.8.2 Visual Studio :Visual Studio 2019 PX4 :1.13.0 ROS2的應(yīng)用程序管道非常簡單,這要

    2024年02月22日
    瀏覽(96)
  • 【PX4-AutoPilot教程-TIPS】PX4控制無人機(jī)在Gazebo中飛行時(shí)由于視角跟隨無人機(jī)在畫面中心導(dǎo)致視角亂晃的解決方法

    【PX4-AutoPilot教程-TIPS】PX4控制無人機(jī)在Gazebo中飛行時(shí)由于視角跟隨無人機(jī)在畫面中心導(dǎo)致視角亂晃的解決方法

    無人機(jī)在Gazebo中飛行時(shí),無人機(jī)始終處于畫面中央,會(huì)帶著視角亂晃,在Gazebo中進(jìn)行任何操作視角都無法固定。 觀察Gazebo左側(cè)World欄GUI選項(xiàng),發(fā)現(xiàn)有一個(gè)track_visual項(xiàng),這個(gè)是Gazebo中的跟隨視角,跟蹤目標(biāo)是無人機(jī)iris,但是手動(dòng)點(diǎn)擊無法取消,設(shè)置Gazebo使用FOLLOW選項(xiàng)跟隨其他目

    2024年02月22日
    瀏覽(79)
  • Ubuntu PX4無人機(jī)仿真環(huán)境配置

    Ubuntu PX4無人機(jī)仿真環(huán)境配置

    ?目錄 一、VM虛擬機(jī)安裝ubuntu18.04 ? 1、VMware安裝 ? 2、新建虛擬機(jī) 二、Ubuntu系統(tǒng)配置 ? 1、更改軟件安裝源 ? 2、安裝中文輸入法 三、PX4環(huán)境搭建 ? 1、安裝git ? 2、下載px4源碼 ? 3、安裝ROS ? 4、安裝MAVROS ? 5、安裝QGC ? 6、仿真測試 四、其他工具安裝 ? 1、VScode安裝 ?????

    2024年02月02日
    瀏覽(1048)
  • ubuntu搭建PX4無人機(jī)仿真環(huán)境(4) —— 仿真環(huán)境搭建

    ubuntu搭建PX4無人機(jī)仿真環(huán)境(4) —— 仿真環(huán)境搭建

    前言 在搭建之前,需要把 ROS、MAVROS、QGC 等基礎(chǔ)環(huán)境安裝配置完成。大家可以參考我之前的教程 本次安裝是以 px4 v1.13.2 為例。 我的配置如下: 虛擬機(jī) Ubuntu 18.04 (運(yùn)行內(nèi)存 4G、硬盤內(nèi)存 80G) 、ROS melodic 、最新版 QGC 建議安裝之前可以先看看這個(gè) ?? ubuntu搭建PX4無人機(jī)仿真環(huán)境

    2024年02月15日
    瀏覽(96)
  • (最新)ubuntu搭建PX4無人機(jī)仿真環(huán)境(4) —— 仿真環(huán)境搭建

    (最新)ubuntu搭建PX4無人機(jī)仿真環(huán)境(4) —— 仿真環(huán)境搭建

    前言 在搭建之前,需要把 ROS、MAVROS、QGC 等基礎(chǔ)環(huán)境安裝配置完成。大家可以參考我之前的教程 本次安裝是以 px4 v1.13.2 為例。 我的配置如下: 虛擬機(jī) Ubuntu 18.04 (運(yùn)行內(nèi)存 4G、硬盤內(nèi)存 80G) 、ROS melodic 、最新版 QGC 建議安裝之前可以先看看這個(gè) ?? ubuntu搭建PX4無人機(jī)仿真環(huán)境

    2024年02月09日
    瀏覽(90)
  • (最新)ubuntu搭建PX4無人機(jī)仿真環(huán)境(2) —— MAVROS安裝

    (最新)ubuntu搭建PX4無人機(jī)仿真環(huán)境(2) —— MAVROS安裝

    MAVROS是一個(gè)ROS(Robot Operating System)軟件包 , 有了它就可以讓ROS與飛控通信。這次安裝是以u(píng)buntu 18.04 (ROS Melodic)為例,也適用于其他版本 。安裝之前確保 ROS 安裝成功,沒安裝的可以看我仿真系列教程。 (注:安裝方式有二進(jìn)制安裝和源碼安裝兩種方式,源碼安裝需要從Git

    2024年02月09日
    瀏覽(114)
  • ROS-基于PX4的無人機(jī)SLAM建圖(Cartographer)仿真

    ROS-基于PX4的無人機(jī)SLAM建圖(Cartographer)仿真

    首先在電腦上安裝好Ubuntu系統(tǒng)和ROS系統(tǒng),我安裝的是Ubuntu18.04和ROS Melodic,不同的Ubuntu版本對(duì)應(yīng)不同的ROS版本 ROS發(fā)布日期 ROS版本 停止支持日期 對(duì)應(yīng)Ubuntu版本 2018年5月23日 ROS Melodic Morenia 2023年5月 Ubuntu 18.04 2016年5月23日 ROS Kinetic Kame 2021年4月 Ubuntu 16.04 (Xenial) Ubuntu 15.10 (Wily) 201

    2024年02月15日
    瀏覽(85)
  • 帶你玩轉(zhuǎn)PX4無人機(jī)仿真(3) —— 運(yùn)行官方案例(RC版)

    帶你玩轉(zhuǎn)PX4無人機(jī)仿真(3) —— 運(yùn)行官方案例(RC版)

    前言: 本次教程是官方提供的 MAVROS Offboard (板外) 控制示例,但加上了 外部遙控器(RC)控制 (如果想要在真機(jī)上實(shí)現(xiàn),還要修改代碼) 注:搭建仿真環(huán)境可以看下面教程 ?? (最新)ubuntu搭建PX4無人機(jī)仿真環(huán)境(1) —— 概念介紹及環(huán)境建議 (最新)ubuntu搭建PX4無人機(jī)仿真環(huán)境(2) —

    2024年02月19日
    瀏覽(92)
  • (最新)ubuntu搭建PX4無人機(jī)仿真環(huán)境(1) —— 概念介紹及環(huán)境建議

    搭建PX4仿真環(huán)境一個(gè)有挑戰(zhàn)性的過程,如果沒有一個(gè)有經(jīng)驗(yàn)的人來帶的話會(huì)走很多彎路。我在搭建PX4仿真環(huán)境的時(shí)候,不知道Linux、ROS、git,語言也只會(huì)一個(gè)C語言,沒有任何無人機(jī)基礎(chǔ),純小白一個(gè),靠著自學(xué)與網(wǎng)上的各種教程,花了一兩個(gè)月才搭好基本的仿真環(huán)境框架。我

    2024年02月08日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包