<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>自主探索 on 阿波的博客</title><link>https://leo-wangbo.top/categories/%E8%87%AA%E4%B8%BB%E6%8E%A2%E7%B4%A2/</link><description>Recent content in 自主探索 on 阿波的博客</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sun, 12 Nov 2023 19:17:26 +0800</lastBuildDate><atom:link href="https://leo-wangbo.top/categories/%E8%87%AA%E4%B8%BB%E6%8E%A2%E7%B4%A2/index.xml" rel="self" type="application/rss+xml"/><item><title>CMU-自主探索导航系统（TARE &amp; FAR Planner）部署</title><link>https://leo-wangbo.top/p/cmu-%E8%87%AA%E4%B8%BB%E6%8E%A2%E7%B4%A2%E5%AF%BC%E8%88%AA%E7%B3%BB%E7%BB%9Ftare-far-planner%E9%83%A8%E7%BD%B2/</link><pubDate>Sun, 12 Nov 2023 19:00:09 +0800</pubDate><guid>https://leo-wangbo.top/p/cmu-%E8%87%AA%E4%B8%BB%E6%8E%A2%E7%B4%A2%E5%AF%BC%E8%88%AA%E7%B3%BB%E7%BB%9Ftare-far-planner%E9%83%A8%E7%BD%B2/</guid><description>&lt;img src="https://leo-wangbo.top/" alt="Featured image of post CMU-自主探索导航系统（TARE &amp; FAR Planner）部署" /&gt;&lt;p&gt;去年CMU机器人实验室团队开源了整套的自主探索导航系统，相关文章还荣获IROS2022 最佳学生论文。因此想在实验室的设备上试一下，先跑个官方demo试试。但中文互联网搜索结果的文章质量果然不出我所料，全都是互相抄，下载下来的源码CmakeList文件都是错的😅，最后还是去CMU这个项目的官网才把demo跑起来了。下面记录一下部署过程，我的系统环境是Ubuntu20.04、ROS1 Noetic。&lt;/p&gt;
&lt;h2 id="一安装仿真环境"&gt;&lt;a href="#%e4%b8%80%e5%ae%89%e8%a3%85%e4%bb%bf%e7%9c%9f%e7%8e%af%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;一、安装仿真环境
&lt;/h2&gt;&lt;p&gt;先安装CMU团队制作的仿真环境，仿真环境包含多楼层停车场、隧道、森林、校园等多种复杂环境，能把这些环境跑好说明这个自主探索导航系统还是很有普适性的。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://leo-wangbo.top/uploads/2023/11/2023-11-12-16-48-14-的屏幕截图-1024x575.png"&gt;&lt;/p&gt;
&lt;p&gt;先安装依赖环境&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install libusb-dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;克隆开源存储库&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/HongbiaoZ/autonomous_exploration_development_environment.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;更换分支，并编译。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cd autonomous_exploration_development_environment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git checkout noetic #如果是melodic 将noetic更换为melodic
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;catkin_make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果可以科学上网，运行脚本下载模拟环境，由于网络环境不同，下载可能需要一会。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;./&lt;/span&gt;&lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;vehicle_simulator&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mesh&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;download_environments&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;当然也可以下载官方整理的百度网盘：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;链接：https://pan.baidu.com/share/init?surl=7PFWGbQGLLfPy1mHNiiS4A
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;提取码：qm45
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将在百度网盘下载的&amp;quot;autonomous_exploration_environments.zip&amp;quot;解压之后放在src/vehicle_simulator/mesh文件夹下。最终的mesh文件夹结构应该和下面的一致：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mesh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;campus&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;indoor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;garage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tunnel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;forest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;download_environments&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后运行仿真环境&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;source devel/setup.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch vehicle_simulator system_garage.launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;现在，可以通过点击RVIZ中的“waypoint”按钮发送航路点，然后点击一个点来设置航路点。车辆将导航到航路点，避开沿途的障碍物。请注意，航路点应该是可到达的，并且在车辆附近。&lt;/p&gt;
&lt;p&gt;或者，可以运行ROS节点来发送一系列路点。在另一个终端中，转到文件夹并获取ROS工作区，然后使用下面的命令行运行ROS节点。：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch waypoint_example waypoint_example_garage.launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
 &lt;img src="https://leo-wangbo.top/uploads/2023/11/2023-11-12-17-20-09-的屏幕截图-1024x576.png" alt=""&gt;
 &lt;figcaption&gt;导航至航路点&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;存储库包含一组不同类型和规模的模拟环境。要在特定环境下启动系统，请使用下面的命令行。将“environment”替换为环境名称，即&amp;rsquo;campus&amp;rsquo;,、&amp;lsquo;indoor&amp;rsquo;,、&amp;lsquo;garage&amp;rsquo;、 &amp;rsquo;tunnel&amp;rsquo;和&amp;rsquo;forest&amp;rsquo;。现在，用户可以使用RVIZ中的“Waypoint”按钮来导航车辆。要在Gazebo GUI中查看环境中的车辆，在启动文件中设置&amp;rsquo;gazebo_gui = true&amp;rsquo;，该文件位于&amp;rsquo;src/vehicle_simulator/launch&amp;rsquo;中。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch vehicle_simulator system_environment.launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="二tare-exploration-planner部署"&gt;&lt;a href="#%e4%ba%8ctare-exploration-planner%e9%83%a8%e7%bd%b2" class="header-anchor"&gt;&lt;/a&gt;二、TARE Exploration Planner部署
&lt;/h2&gt;&lt;p&gt;同样的，先克隆仓库：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/caochao39/tare_planner.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;编译后就可以运行了&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cd tare_planner
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;catkin_make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;去上一步的工作空间下运行仿真环境：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;source devel/setup.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch vehicle_simulator system_garage.launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后在现在的工作空间下运行TARE自主探索算法：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;source devel/setup.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch tare_planner explore_garage.launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;现在，应该看到自主探索的行动。同样的，要在不同的环境中启动，使用下面的命令行，并将“environment”替换为开发环境中的一个环境名称，即&amp;rsquo;campus&amp;rsquo;, &amp;lsquo;indoor&amp;rsquo;, &amp;lsquo;garage&amp;rsquo;, &amp;rsquo;tunnel&amp;rsquo;, 和 &amp;lsquo;forest&amp;rsquo;。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch vehicle_simulator system_environment.launch
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch tare_planner explore_environment.launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
 &lt;img src="https://leo-wangbo.top/uploads/2023/11/2023-11-12-18-04-44-的屏幕截图-1024x576.png" alt=""&gt;
 &lt;figcaption&gt;TARE自主探索&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="三far-planner部署"&gt;&lt;a href="#%e4%b8%89far-planner%e9%83%a8%e7%bd%b2" class="header-anchor"&gt;&lt;/a&gt;三、FAR Planner部署
&lt;/h2&gt;&lt;p&gt;克隆仓库&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/MichaelFYang/far_planner
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;编译&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cd far_planner
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;catkin_make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;同样的，去第一个工作空间下运行仿真环境：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;source devel/setup.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch vehicle_simulator system_indoor.launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后在现在的工作空间下运行FAR-Planner算法&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;source devel/setup.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;roslaunch far_planner far_planner.launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;现在，我们可以发送一个目标，通过单击在RVIZ的“Goalpoint”按钮，然后点击一个点设置的目标。车辆将导航到目标，并在沿途建立一个可见性图表(青色)。可见性图所覆盖的区域变成了自由空间。当在自由空间中导航时，计划者使用构建的可见性图，当在未知空间中导航时，计划者试图发现通往目标的方法。通过点击“Reset Visibility Graph”按钮，规划器将重新初始化可见性图。通过取消选中“Planning Attemptable”复选框，规划器将首先尝试在空闲空间中找到一条路径。这条路将以绿色显示。如果不存在这样的路径，规划器会一起考虑未知空间。路径将以蓝色显示。通过取消选中”&lt;code&gt;Update Visibility Graph“&lt;/code&gt;复选框，规划器将停止更新可见性图。&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://leo-wangbo.top/uploads/2023/11/2023-11-12-18-52-21-的屏幕截图-1024x576.png" alt=""&gt;
 &lt;figcaption&gt;Far-Planner 导航&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;如果是实车可以用手柄遥控，这里是仿真环境，Rviz右下角有一个虚拟遥控器，可以遥控车辆移动，并且移动过程中会自动调用局部路径规划自动避开障碍物。&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://leo-wangbo.top/uploads/2023/11/2023-11-12-18-54-11-的屏幕截图.png" alt=""&gt;
 &lt;figcaption&gt;虚拟遥控器与真实遥控器&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="四实物部署待更新"&gt;&lt;a href="#%e5%9b%9b%e5%ae%9e%e7%89%a9%e9%83%a8%e7%bd%b2%e5%be%85%e6%9b%b4%e6%96%b0" class="header-anchor"&gt;&lt;/a&gt;四、实物部署（待更新）
&lt;/h2&gt;</description></item></channel></rss>