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

在gazebo仿真環(huán)境中加載多個機器人

這篇具有很好參考價值的文章主要介紹了在gazebo仿真環(huán)境中加載多個機器人。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

單個機器人的各項仿真實驗都基本完成,也實現(xiàn)了遠程控制,接下來主要對多機器人編隊進行仿真實驗,在進行多機器人編隊控制前,先要在gazebo仿真中加載多個機器人。


一、基本概念

在gazebo中添加多個機器人需要寫或修改launch文件,通過在網(wǎng)上翻看別人的代碼,大致明白了調用gazebo仿真launch文件中各部分代碼的意思。下面是一些最最基本的概念,在修改launch前稍微了解一下。

1、xacro

類似于函數(shù)實現(xiàn),提高代碼復用率,優(yōu)化代碼結構,提高安全性
(1)宏定義

<xacro:macro name="宏名稱" params="參數(shù)列表(多參數(shù)之前使用空格分隔)">
....
  參數(shù)調用格式:${參數(shù)名}
</xacro:macro>

(2)宏調用

<xacro:宏名稱 參數(shù)1=xxx 參數(shù)2=xxx/>

(3)文件包含
機器人由多部件組成,不同部件可能封裝為單獨的xacro文件,最后再將不同的文件集成,組合為完整機器人,可以使用文件包含實現(xiàn)。

<robot name="xxx" xmls:xacro="http://wiki.ros.org/xacro">
      <xacro:include filename="my_base.xacro">
      <xacro:include filename="my_camera.xacro">
      <xacro:include filename="my_laser.xacro">
      ....
</robot>

在launch文件中直接加載xacro的方法

command="$(find xacro)/xacro $(find 文件名)/urdf/.urdf.xacro(文件名)"

2、Gazebo 加載單個機器人模型

<launch>
 
 		<!-- 將Urdf文件的內容加載到參數(shù)服務器-->
 		<param name="robot_description"textfile=“$(find文件夾名)/urdf/.urdf文件“>

		<!--啟動gazebo-->
		<include file="$(find gazebo_ros)/launch/empty_world.launch"/>

		<!--在gazebo中顯示機器人模型-->
		<node pkg="gazebo_ros"type="spawn_model"name="model"args="-urdf-model mycar-param robot_description"/>
		</launch>

二、原先launch文件代碼

在大致看了上述的說明后就能看懂,在gazebo仿真環(huán)境中加載一個機器人的launch文件了。
gazebo仿真可以多個機器人嗎,ROS學習系列,機器人,ROS,人工智能,多機器人編隊
復制粘貼如下:根據(jù)上面的基本概念可以大概的明白代碼所描述的內容。
(如我在圖中添加的注釋)

<launch>
<!--在所提供的burger, waffle, waffle_pi三種機器人呢模型中選擇要加載的類型-->
  <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/> 

<!--設置機器人的x,y,z坐標,相當于宏定義方面下面使用和后面的修改-->
  <arg name="x_pos" default="-2.0"/>
  <arg name="y_pos" default="-0.5"/>
  <arg name="z_pos" default="0.0"/>

 <!-- 運行gazebo仿真環(huán)境 -->
  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/turtlebot3_world.world"/>
    <arg name="paused" value="false"/>
    <arg name="use_sim_time" value="true"/>
    <arg name="gui" value="true"/>
    <arg name="headless" value="false"/>
    <arg name="debug" value="false"/>
  </include>

<!--在launch文件中直接加載機器人xacro模型描述文件-->
  <param name="robot_description" command="$(find xacro)/xacro --inorder $(find turtlebot3_description)/urdf/turtlebot3_$(arg model).urdf.xacro" />

<!--在gazeb中顯示機器人模型,并設置初始的坐標位置-->
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model turtlebot3_$(arg model) -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -param robot_description" />

</launch>

gazebo啟動結果如下:

gazebo仿真可以多個機器人嗎,ROS學習系列,機器人,ROS,人工智能,多機器人編隊

三、 修改launch文件加載多個機器人

在理解了launch調用和加載的各項指令后,接下來實現(xiàn)在gazebo中加載多個機器人,相比于單機器人,多機器人仿真需要在原基礎上加入標簽,做到用同樣的descripion配置文件加載多個獨立的機器人。

具有ns屬性,可以將節(jié)點組推送到單獨的命名空間中。在前面的基礎上,我通過指令touch + test(文件名).launch創(chuàng)建了新的test.launch文件在launch文件中改寫成以下內容:
gazebo仿真可以多個機器人嗎,ROS學習系列,機器人,ROS,人工智能,多機器人編隊

<launch>
<!--首先我將原先選擇機器人模型,全部設置為了waffle機器人模型-->
  <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type turtlebot3_waffle"/>

<!--因為需要給每個機器人設置初始位置,我將原先的宏定義刪除,選擇直接在加載的時候定義機器人的初始位置-->

  <!-- 運行gazebo仿真環(huán)境 --> <!-- 沒有變化 -->
  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/turtlebot3_world.world"/>
    <arg name="paused" value="false"/>
    <arg name="use_sim_time" value="true"/>
    <arg name="gui" value="true"/>
    <arg name="headless" value="false"/>
    <arg name="debug" value="false"/>
  </include>

 <!-- 加載多個機器人時需要加入<group>標簽 -->
 <!-- 注意每個機器人都要有一個命名空間,且名字不同-->
 <!--.urdf.xacro后要聲明且在下面顯示模型后面也要跟上命名空間的名字 -->
<group ns="1">
  <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find turtlebot3_description)/urdf/turtlebot3_waffle.urdf.xacro' ns:=1" />
   <!---param robot_description后可以指定機器人的初始位置,類似于默認參數(shù),如果不傳入數(shù)據(jù)默認機器人的初始位置是(0,0,0),傳入實參后會改變初始位置 -->
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model 1 -param robot_description -x -2.0" />
</group>

<group ns="2">
  <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find turtlebot3_description)/urdf/turtlebot3_waffle.urdf.xacro' ns:=2" />
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model 2 -param robot_description -x -1.5" />
</group>

<group ns="3">
  <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find turtlebot3_description)/urdf/turtlebot3_waffle.urdf.xacro' ns:=3" />
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model 3 -param robot_description -x -2.0 -y 0.7" />
</group>

<group ns="4">
  <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find turtlebot3_description)/urdf/turtlebot3_waffle.urdf.xacro' ns:=4" />
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model 4 -param robot_description -x -1.5 -y 0.7" />
</group>

</launch>

運行test.launch文件,即可在Gazebo仿真環(huán)境中加載多個機器人模型。
gazebo仿真可以多個機器人嗎,ROS學習系列,機器人,ROS,人工智能,多機器人編隊


總結

在Gazebo仿真環(huán)境中成功加載了多個機器人模型,接下來想辦法實現(xiàn)在Gazebo中實現(xiàn)多機器人的編隊控制。文章來源地址http://www.zghlxwxcb.cn/news/detail-860311.html

到了這里,關于在gazebo仿真環(huán)境中加載多個機器人的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • Gazebo機器人仿真

    Gazebo機器人仿真

    本文基于 B站冰達機器人Gazebo教程,針對在仿真過程中出現(xiàn)的問題提出相應解決辦法。 目標 : 設計出一臺具備激光雷達、IMU和相機的機器人仿真模型用于相關實驗。 獲取實驗功能包: 克隆完成后在工作空間路徑下編譯功能包 安裝其他依賴 獲取gazebo模型庫: 自制實驗場景

    2024年02月16日
    瀏覽(16)
  • 機器人Gazebo仿真應用

    機器人Gazebo仿真應用

    ? Gazebo是一個優(yōu)秀的功能強大開源物理環(huán)境仿真平臺,具備強大的物理引擎,高質量的圖形渲染等優(yōu)異優(yōu)點,可在機器人和周圍環(huán)境加入多種物理屬性,對機器人傳感器信息通過插件形式加入仿真,并以可視化的方式進行顯示。通過終端命令“roscore”啟動ROS,重新打開一個終

    2024年02月04日
    瀏覽(19)
  • 機器人仿真-gazebo學習筆記(4)xacro和傳感器添加

    機器人仿真-gazebo學習筆記(4)xacro和傳感器添加

    URDF文件不具備代碼復用的特性(在上一篇文章也能發(fā)現(xiàn),其實左右輪是極其相似的但還是要單獨描述),一個復雜的機器人模型會擁有大量了的傳感器和關節(jié)組件,這時候使用URDF文件就太難閱讀了。精簡化、可復用、模塊化的xacro文件來了。 1.優(yōu)勢: ·精簡模型代碼: xacro是一

    2024年02月06日
    瀏覽(101)
  • 基于Gazebo搭建移動機器人,并結合SLAM系統(tǒng)完成建圖仿真

    基于Gazebo搭建移動機器人,并結合SLAM系統(tǒng)完成建圖仿真

    博客地址:https://www.cnblogs.com/zylyehuo/ gazebo小車模型創(chuàng)建及仿真詳見之前博客 gazebo小車模型(附帶仿真環(huán)境) - zylyehuo - 博客園 gazebo+rviz 仿真 - zylyehuo - 博客園 參考鏈接 Autolabor-ROS機器人入門課程《ROS理論與實踐》 安裝 gmapping 包(用于構建地圖): sudo apt install ros-melodic-gmapping 安

    2024年02月04日
    瀏覽(21)
  • (二)基于wpr_simulation 的Ros機器人運動控制,gazebo仿真

    (二)基于wpr_simulation 的Ros機器人運動控制,gazebo仿真

    一、創(chuàng)建工作空間 ???????? 二、下載wpr_simulation源碼 git clone https://github.com/6-robot/wpr_simulation.git 三、編譯 ~/catkin_make ?目錄下catkin_make source devel/setup.bash 四、運行 roslaunch wpr_simulation wpb_simple.launch 啟動另一個終端,執(zhí)行: rosrun rqt_robot_steering rqt_robot_steering 鼠標改變速度和角

    2024年01月20日
    瀏覽(101)
  • 【ROS仿真實戰(zhàn)】獲取機器人在gazebo位置真值的三種方法(三)

    【ROS仿真實戰(zhàn)】獲取機器人在gazebo位置真值的三種方法(三)

    在ROS和Gazebo中,獲取機器人的位置信息通常通過ROS消息傳遞進行。在這篇文章中,我們將介紹三種獲取機器人在Gazebo中位置真值的方法:使用ROS tf庫、使用自己編寫Gazebo Model Plugin以及l(fā)ibgazebo_ros_p3d Plugin。 ROS tf庫是ROS中用于管理坐標變換的庫,它可以通過ROS消息傳遞來管理不

    2024年02月06日
    瀏覽(39)
  • 【ROS2機器人入門到實戰(zhàn)】Gazebo仿真插件之兩輪差速

    【ROS2機器人入門到實戰(zhàn)】Gazebo仿真插件之兩輪差速

    當前平臺文章匯總地址:ROS2機器人從入門到實戰(zhàn) 獲取完整教程及配套資料代碼,請關注公眾號魚香ROS獲取 教程配套機器人開發(fā)平臺:兩驅版| 四驅版 為方便交流,搭建了機器人技術問答社區(qū):地址 fishros.org.cn 小魚又來了,完成了上節(jié)課的Gazebo加載FishBot,但是機器人還是不

    2024年02月03日
    瀏覽(46)
  • Ubuntu18.04 Turtlebot2機器人移動控制 Rviz Gazebo仿真實現(xiàn)

    Ubuntu18.04 Turtlebot2機器人移動控制 Rviz Gazebo仿真實現(xiàn)

    操作系統(tǒng)為ubuntu18.04 安裝ROS Melodic Turtlebot2,很多大佬分享了詳細的安裝過程,在這里就不多贅述,安裝遇到問題多百度,大部分都是可以解決的。 前期學習了趙虛左老師的ROS入門課程,結合Turtlebot2資料這里方便大家打開,放的創(chuàng)客制造的文檔,也推薦大家去看官方文檔 首先

    2023年04月25日
    瀏覽(33)
  • 基于Gazebo搭建移動機器人,并結合SLAM系統(tǒng)完成定位和建圖仿真

    基于Gazebo搭建移動機器人,并結合SLAM系統(tǒng)完成定位和建圖仿真

    博客地址:https://www.cnblogs.com/zylyehuo/ gazebo小車模型創(chuàng)建及仿真詳見之前博客 gazebo小車模型(附帶仿真環(huán)境) - zylyehuo - 博客園 gazebo+rviz 仿真 - zylyehuo - 博客園 參考鏈接 Autolabor-ROS機器人入門課程《ROS理論與實踐》 安裝 gmapping 包(用于構建地圖): sudo apt install ros-melodic-gmapping 安

    2024年02月04日
    瀏覽(30)
  • ROS仿真軟件Turtlebot-Gazebo的安裝使用以及錯誤處理[機器人避障]

    ROS仿真軟件Turtlebot-Gazebo的安裝使用以及錯誤處理[機器人避障]

    ????????很多時候由于機器人價格比較貴,而且會因為環(huán)境因素、操作失誤或者摔壞等,所以我們可以先在仿真軟件上做測試,也可以避免這些問題,雖然沒有那么真實感,可畢竟是免費的嘛。我們可以在這些仿真的機器人身上去學習如何控制機器人,讀取它們的傳感器數(shù)

    2024年02月08日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包