根据mooc上柴长坤老师的课程整理所得,由于在做项目不涉及到运动规划,所以后半部分相对简略,有需要的同学可以拿去,过几天会附上我所做项目的ROS例子。
1. 安装ROS
这部分跟着视频来就行,留意以下几个工具
rosdep 管理工具
rosinstall 独立分开的常用命令行工具
roboware IDE (可以省去很多工作,比如,cMakelist)
二进制包与源代码包
2 工作空间
2.1
重要!理解下图是理解整个ROS开发的基础。
catkin:ROS定制的编译构建系统,是对Cmake的扩展
catkin工作空间:组织和管理功能包的文件夹
catkin_make : 建立工作空间,编译 注意:要回到工作空间,要source刷新环境
src:源代码
build: cmake&catkin缓存和中间文件(了解)
devel:目标文件(了解)
rosbuild(早期编译系统,主流已经不再使用)
package: catkin编译的基本单元,ROS软件的基本组织形式,一个可以对应多个可执行文件(节点)
CMakelists.txt:规定了catkin的编译规则,例如源文件,依赖项,目标文件
package.xml:定义package的属性 例如包名版本号等
manifext.xml(老版本)
代码文件: 脚本(shell,python) C++(头文件,源文件) 有时候src下边也可以放python
自定义通信格式:消息(msg) 服务(srv) 动作(action)
launch以及配置文件(yaml)
常用指令:
2.2
小工具 tree
roscpp,rospy,std_msgs nav_masgs等依赖
.bashrc : 加socrce
metapackage:虚包,依赖了其他软件包,如navigationg,mobeit等
stack:(老版本)软件包集
3.1 通信架构(上)
master: 节点管理器,每个node启动都要注册,并且管理着Node的通信 利用roscore启动
node: ROS的进程,pkg里的可执行文件运行的实例 利用rosnode启动
roslaunch: 启动master和多个node
初学者改别人的就可以
3.2 实例演示
观察启动的node
键盘控制机器人行进
摄像头实时画面
3.3 通讯方式
Topic:ROS中的异步通信方式 Node间通过publish-subscribe机制通信
Message:topic的数据类型,定义在.msg中,放在msg文件夹
有些类似结构体
常用命令
3.4 操作演示
info很常用
RGB加深度信息可以合成点云
4 通信架构(下)
4.1 Ser