<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<link rel="canonical" href="https://blog.csdn.net/fengmengdan/article/details/42984429"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="referrer" content="always">
<meta name="description" content="Launch 文件
1 使用Launch文件
2 創建Launch文件
3 在namespace中啓動nodes
4 remapping names
5 其他的launch元素
1 使用launch文件
Launch文件是ROS提供的,可以同時運行多個nodes的文件。Launch文件以一種特殊的XML格式編寫,在ROS packages中使用廣泛。
1." />
<meta name="keywords" content="" />
<meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
<meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
<link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON">
<title>ROS launch整理 - CSDN博客</title>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/detail-95d26ed23f.min.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/themes/big-white/big-white-02ffddfbf5.min.css">
<script type="text/javascript">
var username = "fengmengdan";
var blog_address = "https://blog.csdn.net/fengmengdan";
var static_host = "https://csdnimg.cn/release/phoenix/";
var currentUserName = "lelelemenglele";
var isShowAds = true;
var isOwner = false;
var loginUrl = "https://passport.csdn.net/account/login?from=https://blog.csdn.net/fengmengdan/article/details/42984429"
var blogUrl = "https://blog.csdn.net/";
var curSkin = "big-white";
</script>
<script type="text/javascript">
// Traffic Stats of the entire Web site By baidu
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6bcd52f51e9b3dce32bec4a3997715ac";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
// Traffic Stats of the entire Web site By baidu end
</script>
<script src="https://csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="https://csdnimg.cn/rabbit/exposure-click/main-1.0.5.js"></script>
<script type="text/javascript" src="https://csdnimg.cn/pubfooter/js/tracking-1.0.2.js" charset="utf-8"></script>
<link rel="stylesheet" href="https://csdnimg.cn/public/sandalstrap/1.2/css/sandalstrap.min.css">
<style>
.MathJax, .MathJax_Message, .MathJax_Preview{
display: none
}
</style>
</head>
<body>
<link rel="stylesheet" href="https://csdnimg.cn/public/common/toolbar/content_toolbar_css/content_toolbar.css">
<script id="toolbar-tpl-scriptId" src="https://csdnimg.cn/public/common/toolbar/js/content_toolbar.js" type="text/javascript" domain="https://blog.csdn.net/"></script>
<script src="https://csdnimg.cn/public/sandalstrap/1.2/fonts/csdnc/csdnc.js"></script><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/blog_code-c3a0c33d5c.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/vendor/pagination/paging.css">
<script>
var recommendCount = 10;
recommendCount = recommendCount > 1 ? recommendCount+1 : recommendCount;
var articleTit = 'ROS launch整理';
var ChannelId = 0;
var articleId = '42984429';
var commentscount = 2;
var islock = false;
var curentUrl = "https://blog.csdn.net/fengmengdan/article/details/42984429";
var myUrl = "https://my.csdn.net/";
//1禁止評論,2正常
var commentAuth = 2;
//百度搜索
var baiduKey = "ros+launch+find";
var needInsertBaidu = false;;
</script>
<header>
<div class="container d-flex clearfix">
<div class="title-box">
<h6 class="title-blog">
<a href="https://blog.csdn.net/fengmengdan">fengmengdan的專欄</a>
</h6>
<p class="description"></p>
</div>
<div class="opt-box d-flex justify-content-end">
<a class="btn btn-sm" href="https://blog.csdn.net/fengmengdan/rss/list">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-rss"></use>
</svg>RSS訂閱</a>
</div>
</div>
</header><script src="https://dup.baidustatic.com/js/ds.js"></script>
<div class="container clearfix pt0" id="mainBox">
<aside>
<div id="asideProfile" class="aside-box">
<h3 class="aside-title">個人資料</h3>
<div class="profile-intro d-flex">
<div class="avatar-box d-flex justify-content-center flex-column">
<a href="https://blog.csdn.net/fengmengdan">
<img src="https://avatar.csdn.net/6/A/4/3_fengmengdan.jpg" class="avatar_pic">
</a>
</div>
<div class="user-info d-flex justify-content-center flex-column">
<p class="name csdn-tracking-statistics tracking-click" data-mod="popu_379">
<a href="https://blog.csdn.net/fengmengdan" target="_blank" class="text-truncate" id="uid">fengmengdan</a>
</p>
</div>
<div class="opt-box d-flex justify-content-center flex-column">
<span class="csdn-tracking-statistics tracking-click" data-mod="popu_379">
<a class="btn btn-sm btn-red-hollow" id="btnAttent">關注</a>
</span>
</div>
</div>
<div class="data-info d-flex item-tiling">
<dl class="text-center" title="7">
<dt>原創</dt>
<dd><span class="count">7</span></dd>
</dl>
<dl class="text-center" title="23">
<dt>粉絲</dt>
<dd id='fan'><span class="count">23</span></dd>
</dl>
<dl class="text-center" title="6">
<dt>喜歡</dt>
<dd><span class="count">6</span></dd>
</dl>
<dl class="text-center" title="27">
<dt>評論</dt>
<dd><span class="count">27</span></dd>
</dl>
</div>
<div class="grade-box clearfix">
<dl>
<dt>等級:</dt>
<dd>
<a href="https://blog.csdn.net/home/help.html#level" title="2級,點擊查看等級說明" target="_blank">
<svg class="icon icon-level" aria-hidden="true">
<use xlink:href="#csdnc-bloglevel-2"></use>
</svg>
</a>
</dd>
</dl>
<dl>
<dt>訪問:</dt>
<dd title="32058">
3萬+ </dd>
</dl>
<dl>
<dt>積分:</dt>
<dd title="406">
406 </dd>
</dl>
<dl title="121672">
<dt>排名:</dt>
<dd>12萬+</dd>
</dl>
</div>
<div class="badge-box d-flex">
<span>勳章:</span>
<a class="icon-badge" title="持之以恆">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-m-lasting"></use>
</svg>
<div class="icon-arrow"></div>
<div class="grade-detail-box item2">
<div class="pos-box">
<div class="left-box d-flex justify-content-center align-items-center flex-column">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-m-lasting"></use>
</svg>
<p>持之以恆</p>
</div>
<div class="right-box d-flex justify-content-center align-items-center">
授予每個自然月內發佈4篇或4篇以上原創或翻譯IT博文的用戶。不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
</div>
</div>
</div>
</a>
</div>
</div> <div class="csdn-tracking-statistics mb8 box-shadow" data-pid="blog" data-mod="popu_4" style="height:250px;">
<div class="aside-content text-center" id="cpro_u2734133">
<!-- 投放代碼 -->
<script type="text/javascript" src="//cee1.iteye.com/lgyyovfyh.js"></script>
</div>
</div>
<div id="asideNewArticle" class="aside-box">
<h3 class="aside-title">最新文章</h3>
<div class="aside-content">
<ul class="inf_list clearfix csdn-tracking-statistics tracking-click" data-mod="popu_382">
<li class="clearfix">
<a href="https://blog.csdn.net/fengmengdan/article/details/50465761" target="_blank">caffe訓練siamese network</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/fengmengdan/article/details/50185265" target="_blank">epoch和iteration的區別</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/fengmengdan/article/details/50179385" target="_blank">Caffe 跑自己的數據和訓練</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/fengmengdan/article/details/42460965" target="_blank">(四)理解ROS topics</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/fengmengdan/article/details/42388941" target="_blank">(三)理解ROS Nodes(節點)</a>
</li>
</ul>
</div>
</div>
<div id="asideCategory" class="aside-box">
<h3 class="aside-title">個人分類</h3>
<div class="aside-content">
<ul>
<li>
<a href="https://blog.csdn.net/fengmengdan/article/category/6004263">
深度學習 <span class="count float-right">2篇</span>
</a>
</li>
<li>
<a href="https://blog.csdn.net/fengmengdan/article/category/6004443">
Caffe <span class="count float-right">2篇</span>
</a>
</li>
</ul>
</div>
</div>
<div id="asideArchive" class="aside-box">
<h3 class="aside-title">歸檔</h3>
<div class="aside-content">
<ul class="archive-list">
<!--歸檔統計-->
<li>
<a href="https://blog.csdn.net/fengmengdan/article/month/2016/01">
2016年1月 <span class="count float-right">2篇</span>
</a>
</li>
<!--歸檔統計-->
<li>
<a href="https://blog.csdn.net/fengmengdan/article/month/2015/12">
2015年12月 <span class="count float-right">1篇</span>
</a>
</li>
<!--歸檔統計-->
<li>
<a href="https://blog.csdn.net/fengmengdan/article/month/2015/01">
2015年1月 <span class="count float-right">6篇</span>
</a>
</li>
</ul>
</div>
</div>
<div id="asideHotArticle" class="aside-box">
<h3 class="aside-title">熱門文章</h3>
<div class="aside-content">
<ul class="hotArticle-list csdn-tracking-statistics tracking-click" data-mod="popu_521">
<li>
<a href="https://blog.csdn.net/fengmengdan/article/details/42984429">ROS launch整理</a>
<p class="read">閱讀量:<span>9195</span></p>
</li>
<li>
<a href="https://blog.csdn.net/fengmengdan/article/details/50179385">Caffe 跑自己的數據和訓練</a>
<p class="read">閱讀量:<span>8514</span></p>
</li>
<li>
<a href="https://blog.csdn.net/fengmengdan/article/details/50465761">caffe訓練siamese network</a>
<p class="read">閱讀量:<span>6982</span></p>
</li>
<li>
<a href="https://blog.csdn.net/fengmengdan/article/details/50185265">epoch和iteration的區別</a>
<p class="read">閱讀量:<span>2496</span></p>
</li>
<li>
<a href="https://blog.csdn.net/fengmengdan/article/details/42388941">(三)理解ROS Nodes(節點)</a>
<p class="read">閱讀量:<span>1936</span></p>
</li>
</ul>
</div>
</div>
<div id="asideNewComments" class="aside-box">
<h3 class="aside-title">最新評論</h3>
<div class="aside-content">
<ul class="newcomment-list">
<li>
<a class="title text-truncate" target="_blank" href="https://blog.csdn.net/fengmengdan/article/details/50465761#comments">caffe訓練siamese ne...</a>
<p class="comment">
<a href="https://my.csdn.net/qq_29043783" class="user-name" target="_blank">qq_29043783</a>:[reply]qingzhiqumoshi[/reply]
請問這個問題您解決了嗎 </p>
</li>
<li>
<a class="title text-truncate" target="_blank" href="https://blog.csdn.net/fengmengdan/article/details/42984429#comments">ROS launch整理</a>
<p class="comment">
<a href="https://my.csdn.net/cookie909" class="user-name" target="_blank">cookie909</a>:厲害厲害,解析就是要這種,一看就懂,自己總結,而不僅僅是官網翻譯,超讚 </p>
</li>
<li>
<a class="title text-truncate" target="_blank" href="https://blog.csdn.net/fengmengdan/article/details/42984429#comments">ROS launch整理</a>
<p class="comment">
<a href="https://my.csdn.net/wojiushiwo552" class="user-name" target="_blank">wojiushiwo552</a>:這是我見過的最詳細介紹launch文件的博客,謝謝博主!!! </p>
</li>
<li>
<a class="title text-truncate" target="_blank" href="https://blog.csdn.net/fengmengdan/article/details/50465761#comments">caffe訓練siamese ne...</a>
<p class="comment">
<a href="https://my.csdn.net/qq_34717531" class="user-name" target="_blank">qq_34717531</a>:用自己的圖片mnist_siamese_train_leveldb和mnist_siamese_t... </p>
</li>
<li>
<a class="title text-truncate" target="_blank" href="https://blog.csdn.net/fengmengdan/article/details/50465761#comments">caffe訓練siamese ne...</a>
<p class="comment">
<a href="https://my.csdn.net/qingzhiqumoshi" class="user-name" target="_blank">qingzhiqumoshi</a>:您好,我想問一下在train.txt中每一行是兩張圖片的路徑,那標記放在哪裏,是緊隨其後還是單有一... </p>
</li>
</ul>
</div>
</div>
<div id="asideFooter">
<div class="aside-box">
<script type="text/javascript" src="//cee1.iteye.com/avneunkwb.js"></script>
</div>
<div class="aside-box">
<div class="persion_article">
</div>
</div>
</div>
</aside>
<script src="https://csdnimg.cn/pubfooter/js/publib_footer-1.0.3.js?20180309" data-isfootertrack="false" type="text/javascript"></script>
<script>
$("a.flexible-btn").click(function(){
$(this).parents('div.aside-box').removeClass('flexible-box');
$(this).remove();
})
</script>
<main>
<div class="blog-content-box">
<div class="article-title-box">
<span class="article-type type-1 float-left">原</span> <h6 class="title-article">ROS launch整理</h6>
</div>
<div class="article-info-box">
<div class="article-bar-top d-flex">
<span class="time">2015年01月21日 22:37:49</span>
<div class="float-right">
<span class="read-count">閱讀數:9209</span>
</div>
</div>
</div>
<article>
<div id="article_content" class="article_content csdn-tracking-statistics" data-pid="blog" data-mod=popu_307 data-dsm = "post" >
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/htmledit_views-0a60691e80.css" />
<div class="htmledit_views">
<h1><strong> Launch <span style="font-family:'宋體';">文件</span></strong></h1>
<h3> 1 <span style="font-family:'宋體';">使用</span><span style="font-family:'Times New Roman';">Launch</span><span style="font-family:'宋體';">文件<br /></span> 2 <span style="font-family:'宋體';">創建</span><span style="font-family:'Times New Roman';">Launch</span><span style="font-family:'宋體';">文件<br /></span> 3 <span style="font-family:'宋體';">在</span><span style="font-family:'Times New Roman';">namespace</span><span style="font-family:'宋體';">中啓動</span><span style="font-family:'Times New Roman';">nodes<br /></span> 4 remapping <span style="font-family:'宋體';">names<br /></span> 5 <span style="font-family:'宋體';">其他的</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">元素</span></h3>
<p> </p>
<h3><span style="font-size:18px;">1 <span style="font-family:'宋體';">使用</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件</span></span></h3>
<p>Launch<span style="font-family:'宋體';">文件是</span><span style="font-family:'Times New Roman';">ROS</span><span style="font-family:'宋體';">提供的,可以同時運行多個</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">的文件。</span><span style="font-family:'Times New Roman';">Launch</span><span style="font-family:'宋體';">文件以一種特殊的</span><span style="font-family:'Times New Roman';">XML</span><span style="font-family:'宋體';">格式編寫,在</span><span style="font-family:'Times New Roman';">ROS packages</span><span style="font-family:'宋體';">中使用廣泛。</span></p>
<pre><strong><span style="font-size:14px;">1.1 <span style="font-family:'宋體';">運行</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件</span></span></strong></pre>
<pre><span style="background-color:rgb(255,255,0);">$ roslaunch package_name launch_file_name</span></pre>
<p>Eg: roslaunch turtlesim example.launch</p>
<pre><strong>(1)Tip1: rosrun<span style="font-family:'宋體';">只能運行一個</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">, </span><span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">可以同時運行多個</span><span style="font-family:'Times New Roman';">nodes.</span></strong></pre>
<p>Tip2: launch<span style="font-family:'宋體';">文件可以不被包含於</span><span style="font-family:'Times New Roman';">package</span><span style="font-family:'宋體';">中。此時,只需指出該</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件的絕對路徑,即可運行。</span></p>
<p><span style="background-color:rgb(255,255,0);">$ roslaunch completely_path</span></p>
<p>Eg<span style="font-family:'宋體';">:</span><span style="font-family:'Times New Roman';">$ roslaunch ~/opt/ros/indigo/share/turtlesim/launch/example.launch</span></p>
<p>Tip3: <span style="font-family:'宋體';">爲便於執行,每個</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">最好是相互獨立的。</span></p>
<pre><strong>(2)詳細顯示<span style="font-family:'Times New Roman';">(request verbosity)</span></strong></pre>
<p><span style="background-color:rgb(255,255,0);">$ roslaunch -v package_name launch_file_name</span></p>
<pre><strong>(3) 結束<span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件</span></strong></pre>
<p>ctrl+c</p>
<p> </p>
<p><span style="font-size:18px;"><strong>2 <span style="font-family:'宋體';">創建</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件</span></strong></span></p>
<p>(1) launch<span style="font-family:'宋體';">文件一般以</span><span style="font-family:'Times New Roman';">.launch</span><span style="font-family:'宋體';">後綴作爲文件名,放在</span><span style="font-family:'Times New Roman';">package</span><span style="font-family:'宋體';">的</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件夾下。最簡單的</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件可以僅包含幾個</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">。</span></p>
<p>(2) Launch<span style="font-family:'宋體';">文件是</span><span style="font-family:'Times New Roman';">XML</span><span style="font-family:'宋體';">文件,每個</span><span style="font-family:'Times New Roman';">XML</span><span style="font-family:'宋體';">文件必須有一個</span><span style="font-family:'Times New Roman';">root element</span><span style="font-family:'宋體';">。而</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件的</span><span style="font-family:'Times New Roman';">root element</span><span style="font-family:'宋體';">由一對</span><span style="font-family:'Times New Roman';">launch </span><span style="font-family:'宋體';">標籤定義。</span></p>
<p><launch></p>
<p>...</p>
<p></launch></p>
<p>Launch<span style="font-family:'宋體';">文件中的其他</span><span style="font-family:'Times New Roman';">elements</span><span style="font-family:'宋體';">必須都在這一對</span><span style="font-family:'Times New Roman';">tags</span><span style="font-family:'宋體';">之間。</span></p>
<p>(3) launch<span style="font-family:'宋體';">文件的核心是一系列</span><span style="font-family:'Times New Roman';">node elements</span><span style="font-family:'宋體';">,每個</span><span style="font-family:'Times New Roman';">node element</span><span style="font-family:'宋體';">啓動一個</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">。</span><span style="font-family:'Times New Roman';">Node element</span><span style="font-family:'宋體';">看起來如下:</span></p>
<p><span style="background-color:rgb(255,255,0);"><node</span></p>
<p><span style="background-color:rgb(255,255,0);"> pkg=”package_name” type=”executable_name” name=”node_name”</span></p>
<p><span style="background-color:rgb(255,255,0);">/></span></p>
<p>Tip1: <span style="font-family:'宋體';">最後的“</span><span style="font-family:'Times New Roman';">/</span><span style="font-family:'宋體';">”是必不可少的。</span></p>
<p>Tip2: <span style="font-family:'宋體';">也可以寫成</span><span style="font-family:'Times New Roman';"><node pkg=</span>”..” type=”...” name=”...”></node></p>
<p>如果該<span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">中有其他</span><span style="font-family:'Times New Roman';">tags</span><span style="font-family:'宋體';">,則必須使用這種形式。</span></p>
<p>(4) 一個<span style="font-family:'Times New Roman';">node element</span><span style="font-family:'宋體';">包含三個必須的屬性:</span><span style="font-family:'Times New Roman';">pkg, type, name.</span></p>
<p>pkg<span style="font-family:'宋體';">和</span><span style="font-family:'Times New Roman';">type</span><span style="font-family:'宋體';">屬性指出</span><span style="font-family:'Times New Roman';">ROS</span><span style="font-family:'宋體';">應該運行哪個</span><span style="font-family:'Times New Roman';">pkg</span><span style="font-family:'宋體';">中的哪個</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">,注意:此處的</span><span style="font-family:'Times New Roman';">type</span><span style="font-family:'宋體';">是可執行文件的名稱,而</span><span style="font-family:'Times New Roman';">name</span><span style="font-family:'宋體';">則是可以任意給出的,它覆蓋了原有文件中</span><span style="font-family:'Times New Roman';">ros::init</span><span style="font-family:'宋體';">指定的</span><span style="font-family:'Times New Roman';">node name</span><span style="font-family:'宋體';">。</span></p>
<p>(5) 使用匿名(<span style="font-family:'Times New Roman';">anonymous name</span><span style="font-family:'宋體';">)</span></p>
<p> <span style="background-color:rgb(255,153,255);"> name=”$(anon base_name)”</span></p>
<p>(6) node <span style="font-family:'宋體';">日誌文件(</span><span style="font-family:'Times New Roman';">log file</span><span style="font-family:'宋體';">)</span></p>
<p>運行<span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">和用</span><span style="font-family:'Times New Roman';">rosrun</span><span style="font-family:'宋體';">運行單個節點的區別之一是,默認情況下,</span><span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">運行的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">的標準輸出會重定向到</span><span style="font-family:'Times New Roman';">log file</span><span style="font-family:'宋體';">,不顯示在控制檯。</span></p>
<p>該日誌文件的位置和名稱如下:</p>
<p><span style="background-color:rgb(51,255,255);">~/.ros/log/run_id/node_name-number-stdout.log</span></p>
<p>其中,<span style="font-family:'Times New Roman';">run_id</span><span style="font-family:'宋體';">是</span><span style="font-family:'Times New Roman';">master</span><span style="font-family:'宋體';">啓動後生成的特殊標識符,</span><span style="font-family:'Times New Roman';">number</span><span style="font-family:'宋體';">是表示</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">數量的整數。如,</span><span style="font-family:'Times New Roman';">turtlesim-1-stdout.log; teleop_key-3-stdout.log.</span></p>
<p>(7) 輸出到控制檯</p>
<p>用<span style="font-family:'Times New Roman';">output</span><span style="font-family:'宋體';">屬性, </span><span style="background-color:rgb(255,153,255);"><span style="font-family:'Times New Roman';">output=</span>”screen”</span>;這種方法僅顯示一個<span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">。</span></p>
<p>若顯示所有<span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">的輸出,用</span><span style="font-family:'Times New Roman';">--screen</span><span style="font-family:'宋體';">命令行。</span></p>
<p><span style="background-color:rgb(255,255,51);">$ roslaunch --screen package_name launch_file_name</span></p>
<p>如果正在運行的文件沒有顯示想要對輸出,可以查看該<span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">屬性集中是否有 </span><span style="font-family:'Times New Roman';">output=</span>”screen”.</p>
<p>(8) 要求重生<span style="font-family:'Times New Roman';">(request respawning)</span></p>
<p> 開啓所有<span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">後,</span><span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">會監視每個</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">,記錄那些仍然活動的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">。對於每個</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">,當其終止後,我們可以要求</span><span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">重啓該</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">,通過使用</span><span style="font-family:'Times New Roman';">respawn</span><span style="font-family:'宋體';">屬性。</span></p>
<p> <span style="background-color:rgb(255,153,255);"> respawn=”true”</span></p>
<p>(10) 必需的<span style="font-family:'Times New Roman';">nodes</span></p>
<p>required<span style="font-family:'宋體';">屬性與</span><span style="font-family:'Times New Roman';">respawn</span><span style="font-family:'宋體';">相反,不能同時對同一個</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">使用。</span></p>
<p><span style="background-color:rgb(255,153,255);">required=”true”</span></p>
<p>當一個<span style="font-family:'Times New Roman';">required node</span><span style="font-family:'宋體';">終止後,所有其他的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">都會終止,並退出。這種命令有時很有用。比如,當一個很重要的</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">失敗後,整個會話都會被扔掉,那些加上了</span><span style="font-family:'Times New Roman';">respawn</span><span style="font-family:'宋體';">屬性的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">也會停止。</span></p>
<p>(11) 在獨立的窗口運行各<span style="font-family:'Times New Roman';">nodes</span></p>
<p>我們在各自的<span style="font-family:'Times New Roman';">termin</span><span style="font-family:'宋體';">運行</span><span style="font-family:'Times New Roman';">rosrun node_name</span><span style="font-family:'宋體';">;但是運行</span><span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">時,所有的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">共用一個相同的</span><span style="font-family:'Times New Roman';">terminal</span><span style="font-family:'宋體';">,這對於那些需要從控制檯輸入的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">很不方便。可以使用</span><span style="font-family:'Times New Roman';">launch-prefix</span><span style="font-family:'宋體';">屬性。</span></p>
<p><span style="background-color:rgb(255,153,255);">launch-prefix=”command-prefix”</span></p>
<p>Eg<span style="font-family:'宋體';">:</span><span style="font-family:'Times New Roman';">launch-prefix=</span>”xterm -e”</p>
<p>等價於 <span style="font-family:'Times New Roman';">xterm -e rosrun turtlesim turtle_teleop_key</span></p>
<p>xterm <span style="font-family:'宋體';">命令表示新建一個</span><span style="font-family:'Times New Roman';">terminal</span><span style="font-family:'宋體';">; </span><span style="font-family:'Times New Roman';">-e</span><span style="font-family:'宋體';">參數告訴</span><span style="font-family:'Times New Roman';">xterm</span><span style="font-family:'宋體';">執行剩下的命令行。</span></p>
<p>當然,<span style="font-family:'Times New Roman';">launch-prefix</span><span style="font-family:'宋體';">屬性不僅僅限於</span><span style="font-family:'Times New Roman';">xterm</span><span style="font-family:'宋體';">。它可用於調試(通過</span><span style="font-family:'Times New Roman';">gdb</span><span style="font-family:'宋體';">或</span><span style="font-family:'Times New Roman';">valgrind</span><span style="font-family:'宋體';">),或用於降低進程的執行順序(通過</span><span style="font-family:'Times New Roman';">nice</span><span style="font-family:'宋體';">)</span><span style="font-family:'Times New Roman';">.</span></p>
<p> </p>
<p><span style="font-size:18px;"><strong>3 <span style="font-family:'宋體';">在</span><span style="font-family:'Times New Roman';">namespace</span><span style="font-family:'宋體';">中執行</span><span style="font-family:'Times New Roman';">nodes</span></strong></span></p>
<p>爲<span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">設置默認的</span><span style="font-family:'Times New Roman';">namespace</span><span style="font-family:'宋體';">的常用方法——被稱爲“</span><span style="font-family:'Times New Roman';">pushing down into a namespace</span><span style="font-family:'宋體';">”的進程,用於</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件,並在其</span><span style="font-family:'Times New Roman';">node element</span><span style="font-family:'宋體';">中指定</span><span style="font-family:'Times New Roman';">ns</span><span style="font-family:'宋體';">屬性。</span></p>
<p><span style="background-color:rgb(255,153,255);">ns=”namespace”</span></p>
<p>launch<span style="font-family:'宋體';">文件中的</span><span style="font-family:'Times New Roman';">node names</span><span style="font-family:'宋體';">是</span><span style="font-family:'Times New Roman';">relative names</span><span style="font-family:'宋體';">。同一個</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件中,允許不同</span><span style="font-family:'Times New Roman';">namespace</span><span style="font-family:'宋體';">中出現相同的</span><span style="font-family:'Times New Roman';">node names</span><span style="font-family:'宋體';">。</span><span style="font-family:'Times New Roman';">Roslaunch</span><span style="font-family:'宋體';">要求</span><span style="font-family:'Times New Roman';">node names</span><span style="font-family:'宋體';">必須是</span><span style="font-family:'Times New Roman';">base names</span><span style="font-family:'宋體';">——不指定任何</span><span style="font-family:'Times New Roman';">namespaces</span><span style="font-family:'宋體';">的</span><span style="font-family:'Times New Roman';">relative names</span><span style="font-family:'宋體';">;如果</span><span style="font-family:'Times New Roman';">node element</span><span style="font-family:'宋體';">中出現</span><span style="font-family:'Times New Roman';">node name</span><span style="font-family:'宋體';">爲</span><span style="font-family:'Times New Roman';">global name</span><span style="font-family:'宋體';">,則會報錯。</span></p>
<p> </p>
<p><span style="font-size:18px;"><strong>4 <span style="font-family:'宋體';">重映射</span><span style="font-family:'Times New Roman';">names</span><span style="font-family:'宋體';">(</span><span style="font-family:'Times New Roman';">remapping names</span><span style="font-family:'宋體';">)</span></strong></span></p>
<p>除了解析<span style="font-family:'Times New Roman';">relative names</span><span style="font-family:'宋體';">和</span><span style="font-family:'Times New Roman';">private names</span><span style="font-family:'宋體';">,</span><span style="font-family:'Times New Roman';">ROS</span><span style="font-family:'宋體';">也支持重映射,用於修改</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">當前使用的名稱。</span></p>
<p>重映射相當於換名,每次重映射需提供一個<span style="font-family:'Times New Roman';">original name</span><span style="font-family:'宋體';">和一個</span><span style="font-family:'Times New Roman';">new name</span><span style="font-family:'宋體';">。每次</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">使用它的</span><span style="font-family:'Times New Roman';">original name, ROS client library</span><span style="font-family:'宋體';">都會將其替換爲</span><span style="font-family:'Times New Roman';">remapping name</span><span style="font-family:'宋體';">。</span></p>
<p><span style="font-family:'宋體';"><br /></span></p>
<p><span style="font-family:'宋體';">創建</span><span style="font-family:'Times New Roman';">remapping name</span>兩種方法:</p>
<p>1. 對於單個<span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">,在命令行進行</span><span style="font-family:'Times New Roman';">remapping(remap</span><span style="font-family:'宋體';">對象可以是</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">,</span><span style="font-family:'Times New Roman';">topic</span><span style="font-family:'宋體';">等</span><span style="font-family:'Times New Roman';">)</span><span style="font-family:'宋體';">。</span></p>
<p> original-name:=new-name</p>
<p>Eg: <span style="background-color:rgb(255,255,51);">$ rosrun turtlesim turtlesim_node turtle1/pose:=tim</span></p>
<p><br /></p>
<p>2. 在<span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件內</span><span style="font-family:'Times New Roman';">remap names</span><span style="font-family:'宋體';">,使用</span><span style="font-family:'Times New Roman';">remap element</span></p>
<p> <span style="background-color:rgb(255,153,255);"><remap from=”original_name” to “new_name”></span></p>
<p>如果<span style="font-family:'Times New Roman';">remap</span><span style="font-family:'宋體';">出現在</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件開頭,作爲</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件的子元素,則該</span><span style="font-family:'Times New Roman';">remapping</span><span style="font-family:'宋體';">將被用於隨後所有的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">。如果</span><span style="font-family:'Times New Roman';">remap</span><span style="font-family:'宋體';">作爲某個</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">的子元素,則只用於該節點。</span></p>
<p>Eg<span style="font-family:'宋體';">:</span><span style="font-family:'Times New Roman';"><node pkg=</span>”turtlesim” type=”turtlesim_node” name=”turtle1”></p>
<p> <remap from =”turtle1/pose” to “tim”></p>
<p></node></p>
<p>注意:在<span style="font-family:'Times New Roman';">ROS</span><span style="font-family:'宋體';">進行</span><span style="font-family:'Times New Roman';">remapping</span><span style="font-family:'宋體';">之前,</span><span style="font-family:'Times New Roman';">remaping</span><span style="font-family:'宋體';">的所有</span><span style="font-family:'Times New Roman';">name</span><span style="font-family:'宋體';">,包括</span><span style="font-family:'Times New Roman';">original</span><span style="font-family:'宋體';">和</span><span style="font-family:'Times New Roman';">new names</span><span style="font-family:'宋體';">,都將被解析爲</span><span style="font-family:'Times New Roman';">global names</span><span style="font-family:'宋體';">。所以,</span><span style="font-family:'Times New Roman';">remapping</span><span style="font-family:'宋體';">之後所有的名字通常都是</span><span style="font-family:'Times New Roman';">relative names</span><span style="font-family:'宋體';">。</span></p>
<p> </p>
<p><strong><span style="font-size:18px;">5 <span style="font-family:'宋體';">其他的</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';"> </span><span style="font-family:'Times New Roman';">elements</span></span></strong></p>
<p><strong><span style="font-size:14px;">5.1 including<span style="font-family:'宋體';">其他文件</span></span></strong></p>
<p>爲包含其他<span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件,包括這些</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件的所有</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">和</span><span style="font-family:'Times New Roman';">parameters</span><span style="font-family:'宋體';">,用</span><span style="font-family:'Times New Roman';">include element</span><span style="font-family:'宋體';">。</span></p>
<p><span style="background-color:rgb(255,153,255);"><include file=”path-to-launch-file”></span></p>
<p>這種情況下,<span style="font-family:'Times New Roman';">file</span><span style="font-family:'宋體';">屬性必須寫出該</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件的全部路徑名稱,顯得很繁瑣。因此,常用</span></p>
<p><span style="background-color:rgb(255,153,255);"><include file=”$(find package_name)/launch_file_name”/></span></p>
<p>注意,執行該<span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件時,</span><span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">會搜索該</span><span style="font-family:'Times New Roman';">package</span><span style="font-family:'宋體';">下的所有子目錄;因此,必須給出</span><span style="font-family:'Times New Roman';">package_name</span><span style="font-family:'宋體';">。此外,</span><span style="font-family:'Times New Roman';">include</span><span style="font-family:'宋體';">也支持</span><span style="font-family:'Times New Roman';">ns</span><span style="font-family:'宋體';">屬性,將它的內容放進指定的</span><span style="font-family:'Times New Roman';">namespace</span><span style="font-family:'宋體';">。</span></p>
<p><span style="background-color:rgb(255,153,255);"><include file=”...” ns=”namespace_name”/></span></p>
<p><br /></p>
<p><strong><span style="font-size:14px;">5.2 Launch arguments</span></strong></p>
<p>爲便於<span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件重構,</span><span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">支持</span><span style="font-family:'Times New Roman';">launch arguments,</span><span style="font-family:'宋體';">也成爲</span><span style="font-family:'Times New Roman';">arguments</span><span style="font-family:'宋體';">或者</span><span style="font-family:'Times New Roman';">args</span><span style="font-family:'宋體';">,類似於局部變量。</span></p>
<p>注意:儘管<span style="font-family:'Times New Roman';">argument</span><span style="font-family:'宋體';">和</span><span style="font-family:'Times New Roman';">parameter</span><span style="font-family:'宋體';">有時可互換,但他們在</span><span style="font-family:'Times New Roman';">ROS</span><span style="font-family:'宋體';">中的意義完全不同。</span><span style="font-family:'Times New Roman';">Parameters</span><span style="font-family:'宋體';">是</span><span style="font-family:'Times New Roman';">ROS</span><span style="font-family:'宋體';">系統使用的數值,存在</span><span style="font-family:'Times New Roman';">parameter server</span><span style="font-family:'宋體';">上,</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">可通過</span><span style="font-family:'Times New Roman';">ros::param::get</span><span style="font-family:'宋體';">函數編程得到,用戶可通過</span><span style="font-family:'Times New Roman';">rosparam</span><span style="font-family:'宋體';">獲取。與之不同,</span><span style="font-family:'Times New Roman';">arguments</span><span style="font-family:'宋體';">僅在</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件內部有意義,</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">不能直接獲取它們的值。</span></p>
<p>(1)<span style="font-family:'宋體';">聲明</span><span style="font-family:'Times New Roman';">argument</span></p>
<p><span style="background-color:rgb(255,153,255);"><arg name=”arg_name”></span></p>
<p>(2)指定<span style="font-family:'Times New Roman';">argument</span><span style="font-family:'宋體';">的值</span></p>
<p>Launch<span style="font-family:'宋體';">文件中的每個</span><span style="font-family:'Times New Roman';">argument</span><span style="font-family:'宋體';">都必須有指定值。賦值方法有好幾種。</span></p>
<p>第一種,在命令行賦值</p>
<p><span style="background-color:rgb(255,255,51);">$ roslaunch package_name launch_file_name arg-name:=arg_value</span></p>
<p>第二種,在聲明<span style="font-family:'Times New Roman';">argument</span><span style="font-family:'宋體';">時賦值</span></p>
<p><span style="background-color:rgb(255,153,255);"><arg name=”arg_name” default=”arg_name”/></span></p>
<p><span style="background-color:rgb(255,153,255);"><arg name=”arg_name” value=”arg_name”/></span></p>
<p>上面兩行的區別在於,命令行參數可以覆蓋<span style="font-family:'Times New Roman';">default</span><span style="font-family:'宋體';">,但是不能重寫</span><span style="font-family:'Times New Roman';">value</span><span style="font-family:'宋體';">的值。</span></p>
<p>(3)獲取變量值</p>
<p>一旦聲明某個<span style="font-family:'Times New Roman';">argument</span><span style="font-family:'宋體';">並賦值後,我們可以通過</span><span style="font-family:'Times New Roman';">arg</span><span style="font-family:'宋體';">使用該</span><span style="font-family:'Times New Roman';">argument.</span></p>
<p><span style="background-color:rgb(255,153,255);">$(arg arg-name)</span></p>
<p>如果該行出現,<span style="font-family:'Times New Roman';">roslaunch</span><span style="font-family:'宋體';">將會用給定</span><span style="font-family:'Times New Roman';">arg-name</span><span style="font-family:'宋體';">的值替換其左邊的值。</span></p>
<p>(4)將<span style="font-family:'Times New Roman';">argument</span><span style="font-family:'宋體';">值傳給</span><span style="font-family:'Times New Roman';">included launch</span><span style="font-family:'宋體';">文件</span></p>
<p><include file=”path-to-file”></p>
<p><arg name=”arg_name” value=”arg_value”/></p>
<p>......</p>
<p></include></p>
<p>若在<span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件中,</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件及其包含的</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件出現出現相同的</span><span style="font-family:'Times New Roman';">arguments</span><span style="font-family:'宋體';">,則需在</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件及</span><span style="font-family:'Times New Roman';">included launch</span><span style="font-family:'宋體';">文件中同時寫:</span></p>
<p><span style="background-color:rgb(255,153,255);"><arg name=”arg_name” value=”$(arg arg_name)”/></span></p>
<p>第一個<span style="font-family:'Times New Roman';">arg_name</span><span style="font-family:'宋體';">表示</span><span style="font-family:'Times New Roman';">indluded launch</span><span style="font-family:'宋體';">文件中的</span><span style="font-family:'Times New Roman';">argument,</span><span style="font-family:'宋體';">第二個</span><span style="font-family:'Times New Roman';">arg_name</span><span style="font-family:'宋體';">表示</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件中的</span><span style="font-family:'Times New Roman';">argument.</span><span style="font-family:'宋體';">其結果是指定的</span><span style="font-family:'Times New Roman';">argument</span><span style="font-family:'宋體';">在</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件及</span><span style="font-family:'Times New Roman';">included launch</span><span style="font-family:'宋體';">文件中都有相同的值。</span></p>
<p> </p>
<p><span style="font-size:14px;"><strong>5.3 <span style="font-family:'宋體';">創建</span><span style="font-family:'Times New Roman';">groups</span></strong></span></p>
<p>Group element<span style="font-family:'宋體';">可以再大型的</span><span style="font-family:'Times New Roman';">launch</span><span style="font-family:'宋體';">文件中將指定的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">組織起來。它有兩個用處:</span></p>
<p>其一,<span style="font-family:'Times New Roman';">group</span><span style="font-family:'宋體';">可以將幾個</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">放進同一個</span><span style="font-family:'Times New Roman';">namespace</span></p>
<p><group <span style="background-color:rgb(255,153,255);">ns</span>=”namespace”></p>
<p><node pkg=”..” .../></p>
<p><node pkg=”..” .../></p>
<p>......</p>
<p></group></p>
<p>注意,如果<span style="font-family:'Times New Roman';">grouped node</span><span style="font-family:'宋體';">已經有它自己的</span><span style="font-family:'Times New Roman';">namespace</span><span style="font-family:'宋體';">,並且是</span><span style="font-family:'Times New Roman';">relative name</span><span style="font-family:'宋體';">,那麼該</span><span style="font-family:'Times New Roman';">node</span><span style="font-family:'宋體';">的</span><span style="font-family:'Times New Roman';">namespace</span><span style="font-family:'宋體';">是其</span><span style="font-family:'Times New Roman';">relative name</span><span style="font-family:'宋體';">,並以</span><span style="font-family:'Times New Roman';">group namespace</span><span style="font-family:'宋體';">爲後綴。</span></p>
<p>其二,<span style="font-family:'Times New Roman';">group</span><span style="font-family:'宋體';">可以同時啓動或者終止一組</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">。</span></p>
<p><group <span style="background-color:rgb(255,153,255);">if</span>=”0 or 1”></p>
<p>......</p>
<p></group></p>
<p>如果該屬性的值是<span style="font-family:'Times New Roman';">1</span><span style="font-family:'宋體';">,一切正常;如果該屬性的值爲</span><span style="font-family:'Times New Roman';">0</span><span style="font-family:'宋體';">,那麼</span><span style="font-family:'Times New Roman';">group</span><span style="font-family:'宋體';">內所有的</span><span style="font-family:'Times New Roman';">nodes</span><span style="font-family:'宋體';">都不會運行。</span></p>
<p>同理,除了<span style="font-family:'Times New Roman';">if</span><span style="font-family:'宋體';">,還有</span><span style="font-family:'Times New Roman';">unless</span><span style="font-family:'宋體';">。</span></p>
<p><group <span style="background-color:rgb(255,153,255);">unless</span>=”0 or 1”></p>
<p>......</p>
<p></group></p>
<p>注意,這些屬性的合法值只有<span style="font-family:'Times New Roman';">0</span><span style="font-family:'宋體';">和</span><span style="font-family:'Times New Roman';">1.</span></p>
<p>另外,<span style="font-family:'Times New Roman';">group element</span><span style="font-family:'宋體';">中只能使用</span><span style="font-family:'Times New Roman';">ns</span><span style="font-family:'宋體';">,</span><span style="font-family:'Times New Roman';">if</span><span style="font-family:'宋體';">,</span><span style="font-family:'Times New Roman';">unless</span><span style="font-family:'宋體';">這三個屬性。</span></p>
</div>
</div>
</article>
<!-- !empty($pre_next_article[0]) -->
</div>
<script>
$(".MathJax").remove();
</script>
<script type="text/javascript" src="https://static-blog.csdn.net/mdeditor/public/res/bower-libs/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
"HTML-CSS": {
linebreaks: { automatic: true, width: "94%container" },
imageFont: null
},
tex2jax: {
preview: "none"
},
mml2jax: {
preview: 'none'
}
});
</script>
<script>
(function(){
var btnReadmore = $("#btn-readmore");
if(btnReadmore.length>0){
var winH = $(window).height();
var articleBox = $("div.article_content");
var artH = articleBox.height();
if(artH > winH*2){
articleBox.css({
'height':winH*2+'px',
'overflow':'hidden'
})
btnReadmore.click(function(){
articleBox.removeAttr("style");
$(this).parent().remove();
})
}else{
btnReadmore.parent().remove();
}
}
})()
</script> <div class="edu-promotion"></div>
<a id="commentBox"></a>
<div class="comment-box">
<div class="comment-edit-box d-flex">
<a id="commentsedit"></a>
<div class="user-img">
<img src="https://avatar.csdn.net/0/F/3/3_lelelemenglele.jpg">
</div>
<form id="commentform">
<input type="hidden" id="comment_replyId">
<textarea class="comment-content" name="comment_content" id="comment_content" placeholder="想對作者說點什麼"></textarea>
<div class="opt-box"> <!-- d-flex -->
<div id="ubbtools" class="add_code">
<a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
</div>
<input type="hidden" id="comment_replyId" name="comment_replyId">
<input type="hidden" id="comment_userId" name="comment_userId" value="">
<input type="hidden" id="commentId" name="commentId" value="">
<div style="display: none;" class="csdn-tracking-statistics tracking-click" data-mod="popu_384"><a href="#" target="_blank" class="comment_area_btn">發表評論</a></div>
<div class="dropdown" id="myDrap">
<a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<div class="txt-selected text-truncate">添加代碼片</div>
<svg class="icon d-block" aria-hidden="true">
<use xlink:href="#csdnc-triangledown"></use>
</svg>
</a>
<ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
<li><a data-code="html">HTML/XML</a></li>
<li><a data-code="objc">objective-c</a></li>
<li><a data-code="delphi">Delphi</a></li>
<li><a data-code="ruby">Ruby</a></li>
<li><a data-code="php">PHP</a></li>
<li><a data-code="csharp">C</a></li>
<li><a data-code="cpp">C++</a></li>
<li><a data-code="javascript">JavaScript</a></li>
<li><a data-code="vb">Visual Basic</a></li>
<li><a data-code="python">Python</a></li>
<li><a data-code="java">Java</a></li>
<li><a data-code="css">CSS</a></li>
<li><a data-code="sql">SQL</a></li>
<li><a data-code="plain">其它</a></li>
</ul>
</div>
<div class="right-box">
<span id="tip_comment" class="tip">還能輸入<em>1000</em>個字符</span>
<input type="submit" class="btn btn-sm btn-red btn-comment" value="發表評論">
</div>
</div>
</form>
</div>
<div class="comment-list-container">
<a id="comments"></a>
<div class="comment-list-box">
</div>
<div id="commentPage" class="pagination-box d-none"></div>
<div class="opt-box text-center">
<button class="btn btn-sm btn-link-blue" id="btnMoreComment"></button>
</div>
</div>
</div> <div class="recommend-box">
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="-" target="_blank" strategy="EduRecommendInPriority_0">
C#SQL查詢技術 </a>
</h4>
<p class="content">
<a href="-" target="_blank" strategy="EduRecommendInPriority_0">
本課程以SQL Server 2008 R2數據庫系統爲例,全面介紹SQL查詢技術,包括select語句,Where子句,Order By子句,Group By子句,having語句,TOP和PERCENT限制查詢結果,在查詢中使用OR和AND運算符,聚合函數應用,多表連接查詢,嵌套查詢,子查詢,聯合語句Union,內聯接、外聯接查詢,交叉表查詢,視圖、存儲過程的應用,觸發器的應用等。 </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<span class="read-num">學院</span>
</p>
<p>
<span class="date">2018年02月02日 19:37</span>
</p>
</div>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/zqxf123456789/article/details/52497833" target="_blank" strategy="BlogCommendFromBaidu_1">
ROS launch文檔介紹 </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/zqxf123456789/article/details/52497833" target="_blank" strategy="BlogCommendFromBaidu_1">
本文章轉自:https://charlyhuangrostutorial.wordpress.com/2015/08/12/20/
前面已經提過關於launch 檔的角色,很類似bash 檔,基本上... </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/zqxf123456789" title="zqxf123456789" target="_blank">
<img src="https://avatar.csdn.net/1/3/3/3_zqxf123456789.jpg" alt="zqxf123456789" class="avatar-pic">
<span class="name">zqxf123456789</span>
</a>
</p>
<p>
<span class="date">2016-09-10 23:13:33</span>
</p>
<p>
<span class="read-num">閱讀數:2990</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box" id="ad1">
<script>
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div id="' + s + '"></div>');
(window.slotbydup=window.slotbydup || []).push({
id: '4765209',
container: s,
size: '808,120',
display: 'inlay-fix'
});
})();
</script>
<script src="http://dup.baidustatic.com/js/os.js"></script>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/sonictl/article/details/47444391" target="_blank" strategy="BlogCommendFromBaidu_5">
ROS進階學習手記6.1 -- Launch File </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/sonictl/article/details/47444391" target="_blank" strategy="BlogCommendFromBaidu_5">
在以後的ROS運用中,我們逐漸需要運行多個nodes,而launch file的編寫是ROS高級運用的基礎。
官方的launch file wiki文檔好像不是很好用:wiki.ros.org/ros... </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/sonictl" title="sonictl" target="_blank">
<img src="https://avatar.csdn.net/C/1/0/3_sonictl.jpg" alt="sonictl" class="avatar-pic">
<span class="name">sonictl</span>
</a>
</p>
<p>
<span class="date">2015-08-12 14:58:42</span>
</p>
<p>
<span class="read-num">閱讀數:2178</span>
</p>
</div>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/Forrest_Z/article/details/52618833" target="_blank" strategy="BlogCommendFromBaidu_3">
roslaunch的使用和編寫 </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/Forrest_Z/article/details/52618833" target="_blank" strategy="BlogCommendFromBaidu_3">
1、使用$ roslaunch package_name file.launch2、編寫roslaunch文件是使用XML語言來描述節點以及相關參數的設置和軟件的啓動的。2.1 標籤標籤是任何ros... </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/Forrest_Z" title="Forrest_Z" target="_blank">
<img src="https://avatar.csdn.net/6/0/0/3_forrest_z.jpg" alt="Forrest_Z" class="avatar-pic">
<span class="name">Forrest_Z</span>
</a>
</p>
<p>
<span class="date">2016-09-22 09:38:04</span>
</p>
<p>
<span class="read-num">閱讀數:3250</span>
</p>
</div>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/suibianti/article/details/52809628" target="_blank" strategy="BlogCommendFromBaidu_4">
在roslaunch中如何單獨打開另一個終端 </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/suibianti/article/details/52809628" target="_blank" strategy="BlogCommendFromBaidu_4">
1、節點的定義,只要加入launch-prefix前綴即可
2、rviz加載配置文件可用以下語句加載... </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/suibianti" title="suibianti" target="_blank">
<img src="https://avatar.csdn.net/3/F/E/3_suibianti.jpg" alt="suibianti" class="avatar-pic">
<span class="name">suibianti</span>
</a>
</p>
<p>
<span class="date">2016-10-15 13:31:58</span>
</p>
<p>
<span class="read-num">閱讀數:1071</span>
</p>
</div>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/yiranhaiziqi/article/details/52949121" target="_blank" strategy="BlogCommendFromBaidu_6">
ROS roslaunch 學習 </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/yiranhaiziqi/article/details/52949121" target="_blank" strategy="BlogCommendFromBaidu_6">
roslaunch 用處:將多個rosnode 結合起來,一起運行。這樣就不需要一個個的運行。roslaunch格式
(add_two.launch)
... </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/yiranhaiziqi" title="yiranhaiziqi" target="_blank">
<img src="https://avatar.csdn.net/0/6/2/3_yiranhaiziqi.jpg" alt="yiranhaiziqi" class="avatar-pic">
<span class="name">yiranhaiziqi</span>
</a>
</p>
<p>
<span class="date">2016-10-27 20:01:25</span>
</p>
<p>
<span class="read-num">閱讀數:2594</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box" id="yd_a_d_feed_0">
<script>
var new_element = document.createElement("script");
new_element.setAttribute("async", "async");
new_element.setAttribute("charset", "utf-8");
new_element.setAttribute("data-notify", "inforFlowMulti_notify");
new_element.setAttribute("src", "https://shared.ydstatic.com/js/yatdk/3.0.0/stream.js");
new_element.setAttribute("data-id", "8935aa488dd58452b9e5ee3b44f1212f");
new_element.setAttribute("data-insert-nodes", "yd_a_d_feed_0");
new_element.setAttribute("data-pos", "inline");
new_element.setAttribute("data-img-Style", "float:right;width:120px;");
new_element.setAttribute("data-des-Style", "color: #8e959a;line-height: 24px;font-size:14px;font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun;");
new_element.setAttribute("data-tit-Style", "font-size:20px;font-weight:bold;margin-bottom:10px;font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun;");
new_element.setAttribute("data-div-Style", "background-image: url(//img-ads.csdn.net/2016/201608021757063065.png);background-repeat: no-repeat;background-position: bottom left;");
document.body.appendChild(new_element);
</script>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/XF920418/article/details/53179778" target="_blank" strategy="BlogCommendFromBaidu_7">
ROS中launch啓動文件的理解 </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/XF920418/article/details/53179778" target="_blank" strategy="BlogCommendFromBaidu_7">
ROS中launch啓動文件的理解 </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/XF920418" title="XF920418" target="_blank">
<img src="https://avatar.csdn.net/4/1/D/3_xf920418.jpg" alt="XF920418" class="avatar-pic">
<span class="name">XF920418</span>
</a>
</p>
<p>
<span class="date">2016-11-15 23:13:43</span>
</p>
<p>
<span class="read-num">閱讀數:2133</span>
</p>
</div>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/u013832707/article/details/53979461" target="_blank" strategy="BlogCommendFromBaidu_2">
ROS中launch file基本介紹 </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/u013832707/article/details/53979461" target="_blank" strategy="BlogCommendFromBaidu_2">
在運行ros程序時我們往往需要在不同終端啓動多個不同的節點,這會讓人有些沮喪。幸運的是,ROS 提供了一個同時啓動節點管理器(master)和多個節點的途徑,即使用啓動文件(launch file)。... </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/u013832707" title="u013832707" target="_blank">
<img src="https://avatar.csdn.net/D/E/D/3_u013832707.jpg" alt="u013832707" class="avatar-pic">
<span class="name">u013832707</span>
</a>
</p>
<p>
<span class="date">2017-01-02 16:48:20</span>
</p>
<p>
<span class="read-num">閱讀數:2879</span>
</p>
</div>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/x_r_su/article/details/54952880" target="_blank" strategy="BlogCommendFromBaidu_9">
ROS Launch使用總結 </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/x_r_su/article/details/54952880" target="_blank" strategy="BlogCommendFromBaidu_9">
ROS Launch使用總結 </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/x_r_su" title="x_r_su" target="_blank">
<img src="https://avatar.csdn.net/7/C/9/3_x_r_su.jpg" alt="x_r_su" class="avatar-pic">
<span class="name">x_r_su</span>
</a>
</p>
<p>
<span class="date">2017-02-09 19:10:47</span>
</p>
<p>
<span class="read-num">閱讀數:5383</span>
</p>
</div>
</div>
<div class="recommend-item-box csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
<h4 class="text-truncate">
<a href="https://blog.csdn.net/ZXQHBD/article/details/70239434" target="_blank" strategy="BlogCommendFromBaidu_8">
ROS之launch分析 </a>
</h4>
<p class="content">
<a href="https://blog.csdn.net/ZXQHBD/article/details/70239434" target="_blank" strategy="BlogCommendFromBaidu_8">
ROS採用rosrun命令可以啓動一個節點,如果需要同時啓動節點管理器(master)和多個節點,就需要採用launch文件來配置。launch文件是一種特殊的XML格式文件,通常以.launch作爲... </a>
</p>
<div class="info-box d-flex align-content-center">
<p>
<a class="avatar" src="https://blog.csdn.net/ZXQHBD" title="ZXQHBD" target="_blank">
<img src="https://avatar.csdn.net/3/5/B/3_zxqhbd.jpg" alt="ZXQHBD" class="avatar-pic">
<span class="name">ZXQHBD</span>
</a>
</p>
<p>
<span class="date">2017-04-19 13:40:22</span>
</p>
<p>
<span class="read-num">閱讀數:403</span>
</p>
</div>
</div>
<div class="recommend-loading-box">
<img src='https://csdnimg.cn/release/phoenix/images/feedLoading.gif'>
</div>
<div class="recommend-end-box">
<p class="text-center">沒有更多推薦了,<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首頁</a></p>
</div>
</div>
</main>
</div>
<div class="mask-dark"></div>
<div class="report-box">
<div class="pos-box">
<h2 class="title">不良信息舉報</h2>
<a class="btn-close">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-times"></use>
</svg>
</a>
<form id="frmReport">
<div class="form-box">
<div class="txt-row-box">
<label class="title" id="reptTit">舉報內容:</label>
<p class="rpt-title text-truncate">ROS launch整理</p>
</div>
<div class="txt-row-box">
<label class="title">舉報原因:</label>
<div class="rdo-box">
<label><input type="radio" class="rdo-chk report-type" id="report_sex" name="report_type" value="1">色情</label>
<label><input type="radio" class="rdo-chk report-type" id="report_Politics" name="report_type" value="2">政治</label>
<label><input type="radio" class="rdo-chk report-type" id="report_copy" name="report_type" value="3">抄襲</label>
<label><input type="radio" class="rdo-chk report-type" id="report_ad" name="report_type" value="4">廣告</label>
<label><input type="radio" class="rdo-chk report-type" id="report_want" name="report_type" value="5">招聘</label>
<label><input type="radio" class="rdo-chk report-type" id="report_call" name="report_type" value="6">罵人</label>
<label><input type="radio" class="rdo-chk report-type" id="report_other" name="report_type" value="7">其他</label>
</div>
</div>
<div class="txt-row-box" id="rptOriginalurl">
<label class="title">原文地址:</label>
<div class="txt-box">
<input class="ipt" type="text" name="originalurl">
</div>
</div>
<div class="txt-row-box">
<label class="title">原因補充:</label>
<div class="txt-box">
<textarea class="ipt ipt-textarea" name="description" maxlength="30"></textarea>
<p class="remark">最多隻允許輸入30個字</p>
</div>
</div>
</div>
<div class="opt-box text-right">
<input type="reset" class="btn btn-link-gray btn-close" value="取消">
<input type="submit" class="btn btn-red btn-submit" value="提交">
</div>
</form>
</div>
</div>
<div class="tool-box">
<ul class="meau-list">
<li>
<button class="btn-like" title="點贊">
<svg class="icon active" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup-ok"></use>
</svg><svg class="icon no-active" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup"></use>
</svg>
<p>8</p>
</button>
</li>
<li class="toc-container-box" id="liTocBox">
<button class="btn-toc" title="目錄">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-contents"></use>
</svg><br>目錄
</button>
<div class="toc-container">
<div class="pos-box">
<div class="icon-arrow"></div>
<div class="scroll-box">
<div class="toc-box"></div>
</div>
</div>
<div class="opt-box">
<button class="btn-opt prev nomore" title="向上">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-chevronup"></use>
</svg>
</button>
<button class="btn-opt next">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-chevrondown"></use>
</svg>
</button>
</div>
</div>
</li>
<li>
<button class="btn-bookmark" title="收藏">
<svg class="icon active" aria-hidden="true">
<use xlink:href="#csdnc-bookmark-ok"></use>
</svg><svg class="icon no-active" aria-hidden="true">
<use xlink:href="#csdnc-bookmark"></use>
</svg><br>收藏
</button>
</li>
<li>
<a class="btn-comments" title="評論" href="#commentBox">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-comments"></use>
</svg><br>評論
</a>
</li>
<li class="bdsharebuttonbox">
<a class="btn-comments bds_weixin" data-cmd="weixin" title="微信分享">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-wechat"></use>
</svg><br>微信
</a>
</li>
<li class="bdsharebuttonbox">
<a class="btn-comments bds_tsina" data-cmd="tsina" title="微博分享">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-weibo"></use>
</svg><br>微博
</a>
</li>
<li class="bdsharebuttonbox">
<a class="btn-comments bds_qzone" data-cmd="qzone" title="QQ分享">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-qq"></use>
</svg><br>QQ
</a>
</li>
</ul>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'https://csdnimg.cn/static/api/js/share.js?v=89860594'];</script>
<script src="https://csdnimg.cn/public/sandalstrap/1.2/js/sandalstrap.min.js"></script>
<script src="https://csdnimg.cn/release/phoenix/vendor/pagination/paging.js"></script>
<script src='https://csdnimg.cn/public/common/gotop/js/goTop-v1.0.min.js?v201803151422'></script>
<script>
GoTop({
right: 8,
hasReport: true,
reportFun: function() {
showReport(false,'ROS launch整理');
}
})
</script>
<script src="https://csdnimg.cn/release/phoenix/template/js/common-bd54b21308.min.js"></script>
<script src="https://csdnimg.cn/release/phoenix/template/js/detail-dd0e825f48.min.js"></script>
<script src="https://csdnimg.cn/release/phoenix/themes/big-white/big-white-46c7bd3d86.min.js"></script>
<script src="https://csdnimg.cn/search/baidu_search-1.1.2.js?v=201802071056&autorun=true&install=true&keyword=ros+launch+find" type="text/javascript"></script>
</body>
<div class="box-box-default">
<a class="btn-remove">
關閉
</a>
<script type="text/javascript" src="//cee1.iteye.com/mhzzjepzz.js"></script>
</div>
<div class="box-box-large">
<a class="btn-remove">
關閉
</a>
<script type="text/javascript" src="//cee1.iteye.com/idvveasfs.js"></script>
</div>
</html>
launch標籤講解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.