ROS学习笔记(十四)—— 简单srv&client

NEW 1

$ cd ~/catkin_ws

$ source ./devel/setup.bash

$ roscd test

NEW FILE ~/catkin_ws/src/test/scripts/add_two_ints_server.py

$ chmod +x scripts/add_two_ints_server.py

$ roscd test

NEW FILE ~/catkin_ws/src/test/scripts/add_two_ints_client.py

$ chmod +x scripts/add_two_ints_client.py

$ cd ~/catkin_ws

$ catkin_make

$ roscore

NEW 2

$ cd ~/catkin_ws

 

$ source ./devel/setup.bash

$ roscd test

$ rosrun test add_two_ints_server.py

NEW 3

$ cd ~/catkin_ws

$ source ./devel/setup.bash

 

$ roscd test

 

$ rosrun test add_two_ints_client.py

注意事项1: 编辑器采用spyder,不要采用gedit,有可能出现BUG

说明1:

from test.srv import *

 

return AddTwoIntsResponse(req.a * req.b)

 

 

第一句中的test.srv所指向的不是一个ros包,而是一个python包这个包的位置是在~/catkin_ws/devel/lib/python2.7/dist-packages/test/srv文件夹

在编写了.srv文件,并catkin_make 以后,就会在该~/catkin_ws/devel/lib/python2.7/dist-packages/test/文件夹下生成一个的库

第二句中的AddTwoIntsResponse就是这些文件中定义的一个class

add_two_ints_server.py,就是一个节点,这个节点作为一个可执行文件,可以调用在之前编译好那些的库

那么,作为python源代码的add_two_ints_client.py也许根本不需要catkin_make,经过实验,成功.

 

 

 

 

posted @ 2017-01-19 14:59  Genrobot  阅读(458)  评论(0编辑  收藏  举报