| by msbeta | No comments

Python-在文件中搜索字符串并获取目标字符串所在的行号

1、检查文件中是否包含目标字符串

为了检测文件中是否包含目标字符串,我们定义了check_if_string_in_file()函数,该函数的参数为:目标文件名和目标字符串。在函数中迭代获取文件的每一行,然后检测该行是否包含目标字符串,如果包含目标字符串,函数返回True;如果文件中所有行都不包含目标字符串,则返回False。

假设存在文本文件”sample.txt”,文件内容为:

在文件中检测是否存在”is”字符串。

上述代码的执行结果:

由于文件包含字符串”is”,所以函数check_if_string_in_file()返回True。

[……]

继续阅读

Read More
| by msbeta | No comments

Python-建议在with语句(with statement)中执行文件操作

1、为什么要在with语句中执行文件操作

常见的python文件读写流程如下:首先使用open()函数打开文件,open()函数返回文件对象(file object),然后使用该文件对象(file object)进行文件读写,最后在程序结束前执行文件关闭(close()函数)文件。

示例程序如下:

当python程序的同级目录存在sample.txt文件时,程序正常执行,打开文件成功,并打印sample.txt文件中的内容:

当文件打开失败(如文件不存在时等),程序可能会输出以下错误信息:

上面的代码在大部分场景下可以正常工作,但是在一些场景下会有问题[……]

继续阅读

Read More
| by msbeta | No comments

MIT自动驾驶与深度学习公开课(3)-卷积神经网络与自动驾驶中端到端学习(一)

MIT 2017年开设的关于深度学习和自动驾驶的课程,课程共分为5个部分,这是第三部分的内容-Convolutional Neural Networks And End-To-End Learning Of The Full Driving Task。

本文来源于MIT深度学习与自动驾驶公开课-MIT 6.S094: Convolutional Neural Networ[……]

继续阅读

Read More
| by msbeta | No comments

MIT自动驾驶与深度学习公开课(3)-卷积神经网络与自动驾驶中端到端学习(二)

MIT 2017年开设的关于深度学习和自动驾驶的课程,课程共分为5个部分,这是第三部分的内容-Convolutional Neural Networks And End-To-End Learning Of The Full Driving Task。

本文来源于MIT深度学习与自动驾驶公开课-MIT 6.S094: End To End Learni[……]

继续阅读

Read More
| by msbeta | No comments

自动驾驶中的车辆运动学模型

要控制车辆的运动,首先要对车辆的运动建立数字化模型,模型建立的越准确,对车辆运动的描述越准确,对车辆的跟踪控制的效果就越好。除了真实反映车辆特性外,建立的模型也应该尽可能的简单易用。自行车模型(Bicycle Model)是一种常见的车辆运动学模型。

自行车模型(Bicycle Model)的建立基于如下假设:

1)不考虑车辆在垂直方向(Z轴方向)的运动,即假设车辆的运动是一个二维平面上的运动。

2) 假设车辆左右侧轮胎在任意时刻都拥有相同的转向角度和转速;这样车辆的左右两个轮胎的运动可以合并为一个轮胎来描述。

3)假设车辆行驶速度变化缓慢,忽略前后轴载荷的转移。

[……]

继续阅读

Read More
| by msbeta | No comments

Python中逐行读取文件的几种方法

假设在Python脚本的同一个目录下有个文本文件”data.txt”,文件内容为:

She walks in beauty
like the night
Of cloudless climes and starry skies
And all that’s best of dark and bright
Meet in her aspect and her eyes

1.使用readlines()逐行读取文件(针对小文件)

readlines()可以一次性的将文件的所有内容读入内存,然后将文件内容按行分割,返回文件中所有行的list;每行的末尾都会包含一个换行符。

当然这种方式[……]

继续阅读

Read More
| by msbeta | No comments

MIT自动驾驶与深度学习公开课(2)-深度强化学习与运动规划

MIT 2017年开设的关于深度学习和自动驾驶的课程,课程共分为五个部分,这是第二部分的内容,主要介绍强化学习的基本知识以及在路径规划和自动驾驶等方面的应用。

本文来源于MIT深度学习与自动驾驶公开课-MIT 6.S094: Deep Reinforcement Learning For[……]

继续阅读

Read More
| by msbeta | No comments

自动驾驶路径规划器-Lattice Planner详解

Lattice算法隶属于规划模块。规划模块以预测模块、routing模块、高精地图和定位的结果作为输入,通过算法,输出一条平稳、舒适、安全的轨迹,交给控制模块去执行。我们可以看到,规划模块在Apollo中是一个承上启下的重要模块。
Lattice算法隶属于规划模块。规划模块以预测模块、routing模块、高精地图和定位的结果作为输入,通过算法,输出一条平稳、舒适、安全的轨迹,交给控制模块去执行。我们可以看到,规划模块在Apollo中是一个承上启下的重要模块。
一个合格规划算法,必须满足几个条件。首先,必须能够使自动驾驶汽车到达目的地;其次,必须符合交规;第三,能够避免碰撞;[......]

继续阅读

Read More
| by msbeta | No comments

Python的切片(Slice)操作以及各种简写模式总结

切片(Slice)是一个从list、tuple、字符串中取出部分元素的操作。利用切片(Slice)可以很灵活的存取、修改要素,一行代码就可以实现很多行循环才能完成的操作。

通常一个切片操作要提供三个参数 [start_index:  stop_index:  step],三个参数之间以分割,start_index是切片的开始位置,stop_index是切片的结束位置(不包括结束位置),step是步长,默认值是1,>0 是从左往右走,<0是从右往左走。

切片(Slice)操作的基本表达式如下:

切片(Slice)让人眼花缭乱的使用主要是各种各样的省略简写方式。

[……]

继续阅读

Read More
| by msbeta | No comments

自动驾驶定位算法(十五)基于多传感器融合的状态估计(muti-Sensors Fusion)

1、传感器(Sensor)选取

自动驾驶系统中用于状态估计(State Estimation)的常用传感器包括GPS/GNSS、IMU、激光雷达(Lidar)。

状态估计(State Estimation)选用传感器需要考虑哪些因素:

1)误差不相关性。也就是说,用于Sensor Fusion的传感器其中单个传感器(Sensor Measurement)测量失败,不会导致其它传感器(Sensor)由于相同的原因而同时失败。

2)传感器的相互补充性。 比如IMU可以填充GPS两次定位间隔期间的定位输出,用于平滑GPS/GNSS的定位结果;GPS为IMU提供初值,消除I[……]

继续阅读

Read More