ROS机器人操作系统为机器人软件开发所设计的电脑操作系统架构,起源于斯坦福大学人工智能实验室。 其中ROS的发行版本:Melodic Morenia,适用平台:Ubuntu Bionic(18.04)。现将本课程中常见释义总结如下:
- ROS的构成:基于TCP/IP的分布式通信机制、开发工具、应用功能、生态功能。特点:点对点设计、多语言支持、精简与集成、开源且免费。
- opt:提供一个可供选择的应用程序安装目录,通常ROS也是安装在这下面。
- Sodo命令:使用sodo命令来执行管理任务。
- 终端快捷键《ctrl+alt+t》
- Python是一种解释型、弱类型、面向对象、动态数据类型的高级程序设计语言
- 变量与数据类型:numbers(数字)、string(字符串)、list(列表)、tuple(元组)、和Dictionary(字典)
- 类与对象:类名、属性、方法
- ROS的起源:2007年斯坦福大学人工智能实验室的STAIR项目与机器人技术公司Willow Garage的个人机器人项目之间的合作。
- ROS系统架构一般有三个部分: (1)文件系统级——描述了程序文件在硬盘上是如何组织的,ROS的内部结构、文件结构和核心文件都在这一层; (2)计算图集——说明了程序的运行方式,即进程与进程、进程与系统之间的通信; (3)开源社区级——描述了开发者之间是如何共享知识、算法和代码的。
- (开源社区级(文件系统级(计算图级)))
- 功能包的创建与编译:创建功能包:cd ~/catkin_ws/src catkin_create_pkg_ ch5_tutorials std_msgs rospy roscpp
编译功能包:cd ~/catkin_ws/ catkin_make source devel/setup.bash
12.执行上述命令后,src文件下就会出现文件夹ch5_tutorials,该文件夹下至少包括CMakeLists.txt和package.xml两个文件
13.GDB调试器:是linux系统下一种常见的程序调试工具
14.RViz是ROS提供的三维可视化工具,主要用于机器人、传感器以及算法的可视化。
15.工作空间分为源文件空间(src)、编译空间(build)、开发空间(devel)
16.激光雷达传感器:通过向探测目标大发射激光束,将从目标反射回来的目标回波信号与发射信号进行比较,计算出目标的距离、方向、高度、速度、姿态和形状的相关信息,能够实现对目标的探测、识别和跟踪。其按功能可分为激光测距雷达、激光测速雷达和激光成像雷达;按工作介质可分为固体激光雷达、气体激光雷达和半导体激光雷达;按线数可分为单线激光雷达和多线激光雷达;按扫描方式可分为MEMS型激光雷达、Flash型激光雷达和相控阵激光雷达。
17.calib3d:该模块主要用于实现相机标定和三维重建等功能,具体包括物体姿态估计、基本多视角几何算法、单立体相机标定和三维信息重建等。Highgui:该模块包含与操作系统、文件系统和相机等硬件交互的函数,通过highgui模块能够方便的实现媒体数据的输入/输出、图像和视频的编码/解码等功能。
18.机器人模型描述格式(URDF);Link(连杆)和Joint(关节)
19.机器人仿真环境(Gazebo):三维物理仿真平台,用户界面主要由场景窗口、面板、工具栏(上工具栏和下工具栏)和菜单栏
20.turtlebot3_bringup:主要包含Turtlebot3和传感器的驱动、启动文件。
·turtlebot3_description:管理Turtlebot3的描述文件,包括burger、waffle和waffle pi。
·turtlebot3_slam:主要包含 Turtlebot3定位与地图构建功能的相关文件。
·turtlebot3_navigation:主要包含 Turtlebot3 自动导航功能的相关文件。
·turtlebot3_teleop:是常用到的键盘控制机器人运动功能包。
· turtlebot3__msgs:管理Turtlebot3使用到的消息文件。
·turtlebot3_simulations:主要包含Turtlebot3仿真功能的相关文件。
21.机器人的两大关键问题:自主移动和协同工作
22.机器人驱动控制方式,第一步是为移动机器人建立运动学模型,然后求得机器人的运动学方程,最后才是代码的实现