1.#include <ros/ros.h>,只有包含了头文件,才能在程序里调用头文件里提供的库函数,头文件里包括以下功能函数:
ros::init() : 解析传入的ROS参数,从而初始化节点的名称和其他信息,一般我们ROS程序一开始都会以这种方式开始。
ros::NodeHandle : 和topic、service、param等交互的公共接口,节点的句柄(相当于51单片机里边的EA),只有有了它才可以用来创建Publisher、Subscriber以及用来对当前节点进行各种操作。
ros::master : 包含从master查询信息的函数
ros::this_node:包含查询这个进程(node)的函数
ros::service:包含查询服务的函数
ros::param:包含查询参数服务器的函数,而不需要用到NodeHandle
ros::names:包含处理ROS图资源名称的函数
ros::shutdown()手动关闭rosnode/ctrl+c
2.以下是常见的一个ROS程序的执行步骤:
#include<ros/ros.h>
int main(int argc, char** argv)
{
ros::init(argc, argv, "your_node_name");
ros::NodeHandle nh;
//....节点功能
//....
ros::spin();//用于触发topic、service的响应队列
return 0;
}
3.Topic通信
应用场景:传感器数据收发,速度控制指令的收发...
编程过程,先创建消息结构体文件,然后通过编译生成,消息头文件,之后可被节点程序引用。服务同理
ROS编程
最新推荐文章于 2024-04-23 17:18:23 发布