由于需要,进行这个星期学习了古月老师的21讲,讲的还是比较通透的,每个核心概念,基本模块功能都说到了。但是由于是入门的,所以,更加深入的没有说得比较透彻。
看了两三次视频,熟能生巧,有了更加深刻的理解。
然后看了ROS高级编程的书本,对其中的概念,基本命令代码,以及一些硬件接口等有了深入的认识,当然,还谈不上掌握。暂时定一下后续的学习ROS计划。step by step,learn and learn。
实验一
ubuntu安装,ROS安装
参考古月的视频可以安装。
实验二
ROS控制龟
实验三
turtlesim的节点node,topic,services的认识,以及相互之间的联系。
1/首先要用键盘控制小乌龟运动
2/然后才会产生不同的节点,以及通信
3/然后,node list ,service list ,topic list列出每个节点
用rqt_graph 列出逻辑图。
方便理解。
4/然后,用type,列出传递的参数类型的成员列表,用info列出参数的具体类型。
比如用rosservice type /spawn
会得到/spawn服务的接口类型是
turtlesim/Spawm
这个类型是有什么成员组成的?可以用
$rossrv show turtlesim/Spawm
得到下面的结果,三个横线—的上面,是输入参数,是xy坐标以及乌龟的角度,后面的是乌龟的名字。
三个横线的下面,是返回的参数。
float32 x
float32 y
float32 theta
string name
string name
然后对进行call,使用不同的服务;
使用不同的参数,如重新产生一个乌龟的代码,后面的就是产生乌龟的坐标以及名字。
$rosservice call /spawm 3 3 0.2 “turtle2”
得到新的乌龟,出现在画面上。
额外的,如果想知道当前的功能包的位置路径,等等信息,参考下面的指令
(1)找到turtlesim包的路径
得到
(2)如果要找到已经安装的某个元功能包
得到ros_comm路径
(3)要获得功能包或者功能包集合下面的文件列表
用rosls turtlesim
得到
(4)查看ROS正在使用的工作空间,用
$echo $ROS_PACKAGE_PATH
得到
实验四
自己写代码cpp,或者py
实现新建一个节点,然后在这个节点发布任务,给一个topic,乌龟节点接受到任务的数据,按照任务的数据,运动;
主要
1/新建一个工作空间
2/新建工程文件夹,然后编译catkin_make,让这个文件夹具备ROS的特性;
3/编辑cpp文件
4/放到src中,修改配置文件,什么xml等
5/编译
6/运行功能包
7/调试验证。
先熟练几遍,弄清楚每个环节的问题。
实验五
自己编写订阅的程序
实验六
熟练一下msg和srv文件。
自己建一个一个类型,然后给其他参数传递,比如数组,延时等使用
让乌龟可以先x运动,然后y运动,然后走圆圈
实验7 launch文件
自己编写launch文件,实现多节点运行,不用一个个节点驱动。
实验8 参数文件
实验9 综合任务
针对乌龟
1/产生新的乌龟,新的节点
2/两个乌龟实现不同的运动,同时运动
3/话题的具体理解
4/服务的具体理解
5/动态参数
6/launch文件
9个任务,争取3天OK .
进阶
1/熟悉可视化调试
2/3D建模和仿真
3/导航
4/使用moveit
5/使用传感器和执行
6/计算机视觉