Handsfree_hw节点 源码阅读笔记
来源:互联网 发布:国家网络空间安全学院 编辑:程序博客网 时间:2024/06/05 00:35
按顺序梳理
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中的原理不是很清楚,貌似是可以将队列中的消息自动分类??
*定义读取和写入机器人消息的内联函数,机器人定义在HF_HW中
RobotAbstract my_robot_;
只有一个机器人的定义,在hflink中机器人的参数是直接由这个机器人的定义初始化过去的,在HF_HW的构造函数中就已经初始化
HF_HW_ROS主要用来承接ros和硬件部分,在controller中接收消息,存储到my_robot_,然后,updatecommand,用不同的command设置和读取不同参数
command就属于HF_HW啦
hf_hw
*包含智能指针port和hflink
*updatecommand会按照设定好的频率调用sendcommand,并检查hflink的package行不行
*sendcommand函数会将命令和数据整理好,然后通过transport.h传给机器人
感觉hf_hw是比较主要的部分,因为它把所有的资源都用到了,ros,hflink,transpot.
hf_link
是state_machine的子类,不是特别明白为什么要命名成这样?
*根据不同的命令,mastersendcommand写入不同的参数,调用sendstruct
*setCommandAnalysis是多机协同用的么?
*它继承了state_machine的tx,rx等,在h文件中还定义了handsfreemessage,命令和Recstate的枚举
并没有很看懂hflink的交流过程…只是大概看懂了数据的流向
总结
*只看懂了大概的流程,还有类的作用等,实际运行过程中程序的先后和时间顺序控制(尤其是hflink和transport)都不是很清楚.
*感觉自己还是没有能领悟到精髓,只感觉跳来跳去…看起来很费劲…
*感觉自己差距还很大…我觉得需要拿起C++…再看看
**下一步计划,C++方面,再看看C++primerplus,看看qt;然后接着看slam,跑demo,跑跑不同的slam;
- Handsfree_hw节点 源码阅读笔记
- LZ77源码阅读笔记
- Boa 源码阅读笔记
- VNC源码阅读笔记
- osqa源码阅读笔记
- VNC源码阅读笔记
- MPlayer 源码阅读笔记
- PyEmu源码阅读笔记
- JSONModel源码阅读笔记
- JSONModel源码阅读笔记
- HSF源码阅读笔记
- memcached 源码阅读笔记
- ALLJOYN源码阅读笔记
- netmap源码阅读笔记
- ArrayList源码阅读笔记
- Flask 源码阅读笔记
- memcached 源码阅读笔记
- NASM源码阅读笔记
- React Native 第九天
- .Net MVC&&datatables.js&&bootstrap做一个界面的CRUD有多简单
- 如何使用Git Bash Here,将本地项目传到github上
- 2017 滴滴
- 配置管理之持续集成
- Handsfree_hw节点 源码阅读笔记
- oracle配置plsql,解锁scot用户
- fedora dnf 命令
- tcp三次握手
- HDU 4549 新增5_M斐波那契数列 矩阵快速幂
- 关于基于WiFi动作识别的一些简单看法
- Atcoder Grand Contest 019
- Python sys.path
- 基本数据类型&类型转换