在ros中有一套参数系统可以直接写到launch文件中,这样非常方便,不需要编译就能直接用,这对于c++来说非常的有好,这里记录一下如何使用。
主要步骤如下:
首先初始化节点
使用nodehandle进行管理,然后通过param管理参数
其他操作…
是不是非常简单,以下是一个例子:
#include <ros/ros.h>
#include <sensor_msgs/PointCloud2.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/io/pdc_io.h>
int main(int argc, char** argv){
ros::init(argc, argv, "UandBdetect");
ros::NodeHandle nh;
std::string file_path;
double wheel_base;
nh.param<std::string>("pcd_file_path", file_path, "/home/cyun/test_ws/p.pcd";
nh.param<double>("wheel_base", wheel_base, 1.75);
ros::Publisher pcl_pub = nh.advertise<sensor_msgs::PointCloud2>("pcl_output", 1);
pcl::PointCloud<pcl::PointXYZ> cloud;
snesor_msgs::PointCloud2 output;
//....
ROS_INFO("OK");
ros::spin();
return 0;
还是很简单的,然后使用launch进行启动:
<launch>
<param name="pcd_file_path" value="/home/cyun/test_ws/src/pcd2pgm/map/finalCloud.pcd" />
<param name="wheel_base" value=3 />
<node name="read_psc" pkg="read_pcd" type="read_pcd" output="screen">
</node>
最近遇到了两次rviz显示时看起来掉帧的问题:一个是录制的相机的数据,另一个是点云聚类时显示有掉帧。
可能得原因如下:
针对这两种问题,也许是显示的问题:
rviz接收数据的更新频率也是可以调的,如果显示rviz有掉帧,可以调一下rviz的接收帧率???待验证——但是打开不就是30hz吗?

ROS参数系统使用及rviz掉帧问题
博客介绍了ROS中参数系统的使用,可将参数直接写进launch文件,无需编译,对C++友好。还记录了使用步骤,如初始化节点、用nodehandle和param管理参数等。此外,提到rviz显示掉帧问题,包括相机数据录制和点云聚类显示时,还探讨了可能原因及调节接收帧率的解决思路。
1179

被折叠的 条评论
为什么被折叠?



