Client Library
- 提供ROS编程的库,类似于API,比API层级更高
- e.g.,建立node,发布消息,调用服务
常见的客户端库包括:
- roscpp —— C++,执行效率高
- rospy —— Python,开发效率高
- roslisp
- ...
5.1 roscpp
ros提供的用c++来和ros的topic、service、param、timer交互的接口,参见官网手册https://docs.ros.org/api/roscpp/html/
roscpp is a ROS client implementation in C++.
ros::init() #解析ros参数,为当前node命名
ros::NodeHandle Class #类
e.g.,
ros::NodeHandle nh;
ros::Publisher pwb=nh.advertise(...);
pwb.publish(msg);
ros::master Namespace #命名空间,不是类,调用函数没有对象,不需要创建对象
e.g.,
ros::master::check(); #检查master是否启动
ros::service Namespace
ros::names Namespace
自行查阅官方文档
5.2 topic_demo
功能描述:两个node,一个发布模拟的gps消息(格式自定义,包括坐标和工作状态),另一个接受并处理该信息(计算到原点的距离)
步骤:
- package
- msg
- talker.cpp
- listener.cpp
- CMakeList.txt&package.xml
5.3 service_demo
功能描述:两个node,一个发布请求(格式自定义),另一个接收处理该信息,并返回信息。
步骤:
- package
- srv
- server.cpp
- client.cpp
- CMakeList.txt&package.xml
5.4 param_demo
两种API:
- ros::param
- ros::NodeHandle
网友评论