tensorflow训练cnn网络实现避障与导航(一)

来源:互联网 发布:php sql select count 编辑:程序博客网 时间:2024/06/06 13:25

    暑期过半,简单总结一下之前一个月内的工作。

    暑期主要做了这样几项工作:

    1/ 利用V-rep搭建了一个仿真环境,环境具有的功能有:

           A/ 可以对其中物体进行动力学仿真,例如小车的行进、转弯等

           B/ 可以对环境进行搭建,利用方块、圆柱等基本物体搭建出简单的外部环境

           C/ 可以仿真一些传感器,如相机、Velodyne激光雷达(16线、64线)、HoKuYo单线激光等

           D/ 可以与ROS进行交互,将仿真过程中的数据传给ROS,同时可以从ROS中接收控制信息等


    2/ 利用CNN训练了一个可以根据 小车当前位置/ 激光雷达数据/ 目标点位置 三个输入来进行控制策略规划的控制器,具体步骤如下:

         A/ 在Vrep中编写程序,使其可以对外发出小车的位置信息、面向角度信息、传感器信息、目标点信息等信息

         B/ 利用roscpp编写程序,接收Vrep中发来的消息,并将其以一定的协议保存在文档中

         C/ 利用LUA脚本编写程序 使Vrep可以在获得全局信息下生成路径,并让小车以一定的控制方式在这一路径下运动,当小车到达目标点后,V-rep会自动生成下一个目标点

         D/ 对(B)中传来的数据在python中进行解析,对每一批数据分离出激光数据、小车数据、目标点数据、专家控制信息等数据,并分批读取

         E/ 利用tensorflow搭建神经网络,对D中数据进行训练,网络输入为1080维激光数据、3维小车/目标点数据、2维专家控制数据,输出为两维网络控制信息。

         F/ 利用tensorflow写一个test程序,对(E)中训练得到的网络进行测试,检测训练结果是否达标

         G/ 利用tensorflow+rospy 写一个真实的test程序,将网络输出的控制信息传入V-rep中,测试在仿真环境下能否实现用网络输出实现对小车的控制


本项目的时间进度大致为:

        7/5-7/12 利用V-rep搭建了仿真环境,可以读取激光数据。

                        学习cs229 课程,学习tensorflow 

                        阅读文献、了解他人工作


        7/13-7/20 利用tensorflow进行网络搭建,基本实现当所有信息均通过全连接的网络

                          优化网络,前端加入CNN网络,大幅减少需要优化的参数

                           对网络进行测试,发现loss不合格


         7/21-7/31 对上周的网络进行优化,优化了输入的结构

                           对上周网络中的三个bug进行了修改,使得网络输出大大提升

                           思考通过何种信息进行“记忆”而避免“惯性”







原创粉丝点击