本帖最后由 zenithchen 于 2018-2-5 18:13 编辑
主要用到了四种类型指针:
1. RenderPanel2. VisualizationManager 3. Displays 4. Displayspanel
关键函数:
1.VisualizationManager::createDisplay (const QString & class_lookup_name,const QString & name,bool enabled ),用来创建rviz内已有的display 2.Displays的subProp()获取子属性后,用setValue()设置属性 3.Display::setTopic (const QString & topic, const QString & datatype ) 4.VisualizationManager::setFixedFrame(const QString & frame),用于改变Global Frame下FixedFrame类型。
关键点:
1.datatype不是直接用displays的类型,e.g.显示点云用“sensor_msgs/PointCloud2”,这些属性可以通过代码显示在Terminal中查看 2.直接显示PointCloud2时,Global Frame下FixedFrame类型必须为:world。代码中要先创建displaysPanel,再修改FixedFrame类型!这样便无须手动更改displays_panel的设置 3.想要利用Tutorials中的markers,必须把其代码中的markers.header.frame_id 改成“world”,polygon亦然。
参考网址:
1.http://docs.ros.org/kinetic/api/rviz/html/c++/namespacerviz.html
2.https://github.com/ros-visualiza ... etic-devel/src/rviz
3.http://wiki.ros.org/rviz/Tutorials |