编译型:cpp编译之前转化为二进制,同时进行优化,
脚本:py编译之时转化为二进制,不优化
算法快:cpp
功能性:py
ROS中python代码的组织方式:
导入模块即导入__init__.py文件包
常用API
Node相关API
Topic相关API
publisher类API
Subscribe类API
service类相关API
ServiceProxy类(client)API
时钟相关API
-
用python写一个节点间收发消息的topic_demo
-
创建一个自定义gps类型的消息 gps.msg:
string state//代码状态 float32 x float32 y -
自定义消息的生成:
修改package.xml
<build_depend>message_generation</build_depend> <build_depend>message_runtime</build_depend>
3. 一个节点发布模拟的gps信息(消息发布节点)
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})#链接
- 另一个接受、计算距离原点的距离。 启发: 拿到一个项目,想清楚该项目要实现什么功能,以什么思路去做