ROS实践笔记4
自定义msg类型
msgs只是简单的文本文件,每行具有字段类型和字段名称,可以使用的字段类型有:
int8, int16, int32, int64 (或者无符号类型: uint*)
float32, float64
string
time, duration
//duration表示持续时间
other msg files
//自己创建的msg文件
variable-length array[] and fixed-length array[C]
//变长数组和定长数组
//ROS中还有一种特殊类型:Header,标头包含时间戳和ROS中常用的坐标帧信息。会经常看到msg文件的第一行具有Header标头。
文件类型为.msg
- 
编辑自定义msg
 - 
编辑配置文件
- package.xml中添加编译依赖与执行依赖
 
<build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend> <!-- exce_depend 以前对应的是 run_depend 现在非法 -->- CMakeLists.txt编辑 msg 相关配置
 
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation ) # 需要加入 message_generation,必须有 std_msgs# 配置 msg 源文件 add_message_files( FILES Person.msg )# 生成消息时依赖于 std_msgs generate_messages( DEPENDENCIES std_msgs )#执行时依赖 catkin_package( # INCLUDE_DIRS include # LIBRARIES demo02_talker_listener CATKIN_DEPENDS roscpp rospy std_msgs message_runtime # DEPENDS system_lib )编译后会在开发空间下的devel文件夹中
其中c++会生成头文件在include文件夹下
python文件在lib/python3/msg文件夹下
后续从这些文件中调用。使用自定义msg文件可能需要配置vscode
将c++头文件路径加入工作空间下的vscode目录中的c_cpp开头的.json文件中即可,位于includepath属性下。将生成的python文件路径配置进settings.json中
与默认数据类型发布与接收消息时的区别
 
c++
需要在CMakeLists.txt额外配置
c++     add_dependencies(person_talker ${PROJECT_NAME}_generate_messages_cpp)     add_dependencies(person_listener ${PROJECT_NAME}_generate_messages_cpp)     //person_talker以及person_listener都是文件名的映射     
python
配置基本没有区别
                    
                
                
            
        
浙公网安备 33010602011771号