一,ROS核心概念
(1)计算图(Computation Graph)
节点(Nodes):功能模块,每个节点相互独立,可以使用不同编程语言,可分布式运行在不同的主机。(节点在系统中的名称必须是唯一的)
主节点(Master):节点管理器,为节点提供命名和注册服务,帮助节点之间建立联系,提供参数服务器。
话题(Topic):节点间用来传输数据的重要总线。使用发布/订阅模型,同一个话题的订阅者或发布者可以不唯一。(异步通信机制)
消息(massage):话题数据
服务(Service):C/S模型,客户端发送请求数据,服务器完成处理后返回应答数据。(同步通信机制)
参数(Parameter):全局字典(类似于全局变量,但参数适合存储静态,非二进制的配置参数)。
功能包(Package)ROS软件中的基本单元,包含节点源码,配置文件,数据定义等。
二,ROS命令行工具
常用命令:
rostopic
rosservice
rosnode
rosparam
rosmsg
rossrv
实践过程没有截图,忘记该命令的使用方法时,tab两下查看帮助。
rosbag record -a -o cmd_record //话题记录
rosbag play cmd_record.bag //话题复现
三,工作空间和功能包
src:代码空间(Source Space)
build:编译空间(Build Space)
devel:开发空间(Development Space)
install:安装空间(Install Space)
//创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
//编译工作空间
cd ~/catkin_ws/
catkin_make
//设置环境变量
source devel/setup.bash
//检查环境变量
echo $ROS_PACKAGE_PATH
//创建功能包
cd ~/catkin_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp //参数作用为继承std_msgs rospy roscpp
//编译功能包
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
四,后续学习计划
(1)继续学习ROS(发现b站有入门视频【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程_哔哩哔哩_bilibili),快速刷完古月居视频后,考虑转战b站。
(2)根据后续需要,学习Python。
(3)学习目标是实现小车定位和地图绘制
五,参考资料
(1)ROS WIKI
(2)ROS入门21讲-古月居