7.11总结

ros编程,用qt编写自己的一个节点,并发布自己的消息(消息类型想换成自己的)。

1首先,必须先配置qt,具体参考http://blog.csdn.net/dxuehui/article/details/44647861,该文章包括如何配置qt的快捷方式,打开一个已有的c++(ros)工程。

2那么,完成第一步后,如何自己创建一个qt工程并可以进行ros的一些操作呢(例如,发布节点等,因为qt可以编写ui界面,所以想尝试用qt写)?

2.1第一步,创建一个qt工程后,在×××.pro工程文件中,添加动态链接库及路径

INCLUDEPATH += /opt/ros/indigo/include
DEPENDPATH +=   /opt/ros/indigo/include
INCLUDEPATH += /home/mwy/dav/rosbook/text/include
LIBS +=  -l:/usr/lib/x86_64-linux-gnu/libpthread.so
LIBS +=  -l:/usr/lib/x86_64-linux-gnu/libboost_thread.so
LIBS +=  -l:/usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0
LIBS += -L/opt/ros/indigo/lib -lroscpp -lrospack -lpthread -lrosconsole -lrosconsole_log4cxx -lrosconsole_backend_interface -lxmlrpcpp -lroscpp_serialization -lrostime  -lcpp_common  -lroslib -ltf  -lyaml-cpp -lkdl_conversions
LIBS += -l:/opt/ros/indigo/lib/libroslib.so
ps:大家的路径可能跟我的不一样。

2.2第一步完成后,就可以添加ros的头文件了。就可以像ros wiki上发布节点了,但是如何拥有自己的消息类型呢(自己创建一个结构体当消息类型行不通)?通过百度,好像并没有多少有关在qt下创建自己的消息类型的资料,所以我就想用已有的编译包编译自己的消息类型文件(×××.msg),然后通过添加头文件的形式调用。

2.2.1 在beginner_tutorials包中创建自己的消息类型,参考http://wiki.ros.org/cn/ROS/Tutorials/CreatingMsgAndSrv

cd ~/catkin_ws/src/beginner_tutorials
mkdir msg
cd msg
gedit beginner1.msg

新建名为beginner1.msg的msg文件并打开,输入

int32 a
float32 b
保存。回到上层目录,

cd ~/catkin_ws/src/beginner_tutorials
查看 package.xml文件确保存在一下两行代码

  <build_depend>message_generation</build_depend>
  <run_depend>message_runtime</run_depend>

修改CMakeListsts.txt文件

add_message_files(
  FILES
  beginner1.msg
)
generate_messages(
DEPENDENCIES
  std_msgs)
catkin_package(
CATKIN_DEPENDS message_runtime)
编译

cd ~/catkin_ws/
catkin_make

2.2.2 此时就可以在qt的头文件中通过调用beginner_tutorials/beginner1.h 拥有自己的消息类型了。


 

猜你喜欢

转载自blog.csdn.net/u012784288/article/details/51884752