由于按照wiki上面的教程都操作了一便,为了之后方便查看,把步骤和命令整理如下,可能有表述不完整的地方,以参考wiki教程为准。
http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv
设计的是一个A+B=sum的例子
命令行中:
roscd start_pkg (这一步记得source一下devel/setup.bash文件)
mkdir msg
echo “int64 num” > msg/Num.msg
然后用gedit打开新建的Num.msg文件并写入
string first_name
string last_name
uint8 age
uint32 score
然后修改package.xml(start_pkg包下的)
接下来修改CMakeLists.txt(也是start_pkg包下的)
修改完成后保存,最后就是显示的工作了
rosmsg show Num
同理,建立srv的过程和msg的差不多。同样是建立一个文件夹和相应的服务文件,然后修改package.xml和CMakeLists.txt(这一步主要是修改CMakeLists.txt文件了,package.xml和建立msg内容一样),最后是显示。
roscd start_pkg
mkdir srv
roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv
(这里的操作是roscp [package_name] [file_to_copy_path] [copy_path]拷贝包中的文件到目的路径下)
接下来修改CMakeLists.txt
最后是显示
rossrv show AddTwoInts
大功告成~
但是还是对这两个文件的功能不太了解。知道ros的指令可以直接生成c++的代码,好高级。
引用wiki教程
Any .msg file in the msg directory will generate code for use in all supported languages.
The C++ message header file will be generated in ~/catkin_ws/devel/include/beginner_tutorials/. The Python script will be created in ~/catkin_ws/devel/lib/python2.7/dist-packages/beginner_tutorials/msg.
The lisp file appears in ~/catkin_ws/devel/share/common-lisp/ros/beginner_tutorials/msg/.