当前位置: 首页 > news >正文

视频网站开发源码网站怎么做登录模块

视频网站开发源码,网站怎么做登录模块,中国进入全国紧急状态,织梦cms零基础做网站之前遇到过“镭神32线激光雷达ROS下运行fromRosMsg()报错 Failed to find match for field “intensity“ 问题”, 当时确定了是镭神C32雷达缺少相应字段,并记录博客【学习记录】镭神32线激光雷达ROS下运行fromRosMsg()报错 Failed to find match for fi…

之前遇到过“镭神32线激光雷达ROS下运行fromRosMsg()报错 Failed to find match for field “intensity“ 问题”,
当时确定了是镭神C32雷达缺少相应字段,并记录博客【学习记录】镭神32线激光雷达ROS下运行fromRosMsg()报错 Failed to find match for field “intensity“ 问题。

这次写了一个ros的节点代码,接受原始雷达数据,并转化为相应格式。
完整代码:https://github.com/LarryDong/lslidar_PointXYZ2PointXYZIR
说明:是另写了一个节点,接受雷达发出的原始数据,再赋予ring字段的信息,然后再发布带有这个字段的点云。
但原始并没有包括intensity字段,这个信息是丢失的,所以intensity我就瞎补了一个0,至少保证了格式正确。

基本原理

计算每个点对应的角度,看距离激光雷达定义的哪条ring最接近。
如何判断最接近?计算定义的两条ring平均值,如果在左右两个平均值之间,则认为是这个ring。

在这里插入图片描述
由于镭神32线雷达有两种角度模式,左边这种均匀分布,直接将角度近似取整就可以,比较简单。但右侧这种不均匀分布的,就需要按照手册给出的角度信息去解算到底属于哪根。

代码说明

首先列出雷达定义的角度,并计算与上一个/下一个线束的平均值。

const vector<float> g_ring_angle = {-18, -15, -12, -10, -8, -7, -6, -5,-4, -3.33, -3, -2.66, -2.33, -2, -1.66, -1.33,-1, -0.66, -0.33, 0, 0.33, 0.66, 1, 1.33, 1.66, 2, 3, 4, 6, 8, 11, 14};   // ring angles defined by leishen
vector<float> g_angle_range;                                  // define a range between each ring angle.void initRingAngleRange(void){// calculate angle rangeassert(RING_NUMBER==g_ring_angle.size());g_angle_range.push_back(-100);            // assign a very large valuefor(int i=0; i<RING_NUMBER-1; ++i){float middle_value = (g_ring_angle[i] + g_ring_angle[i + 1]) / 2;   // calculate the average value between two ring.g_angle_range.push_back(middle_value);}g_angle_range.push_back(100);
}

然后计算实际角度,并赋予线束id即可:

void lidarCallback(const sensor_msgs::PointCloud2ConstPtr &msg_pc){pcl::PointCloud<pcl::PointXYZ> pc;pcl::PointCloud<myPointXYZIR> pc_new;pcl::fromROSMsg(*msg_pc, pc);// convert to PointXYZIR.pc_new.points.reserve(pc.points.size());myPointXYZIR pt_new;for(const pcl::PointXYZ& p : pc.points){float angle = atan(p.z / sqrt(p.x * p.x + p.y * p.y)) * 180 / M_PI;if(std::isnan(angle))           // remove nan point.continue;// int scanID = int(angle + 17);           // 对于1°分辨率的雷达,直接用这行指令就可以了,不需要计算下面的不均匀分布角度。// for 0.33 degree mode.int scanID = -1;for(int i=0; i<RING_NUMBER; ++i){if(angle > g_angle_range[i] && angle <= g_angle_range[i+1]){scanID = i;break;}}pt_new.x = p.x;pt_new.y = p.y;pt_new.z = p.z;pt_new.intensity = 0;       // intensity is not used.pt_new.ring = scanID;pc_new.points.push_back(pt_new);}sensor_msgs::PointCloud2 msg_pc_new;pcl::toROSMsg(pc_new, msg_pc_new);msg_pc_new.header.frame_id = "laser_link";msg_pc_new.header.stamp = msg_pc->header.stamp;g_pub_pc.publish(msg_pc_new);ROS_INFO("Published new pointcloud.");}

踩坑记录

  • 一开始以为直接将雷达设置为1°模式扫描就可以了,结果发现精度不正常。问了客服才知道1°模式和0.33°模式不能调整。所以无奈,只能再重写这个转换代码。但还行,算的挺对。
  • rviz中PointCloud2的intensity选项,点击后会出现一个channel,还包括XYZ以及intensity等,一开始没搞明白啥意思,说明如下:
  • About RViz: If you open a PointCloud2 display and select the “Intensity” color transformer, you can select a channel to display. This doesn’t have to be intensity, it can actually be any channel of your point cloud. If you leave “autocompute intensity bounds” checked, it will compute the min + max for each point cloud separately and scale the color spectrum to that range. If you disable the check box, you can enter min + max intensity manually (good if the min/max varies a lot between point clouds and you want the colors to be consistent between point clouds).

http://www.yayakq.cn/news/299320/

相关文章:

  • 卢镇seo网站优化排名网站做微信支付宝支付
  • 家用电器网站建设网站免费正能量直接进入app
  • 网站打不开dns修改吗固定链接 wordpress
  • 北京网站建设seo优化上海汽车网站建设
  • 所见即所得的网站开发软件怎么做网站运营
  • 邯郸哪儿做网站好asp.net4.5网站开发
  • 虚拟会员商城网站分销韦博在上面做课件的网站叫什么
  • 个人网站免费制作平台网络营销推广的5种方法
  • 网站网络推广运营公司建网站需要多少钱
  • wordpress直接上传视频网站网站建设是要考虑什么东西
  • 网站策划主题福永网站制作
  • 网站到底是域名需要备案还是空间wordpress早期版本
  • 哪里建设网站不会被封深圳广告标识设计公司
  • 讯响模板网站wordpress的源代码
  • 南宁网站建设是什么浦口区网站建设经验丰富
  • 岑溪网站开发工作室网站前端开发培训西安
  • 为网站优势如何做网商商城的网站
  • app 网站开发公司电话四川住房和城乡建设厅网站咨询电话
  • 新网站百度搜不到企业年金交了有好处吗
  • 网站投稿系统怎么做成都网站推广营销微信
  • 建网站有什么要求西安网站改版
  • 北京商会网站建设专做蔬菜水果的网站
  • 做代练去什么网站安全吗怎么去掉wordpress加载动画
  • 网站做竞价经常会被攻击吗网站推广包括哪些
  • 南京网站制作公司南京乐识专心食品饮料网站建设
  • 淘宝做导航网站好免费金融发布网站模板下载
  • 北京网站搭建服务百度小程序异常怎么办
  • 网站极速备案专门做搜索种子的网站
  • 建设网站技术公司企业网页制作公司青岛
  • 高端建设响应式网站第三方开放平台