按顺序梳理
main
main函数看起来很简单啊…
初始化节点
创建命名空间handsfree…
HF_HW_ros 初始化hf
构造函数先进行初始化:
*初始化hf_hw_
**寻找port,并初始化hflink
**处理config文件,最后设置initialize_ok_
*初始化节点处理句柄,将nh_初始化为handsfree,pub等
*设置参数
**回调队列
**机器人参数:arm,freq,底座模式等等
**初始化系统状态,x,y,z等
*注册在robothw上的硬件接口(robothw部分没仔细打开看)
进入mainloop
*创建命名空间mobile_base,并初始化
**创建回调队列并在controller中注册
**为两个队列开辟线程
*当ros::ok()时,进入mainloop
**handshake,(shaking_hands为什么要把measure_globle_coordinate发送给机器人呢?)
**读取机器人信息并发布
**更新readbuffer
**更新writebuffer并给机器人发送更新命令
*返回进行循环
结构认识
感觉代码太多了…而且上面要和ros的API交流数据,下面要通过ttyUSB0和机器人交流指令,看得想吐…
hf_hw_ros.h
*首先它包含了HF_HW一个对象hf_hw_
*定义了用于在controller中注册的xyz,cmd等,controller中的原理不是很清楚,貌似是可以将队列中的消息自动分类??
*定义读取和写入机器人消息的内联函数