不论是哪种传感器,超声也罢,红外也好,最终都是要经过firmware--driver然后由上层应用软件来控制。
比如避障,传统的单机控制器可能会由控制器自身进行计算。但这里以topic的形式发布出来,由应用软件来控制具体行为。
就像pid控制算法一样,在控制器中计算后直接施加给电机。这样的好处是实时性得到保障。
在qbo_arduqbo/src/lib_qbo_pyarduqbo.py 文件中,。定义了一个qbo_control_client类。其订阅了各种state,然后在各自的回调函数中将msg消息解析出来,以变量的形式存储于类的成员变量中。另外定义了一个ServiceProxy函数。用于调用test_service服务。
在CSerialController中,定义了一个advertiseService,/qbo_arduqbo/test_service qbo_testService. 该类继承于CQboduinoDriver,因此可以直接调用父函数的成员函数。