ROSPY与主要接口

203 阅读1分钟

image.png 编译型:cpp编译之前转化为二进制,同时进行优化,
脚本:py编译之时转化为二进制,不优化
算法快:cpp
功能性:py
ROS中python代码的组织方式:

image.png

导入模块即导入__init__.py文件包

常用API

Node相关API

Topic相关API

publisher类API

Subscribe类API

service类相关API

ServiceProxy类(client)API

时钟相关API

  1. 用python写一个节点间收发消息的topic_demo

  2. 创建一个自定义gps类型的消息 gps.msg:
    string state//代码状态 float32 x float32 y

  3. 自定义消息的生成:

image.png 修改package.xml <build_depend>message_generation</build_depend> <build_depend>message_runtime</build_depend> image.png 3. 一个节点发布模拟的gps信息(消息发布节点)

image.png CMakeLists.txt修改

add_executable(talker1 src/talker1.cpp)#生成可执行文件 talker
add_dependencies(talker1 mytopic_generate_messages_cpp)
#表明在编译 talker 前,必须先编译完成自定义消息
#必须添加 add_dependencies,否则找不到自定义的 msg 产生的头文件
#表明在编译 talker 前,必须先编译完成自定义消息
target_link_libraries(talker1 ${catkin_LIBRARIES})#链接
add_executable(talker2 src/talker2.cpp)#生成可执行文件 talker
add_dependencies(talker2 mytopic_generate_messages_cpp)
#表明在编译 talker 前,必须先编译完成自定义消息
#必须添加 add_dependencies,否则找不到自定义的 msg 产生的头文件
#表明在编译 talker 前,必须先编译完成自定义消息
13
target_link_libraries(talker2 ${catkin_LIBRARIES})#链接
add_executable(listener1 src/listener1.cpp)#生成可执行文件 listener
add_dependencies(listener1 mytopic_generate_messages_cpp)
target_link_libraries(listener1 ${catkin_LIBRARIES})#链接
add_executable(listener2 src/listener2.cpp)#生成可执行文件 listener
add_dependencies(listener2 mytopic_generate_messages_cpp)
target_link_libraries(listener2 ${catkin_LIBRARIES})#链接

  1. 另一个接受、计算距离原点的距离。 启发: 拿到一个项目,想清楚该项目要实现什么功能,以什么思路去做

image.png

创建服务请求节点(service):

image.png

创建服务请求节点(client):

image.png