<p>好吧,我已经实现了一些应该很好用的方法。在</p>
<p>我有3个文件,使流浪高领动物工作,如你所要求。在</p>
<ol>
<li><p>游荡_机器人发射
职责:此文件是一个启动文件,将运行gazebo world并存储可配置参数。</p></li>
<li><p>毛绒衫_节点.py
职责:这个python文件将初始化ROS节点并加载可配置的参数,然后它将运行使turtlebot移动的代码。</p></li>
<li><p>毛绒衫_逻辑.py
职责:这个python文件将监听激光,它将实现使漫游机器人工作的所有逻辑。</p></li>
</ol>
<p><strong>徘徊_机器人发射</strong></p>
<pre><code><launch>
<param name="/use_sim_time" value="true" />
<! Launch turtle bot world >
<include file="$(find turtlebot_gazebo)/launch/turtlebot_world.launch"/>
<! Launch stopper node >
<node name="wander_bot" pkg="wander_bot" type="turtlebot_node.py" output="screen">
<param name="forward_speed" type="double" value="0.2"/>
<param name="minimum_distance_from_obstacle" type="double" value="1.0"/>
<param name="rotation_speed" type="int" value="2"/>
<param name="minimum_angle" type="int" value="-30"/>
<param name="maximum_angle" type="int" value="30"/>
</node>
</launch>
</code></pre>
<p><strong>毛绒衫_节点.py</strong></p>
^{pr2}$
<p><strong>毛绒衫_逻辑.py</strong></p>
^{3}$
<hr/>
<p>激光看起来是180度,直角是指数0
在ranges数组中,forward是ranges数组的索引359,left是ranges数组中的索引719,ranges数组来自订阅服务器:</p>
<pre><code>rospy.Subscriber("scan", LaserScan, self.scanCallback, queue_size=10)
</code></pre>
<p>回调函数是scanCallback</p>
<hr/>
<p>好吧,那就直截了当了,我不认为我需要解释代码,它有很好的文档记录并且易于理解,对于任何进一步的问题,请在这里评论。在</p>