博客摘录于:机器人操作系统(ROS)浅析–[美] Jason M. O’Kane 著–肖军浩 译
第三章 编写ROS程序
前两章的摘录,其实就是想提醒下学习ROS前期过程中可能遇到的问题以及部分困惑。
catkin_create_pkg pkg-name
其实,这个功能包创建命令没有做太多工作,它只不过创建了一个存放这个功能包的目录,并在那个目录下生成了两个配置文件。
第一个配置文件,叫做package.xml,清单文件。
第二个文件,叫做CMakeLists.txt,是一个Cmake的脚本文件,Cmake是一个符合工业标准的跨平台编译系统。这个文件包含了一系列的编译指令,包括应该生成哪种可执行文件,需要哪些源文件,以及在哪里可以找到所需的头文件和链接库。当然,这个文件表明catkin在内部使用了Cmake。
ROS包的命名遵循一个命名规范,只允许使用小写字母、数字和下划线,而且首字符必须是一个小写字母。一些ROS工具,包括catkin,不支持那些不遵循此命名规范的包。
24 geometry_msgs : : Twist msg ;
25 msg.linear . x = double ( rand ( ) ) / double (RAND_MAX) ;
26 msg.angular.z = 2* double ( rand ( ) )/double (RAND_MAX) − 1 ;
27
28 // Publish the message .
29 pub . publish ( msg ) ;
msg消息发布相关运动
ros::Subscriber
15 int main ( int argc , char ** argv ) {
16 // Initialize the ROS system and become a node .
17 ros::init ( argc , argv , " subscribe_to _pose " ) ;
18 ros::NodeHandle nh ;
19
20 // Create a subscri ber obj ect .
21 ros::Subscriber sub = nh.subscribe ( " turtle1/pose " ,1000,
22 &poseMessageReceived ) ; //CallBack;
23
24 // Let ROS take over .
25 ros::spin ( ) ;
对ROS进行消息机制的处理中,需要清晰明白的了解自己想发布和订阅的节点,或者自己定义,通过遵循ROS的机制即可,中途对msg的应用需要留意下。