智能车竞赛 —— 摄像头组别

425
1
2020年5月11日 11时36分

一、先看效果

 

 

 

二、导入地板模型

 

这个我之前的教程里面有,参考这里:

北邮智能车仿真培训(三)—— 给车舞台让它驰骋

 

只需要把my_ground_plane放到了.gazebo中那一步就可以了,那个三轮的车模不用管,这一节使用新的车模racecar!

 

三、创建工作区间

 

工程是在上一篇室外光电创意组的博客上改的,所以大家,创建工作区间这一部分可以看这篇博客:

智能车竞赛——室外光电创意组仿真之脱缰的野马

 

参考其中的创建工作区间部分!

 

四、启动仿真模型

 

4.1 启动常规赛道:

roslaunch racecar_gazebo racecar_normal_runway.launch 

 

1

 

4.2 修改车模位置

 

2

 

4.3 查看摄像头数据(勾选图示话题)

rqt_image_view

 

3

 

4.4 启动巡线脚本

cd ~/racecar_ws/src/racecar_gazebo/scripts

python findLine.py

 

5

 

左边的图像框是HSV过滤的二值化图片,这里色相环的参数没怎么调就像噪点一样,不过没啥影响,图片中间有一个圆形,那是表示当前算法计算的跑道中心。

 

4.5 监视误差

rqt_plot /err/data

 

5

 

五、代码讲解

 

5.1 修改HSV参数:

lower_yellow = numpy.array([ 0, 0, 221])
upper_yellow = numpy.array([180, 30, 255])

 

p7

 

HSV参数参考:

 

5

 

5.2 修改处理图片的高度

 

这是图片处理的有效宽度也是显示图片的范围,适当的修改可以选择合适的前瞻距离。

search_top = h/4 + 100
search_bot = h

 

p8

 

5.3 修改方向环的PID参数

 

这里我就写了简单的用KP控制,同时速度定速

err = cx - w/2
self.ack.drive.speed = 0.5
angle = -float(err) / 25
max_angle = 0.6
if angle > max_angle :
angle = max_angle
elif angle < -max_angle:
angle = -max_angle

self.ack.drive.steering_angle = angle
self.cmd_vel_pub.publish(self.ack)

 

p20

 

5.4 修改最大转向角

max_angle = 0.6
if angle > max_angle :
angle = max_angle
elif angle < -max_angle:
angle = -max_angle

 

x修改max_angle的值即可

 

2020-04-27_13-19

 

六、模型参数讲解

 

6.1 摄像头的俯仰角

gedit ~/racecar_ws/src/racecar_description/urdf/racecar.xacro

 

修改图中231行0.2那个参数

 

2020-04-27_13-10

 

6.2 修改摄像头高度

gedit ~/racecar_ws/src/racecar_description/urdf/racecar.xacro

 

修改图中231行0.1那个参数

 

2020-04-27_13-10

 

七、修改可视化观察数据

 

代码中已经写好了观察err值的代码如下图,大家可以自己参考着加入想观察的数据,观察多个可以用命令:

rqt_plot /err/data /sin/data ...

 

2020-04-27_13-21

 

2020-04-27_13-22

 

发表评论

后才能评论

评论列表(1条)

  • 布剪刀石头 2020年5月11日 上午11:45

    HSV过滤的白色的v_low从221改成100效果更好