日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ROS launch文件

發(fā)布時間:2025/3/12 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ROS launch文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ROS launch文件

      • 1.arg標簽
      • 2.group標簽
      • 3.param標簽
      • 4.ns標簽

<!--指明了一個 xml 的版本><?xml version="1.0"?><launch><!-- support multi robot --><arg name="robot_name" default=""/> <!-- support multi robot --><!-- robot frame --><arg name="base_frame" default="base_footprint" /> <arg name="odom_frame" default="odom" /><arg name="imu_frame" default="imu" /> <!-- pub topic --><arg name="odom_topic" default="odom" /><!-- do NOT use '/' in topic name--><arg name="imu_topic" default="imu" /><arg name="battery_topic" default="battery" /><!-- sub topic --><arg name="cmd_vel_topic" default="cmd_vel" /> <!-- do NOT use '/' in topic name--><arg name="ackermann_cmd_topic" default="ackermann_cmd" /><!-- config param --><arg name="pub_imu" default="False" /><arg name="sub_ackermann" default="False" /><arg name="pub_sonar" default="False" /><!-- base control node --><!--ros namespace name can NOT be empty,so need evaluate use multi robot or not--><group if="$(eval robot_name == '')"><node name="base_control" pkg="base_control" type="base_control.py" output="screen"><param name="baudrate" value="115200"/> <param name="port" value='/dev/move_base'/><param name="base_id" value="$(arg base_frame)"/> <!-- base_link name --><param name="odom_id" value="$(arg odom_frame)"/> <!-- odom link name --><param name="imu_id" value="$(arg imu_frame)"/> <!-- imu link name --><param name="sub_ackermann" value="$(arg sub_ackermann)"/> <!-- sub ackermann topic or not --></node></group>--><group unless="$(eval robot_name == '')"><group ns="$(arg robot_name)"><node name="base_control" pkg="base_control" type="base_control.py" output="screen"><param name="baudrate" value="115200"/> <param name="port" value='/dev/move_base'/><param name="base_id" value="$(arg robot_name)/$(arg base_frame)"/> <!-- base_link name --><param name="odom_id" value="$(arg robot_name)/$(arg odom_frame)"/> <!-- odom link name --><param name="imu_id" value="$(arg robot_name)/$(arg imu_frame)"/> <!-- imu link name --><param name="sub_ackermann" value="$(arg sub_ackermann)"/> <!-- sub ackermann topic or not --></node></group></group></launch>

1.arg標簽

這里面arg標簽用來在 launch 文件中聲明參數(shù)。

default的內容則是對參數(shù)賦值。如無參數(shù)傳入則使用 launch 文件中定義的值。

也可在啟動launch文件時傳入參數(shù)的值。

傳入 pub_imu 的值為 true roslaunch base_control base_control.launch pub_imu:=ture

2.group標簽

group標簽會將group里的內容劃分成一個組。

里面用到了一個if unless語句,如下。意思是如果robot_name為空,執(zhí)行第一個group的內容;否則執(zhí)行第二個。

<group if="$(eval robot_name == '')"><group unless="$(eval robot_name == '')">

下面這個代碼:節(jié)點的名稱name、該節(jié)點所在的包名pkg,節(jié)點的可執(zhí)行文件type、輸出方式output,“screen”表示輸出在當前終端屏幕。

<node name="base_control" pkg="base_control" type="base_control.py" output="screen">

3.param標簽

下面這個代碼:param標簽也是用來聲明參數(shù)。

param聲明的變量是節(jié)點所接收的,用來設置傳入節(jié)點的參數(shù),arg的參數(shù)是launch文件所接收的。

參數(shù)的值是通過value直接傳入的。

可以傳入固定值,如下。

<param name="baudrate" value="115200"/>

可以傳入參數(shù),如下。下面這個value值是arg標簽聲明的參數(shù)base_frame

<param name="base_id" value="$(arg base_frame)"/> <!-- base_link name --> <param name="odom_id" value="$(arg odom_frame)"/> <!-- odom link name -->

4.ns標簽

第二個group里面還有group標簽,對應ns。

<group unless="$(eval robot_name == '')"><group ns="$(arg robot_name)">

以imu_id話題為例,傳入robot_name為abc,查看話題列表顯示的就是abc/imu_id,這樣可防止話題名重名。

下面是之前寫的一個例子https://blog.csdn.net/qq_40828914/article/details/120977892

<group ns="turtlesim1"><node pkg="turtlesim" name="sim" type="turtlesim_node"/></group><group ns="turtlesim2"><node pkg="turtlesim" name="sim" type="turtlesim_node"/></group>

此處我們創(chuàng)建了兩個分組,并以命名空間(namespace)標簽來區(qū)分,其中一個名為turtulesim1,另一個名為turtlesim2,兩個分組中都有相同的名為sim的turtlesim節(jié)點。這樣可以讓我們同時啟動兩個turtlesim模擬器,而不會產生命名沖突。

總結

以上是生活随笔為你收集整理的ROS launch文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。