1、基本介绍
ROS(Robot Operating System)是一个机器人操作系统,开始于2007,三个中长期支持版本,对应着Ubuntu的三个LTS版本如下:
ROS术语
- 主节点:ros master,对各节点进行连接
- 节点:在ROS中运行的最小处理器单元。
- 功能包:ROS的基本单元,ROS以功能包为单位进行开发元
- 功能包:具有共一目标的功能的集合
- 消息:即节点之间传输的数据都成为消息
- 话题:订阅者和发布者之间用话题进行消息的传输,通过向主节点注册相同的话题,达到发布者和订阅者对改话题的传输
- 服务:是服务客户端和服务器之间的同步双向消息的通讯,有 requist 和 respon
- 动作:是在需要像服务那样的双向请求的情况下使用的消息通信方式,是动作客户端和动作服务器之间的通讯,有 goal、respon 和 feedback。
- 参数:节点使用的参数。
基础指令
1、查看相关文件或安装包的路径使用rospack指令:rospack find [package_name],如 rospack find roscpp;
2、使用roscd指令,直接跳转到相应的路径中:
$ roscd [locationname[/subdir]]
$ pwd 如:roscd roscpp; pwd
$ roscd log 指令的使用:跳转到log 如果ros在运行某个节点的话,就会打印相应的log,如果没有运行ros的任何一个程序,则提示No active roscore
3、rosls指令的使用,查看相应的文件下有什么文件,如:rosls roscpp_tutorials
2、实际操作
1 .创建catkin_ws工作空间
- 在想要放置的目录下打开终端,输入
$mkdir -p catkin_ws/rcs;
(-p是为了当没有上层目录时自动逐层创建,如假设没有catkin_ws目录就会自动创建改目录,如有则不创建)
- 在~/catkin_ws/src目录下初始化工作空间:
$catkin_init_workspace
- 在~/catkin_ws/目录下catkin_make一下:
$catkin_make
- 设置环境变量:
$source devel/setup.bash 或者 vi ~/.bashrc中增加 source ~/catkin_ws/devel/setup.bash(前者设置环境变量需要每次都运行改指令;后者只要在bashrc文件中添加一次,以后就可以不用再添加)
- 检查环境变量:$echo $ROS_PACKAGE_PATH
2. 创建发布者Publisher节点功能包
- 创建功能包文件夹:$ catkin_create_pkg [自定义功能报名字] [功能包义来功能包,如roscpp、rospy、std_msgs、geometry_msgs、turtlesim等],如
$ catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim
- 在相应功能包的src文件夹中新建编写发布者Publisher节点文件,如下velocity_publisher.cpp文件:
“velocity_publisher.cpp”
*
* 该例程将发布turtle1/cmd_vel话题,消息类型是 geometry_msgs::Twist
*/
#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
int main(int argc, char **argv)
{
//初始化节点
ros::init(argv,argv,"velocity_publisher");
//创建节点句柄
ros::NodeHandle n;
//创建一个Publisher,发布名为 turtle1/cmd_vel的topic,消息类型为geometry_msgs::Twist,消息队列长度为10
ros::