4

SLAM从入门到精通(基于传感器的闭环控制仿真)

 11 months ago
source link: https://blog.csdn.net/feixiaoxing/article/details/133695295
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们对底盘做了控制,对传感器数据也进行了读取,但是目前为止还没有做过一个完整的ros仿真程序。在这仿真中,有必要既涉及传感器,也涉及底盘控制。所以,这里做一个简单的robot绕障系统。它的基本原理很简单,就是如果没有发现障碍物,那么小车就继续向前走。一旦发现障碍物,小车开始旋转。等到旋转一定的时间之后,继续向前行走。整个处理流程虽然比较简单,但是也符合基本的嵌入式开发思路。

        把它和slam、navigation联想在一起,何尝不是这样。我们通过传感器数据,可以计算出robot的位姿。这样我们接收到任务之后,就可以让robot从A点走到B点。至于在B点做什么动作,这个完全由具体的业务场景来决定。

1、准备测试代码lidar_behavior.cpp



newCodeMoreWhite.png

2、更新CMakeLists.txt

3、编译方法

        编译也不复杂,主要就是在work space顶层输入catkin_make即可。

4、准备测试

        测试的话有两个基本条件。第一个基本条件就是构建虚拟场景,这个借助于之前的wpb_simple.launch构建的场景即可。需要启动的话,直接输入roslaunch wpr_simulation wpb_simple.launch。第二个条件,就是启动lidar_behavior。当然启动之后需要source ./devel/setup.sh一下,接着输入rosrun beginner_tutorials lidar_behavior即可。

8a21f6032db5485fbe80cc5771451a86.png

        整个过程,我们需要先观察一下。是不是机器人一开始的时候是向书柜走去,等距离达到1.5m的时候,机器人开始旋转。等转到一定程度的时候,机器人继续向前行走。如果是这种情况,那说明我们编写的代码是正确的,反之就要回去检查一下了。

        另外还有一种办法,就是检查lidar_behavior的日志。按道理来说,lidar的检测距离应该是从远到近,再到远处,最后变成无穷大才对。因为这个时候机器人的前面,已经没有阻挡物了。



newCodeMoreWhite.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK