3. ROS编程入门—Wall Following
来源:互联网 发布:运动keep是什么软件 编辑:程序博客网 时间:2024/06/06 00:16
Introduction:
本次设计的任务是让机器人沿着墙按照固定距离走
算法
第一步是找到墙,利用激光雷达发现最近障碍物的角度和距离。
根据墙的位置保持固定的距离和固定的角度,可以用两个PID控制器来实现这两个参量的控制。
输入输出处理
程序的输入是激光雷达的数据,输出的是控制Twist消息
每一个激光点对应的实际角度:
φ :第i 个元素对应的角度
i :向量元素的索引
l :向量长度
θ : 角度增量
如果在整个ranges向量空间中寻找最小值,有可能让机器人在狭窄的空间中跟随对面的墙(译者:不是很懂)。为了确保不会发生这种状况,在合理的一般范围内查找最小值。查找的索引起始和终止值可以通过下面的式子调整:
方向PD控制器
计算偏差:
可以通过PD控制器控制机器人和墙壁保持期望的距离:
假定
比例角度控制器
为了控制墙的最近的角度,仅仅需要一个简单的比例控制器就好。误差计算:
比例控制器:
角速度:
线速度
如果机器人按照固定的速度行进有可能来不及转弯,或者把速度限定的很低。可以通过最近距离来决定速度进了就慢一点,然后就可以有足够的时间转弯了。
当走到墙终点时候可能有另一个问题。机器人有可能及时旋转也有可能掉头沿着另一面墙行进。你可以通过判断最近障碍物的角度是否>1.75 来减小线速度,解决这个问题。
code
Experiments
Stageros simulator
- 3. ROS编程入门—Wall Following
- 6. ROS编程入门--路径跟随(Trajectory following)
- 4. ROS编程入门--PID控制器
- 5. ROS编程入门--航迹推算(dead reckoning)
- ROS入门2: ROS文件系统
- ros入门第二篇——RVIZ
- ROS入门入门
- ros入门第一篇
- ROS_Kinetic_03 ROS入门向导
- ROS入门记录 [1]
- ROS入门记录 [2]
- ROS入门记录 [3]
- ROS入门记录 [4]
- ROS如何入门
- ROS学习入门
- poj1113——Wall
- wall
- Wall
- Recyclerview 单行 多行 listView GridView
- bzoj3224 Tyvj 1728 普通平衡树 ( 替罪羊树)
- Wannafly挑战赛4 C割草机 模拟
- android 懒人教程:一步步开发android studio 模板插件
- Android调用摄像头取像
- 3. ROS编程入门—Wall Following
- Top-down design——解决问题的基本法
- android最新版关于.so文件的制作封装与跨平台引用
- NIO详解 五
- 【学习C++】学习C++ -> 构造函数与析构函数
- 爬带登陆名和密码以及验证码的网站
- MyBatis之全局配置文件(Configuration XML)之引入外部配置文件(properties)
- 关于Java异常处理
- hdu-1873-看病要排队