The massages which I need to record are 5 topics and 2 massege types.
I want to set them into one massege type and it is more clear to show this massges.
BUILD
1. build .msg
file
So build a /msg
folder in my package and I build my msg type Dym_Data.msg
in this folder.
I define my 5 message data, note that you should add the pkg-name/
before the massge type.
std_msgs/Float64MultiArray q_msg
std_msgs/Float64MultiArray vel_msg
std_msgs/Float64MultiArray acc_msg
std_msgs/Float64MultiArray tau_msg
std_msgs/Float64 time_msg
2. modify package.xml
add these code in package.xml
<depend>std_msgs</depend>
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
3. modify CMakeLists.txt
find_package(catkin REQUIRED COMPONENTS
std_msgs
message_generation
)
add_message_files(
FILES
Dym_Data.msg
)
generate_messages(DEPENDENCIES std_msgs)
catkin_package(
LIBRARIES franka_robot
CATKIN_DEPENDS roscpp message_runtime std_msgs
)
4. build and check your .msg
-
Run catkin_make
to rebuild your workspace and generate your .msg
.
-
Run following command rosmsg show
to check the new .msg
type.
rosmsg show franka_robot/Dym_Data
you can see:
std_msgs/Float64MultiArray q_msg
std_msgs/MultiArrayLayout layout
std_msgs/MultiArrayDimension[] dim
string label
uint32 size
uint32 stride
uint32 data_offset
float64[] data
std_msgs/Float64MultiArray vel_msg
std_msgs/MultiArrayLayout layout
std_msgs/MultiArrayDimension[] dim
string label
uint32 size
uint32 stride
uint32 data_offset
float64[] data
std_msgs/Float64MultiArray acc_msg
std_msgs/MultiArrayLayout layout
std_msgs/MultiArrayDimension[] dim
string label
uint32 size
uint32 stride
uint32 data_offset
float64[] data
std_msgs/Float64MultiArray tau_msg
std_msgs/MultiArrayLayout layout
std_msgs/MultiArrayDimension[] dim
string label
uint32 size
uint32 stride
uint32 data_offset
float64[] data
std_msgs/Float64 time_msg
float64 data
USAGE
In .cpp file
-
header <package-name/msg-name.h>
#include <franka_robot/Dym_Data.h>
franka_robot::Dym_Data dym_msg;
dym_msg.time_msg.data = (double)t.count();
dym_msg.q_msg.data = Q_arr_;
dym_msg.vel_msg.data = QDot_arr_;
dym_msg.acc_msg.data = QDDot_arr_;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)