加入循迹小车,设置好路径后运行
发现报错,小车直线行驶不跟随设置好的路径移动
观察仿真中可知小车左右中传感器并不工作全是黑色,观察报错语句
Lua runtime error: [string "CUSTOMIZATION SCRIPT LeftSensor"]:12: Invalid handle or work image not initialized. (simVision.binaryWorkImg @ 'Vision' plugin)
--> Customization script temporarily disabled.
stack traceback:
[C]: in function 'binaryWorkImg'
[string "CUSTOMIZATION SCRIPT LeftSensor"]:12: in function
--> Customization script temporarily disabled.
Lua runtime error: [string "CUSTOMIZATION SCRIPT RightSensor"]:12: Invalid handle or work image not initialized. (simVision.binaryWorkImg @ 'Vision' plugin)
--> Customization script temporarily disabled.
stack traceback:
[C]: in function 'binaryWorkImg'
[string "CUSTOMIZATION SCRIPT RightSensor"]:12: in function
--> Customization script temporarily disabled.
Lua runtime error: [string "CUSTOMIZATION SCRIPT MiddleSensor"]:12: Invalid handle or work image not initialized. (simVision.binaryWorkImg @ 'Vision' plugin)
--> Customization script temporarily disabled.
stack traceback:
[C]: in function 'binaryWorkImg'
[string "CUSTOMIZATION SCRIPT MiddleSensor"]:12: in function
--> Customization script temporarily disabled.
可知错误在simVision.binaryWorkImg函数中,他需要传入工作图像的inData.handle,错误为句柄无效或者图像未初始化,所以问题出在inData.handle和图像的初始化上,观察小车代码可知左右中传感器lua脚本全部为错误的,所以问题出在传感器脚本里
打开脚本发现句柄经过了两次初始化第一次simVision.sensorImgToWorkImg(inData.handle),作用为将传感器图像转换为工作图像又传给了inData.handle,同理simVision.workImgToSensorImg(inData.handle)作用为将工作图像转换为传感器图像又传给了inData.handle,所以到simVision.binaryWorkImg函数时使用的不是工作图像而是未初始化的传感器图像,所以我们需要将后面的simVision.workImgToSensorImg(inData.handle)语句删除掉,并且三个传感器脚本都需要删除。
这时我们再次运行仿真可以发现并没有报错了,但是我的机器人仍然没有循迹,只有在撞上轨迹时有一次停顿,观察仿真发现传感器已经都亮了,所以是其他问题
这时我发现因为我的轨迹过于垂直,小车速度太快无法垂直掉头,只需将小车移到小车幅度较小转头就可以循迹的位置上,或者修改轨迹,或者降低小车速度,即可。
至此循迹小车问题全部解决了。