精华内容
下载资源
问答
  • 但是,完整计算的结果表明σeff对xi的依赖,这可能是由于其精度较低而在可用数据中不容易看到。 解决了在有限的xi区域中σeff的测量问题,以获得关于双parton相关性的指示,doubleparton相关性是核子三维结构的一...
  • 论文研究-知识溢出的空间外部测度——基于空间和产业双重维度.pdf, 以知识生产函数为框架,将空间地理邻近和产业技术邻近同时引入空间计量模型,系统分析两者在空间知识...
  • 在变电站内对量测数据进行源端分析和处理,是提高电网数据准确有效解决方案。本文研究并设计实了变电站双重状态估计功能,充分利用站内多源冗余数据和面向开关网络模型,首先基于不确定推理实现对断路器位置和...
  • 在自建红外数据集上对模型的有效性进行验证,实验表明,生成的目标图像在真实性和多样性等各方面均取得了较高的评价结果。将随机生成的目标图像作为小数据集的补充,可有效改善训练数据匮乏的问题,提高红外成像系统识别...
  • 由于可以从多粒度、多层次的角度对名词型和数值型属性并存的混合数据进行有效处理,邻域多粒度粗糙集模型受到了广泛关注.为了有效降低属性约简计算过程中的迭代...并通过理论分析与实例对比验证了算法的有效性和优越性.
  • 为了从多粒度、多层次的角度有效处理名义型属性和数值型属性并存的混合数据, 首先基于不同的属性集序列和不同的邻域半径构建双重粒化准则, 建立基于双重粒化准则的邻域... 实例分析验证了所提出模型和算法的有效性.</p>
  • 数值模拟发现,对于因果参数估计,双重群组套索估计的经验功效接近理论值,而预测套索回归则存在较大的功效偏差.对教育生产函数的案例研究发现,该方法可以有效地从多个备选控制变量中选出正确的控制变量,仅有一...
  • 深度卷积神经网络可有效地应用于大容量图像信息隐写,然而其稳健研究却鲜有报道。双重生成式对抗网络(DGANS)模型对深度学习框架应用于图像隐写时,针对小幅度几何变换攻击进行了优化设计,从而提高模型的稳健...
  • 论文研究-随机跳变广义双指数分布下的双重跳跃扩散模型及应用.pdf, ...最后,利用金融危机期间我国主要三种金属期货价格的三月连 续数据进行实证,结果也进一步表明新模型的可行性、有效性与优越性.
  • 在两个数据集上进行的实验结果表明,该方法具有令人满意的检测精度,在机内压缩中的准确率超过96,并且没有误报,且块大小为512×512。该方法具有通用。 它可以应用于多重压缩检测,并且对于不同的相机外压缩源...
  • 用于人体姿势估计的深度双重连续网络(CVPR2021) 介绍 这是用于人体姿势估计的深度双重连续网络的官方代码。 在复杂情况下的多帧人体姿势估计具有挑战。 尽管最新的人体关节检测器已经... 我们的方法在大型基准数据
  • 所提出的分类方法在具有40个白细胞类别的显微图像数据集上进行测试,在测试过程中,其top-1准确达到84.21%,top-5准确达到99.44%。 并且在皮肤镜图像数据集上的实验表明,我们的方法在多种成像方式上都具有...
  • 在推荐系统中,在矩阵分解中利用文本信息来减轻数据稀疏的问题已经做出了许多努力。 最近,一些工作已经探索了神经网络,以对文本项内容进行深入的了解,并通过生成更准确的项潜在模型获得了令人印象深刻的效果。 ...
  • 目的:图像的中文描述结合了计算机视觉和自然语言处理的两个方向。 它是人工智能算法中多模式和跨域问题的典型代表。 图像中文描述模型需要为每个给定的测试... 结论:本文提出的方法是有效的,并且在基准模型的基础
  • 人员重新识别旨在匹配来自不同位置的不同摄像机视图中的行人图像。 这是一个具有挑战的智能... 我们对三个具有挑战的人员重新识别数据集VIPeR,GRID和CUHK 01进行了广泛的实验,结果表明DR-KISS实现了最新的性能。
  • 在本文中,我们试图证明双重希格斯生产(DHP)可以非常有效地揭示这种隐藏的第四代产品的存在。 尽管SM中的DHP横截面很小,但第四代显着增强了DHP横截面。 我们对DHP横截面对模型参数的依赖进行了详细的分析,...
  • 该方案利用一次一密的双重加密机制,多资源节点在加/解密时采用不同的密钥,从而有效抵抗明/密文攻击、捕获攻击以及中间人攻击。同时,基于隐私同态技术进行数据加密,使得聚合数据时无需解密,保证了数据机密和用户的...
  • 针对现有固定、无差别采集策略在变压器...仿真实验结果表明,该变压器数据采集方法可在保证采集数据质量的同时减少数据采集量,有效提高数据采集效率与灵活,从而为变压器在线监测与故障诊断等研究提供有效数据保障。
  • 针对无线传感器网络(WSN)数据传输的特点,提出了一种WSN下虚拟多路径逐跳的数据源认证方案。...方案能够保证数据的机密和完整,并且能够有效地抵御捕获节点的攻击,在计算量和通信量上具有较高的效率。
  • 算法利用三维模型的贴图与拓扑坐标空间双重嵌入隐秘信息,有效增强了算法的顽健。实验分析表明,含密三维模型的不可见、顽健以及抗分析均有提升,可以实现不同类型载体冗余空间的备份隐藏嵌入,为复杂环境下...
  • 无论你编写什么样的网页程序,都需要对用户的数据进行验证,以确数据有效性和完整性。 ASP.NET MVC3允许你采用一种被称之为“数据注释”的方式来进行数据验证,这种验证包含了客户端浏览器 和服务器端的双重验证...

    无论你编写什么样的网页程序,都需要对用户的数据进行验证,以确数据的有效性和完整性。

    ASP.NET MVC3允许你采用一种被称之为“数据注释”的方式来进行数据验证,这种验证包含了客户端浏览器

    和服务器端的双重验证。或许你会问为什么要进行两次验证?首先,客户端验证能够直接响应客户,减少了服务

    器压力的同时还提高了用户体验,但是你永远不能信任来自客户端的信息(用户可以关闭浏览器的脚本功能,

    让你的js验证彻底不起作用),所以服务器端验证也是必须的。如下图所示:

    image_thumb4

    1,常规验证(必填字段、字符串长度、正则表达式验证、范围验证<数值、日期>)

    先看一个添加界面的反馈的错误信息

    image_thumb2

    实体类代码如下:

    /// <summary>
    /// 员工信息
    /// </summary>
    public class StaffInfo
    {
        public virtual int StaffInfoId { get; set; }
    
        [Required]
        [Display(Name = "登录账号")]
        public virtual string LogID { get; set; }
    
        [StringLength(10, MinimumLength = 4, ErrorMessage = "{0}的长度必须大于{2}个字符并小于{1}个字符")]
        [Display(Name = "密码")]
        public virtual string LogPassword { get; set; }
    
        [StringLength(10, ErrorMessage = "{0}的长度不能大于{1}个字符")]
        [Display(Name = "姓名")]
        public virtual string RealName { get; set; }
    
        [Display(Name = "出生日期")]
        //[Range(typeof(DateTime), "2011-12-31", "1950-1-1", ErrorMessage = "{0}的范围是{1}到{2}")]
        public virtual DateTime Birthday { get; set; }
    
        [RegularExpression(@"\d{17}[\d|X]|\d{15}", ErrorMessage = "{0}的格式不正确")]
        [Display(Name = "身份证号码")]
        public virtual string IdentityNo { get; set; }
    
        [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", ErrorMessage = "{0}的格式不正确")]
        [Display(Name = "邮箱")]
        public virtual string Email { get; set; }
    
        [Display(Name = "逻辑删除标识")]
        public virtual int IsLogicDelete { get; set; }
    }
    

    其中,Required代表必填字段,

    StringLength代表字符串长度,

    RegularExpression代表正则表达式验证

    Range代表范围验证<整数、浮点数、日期>

    这4中验证方式可以满足我们常见的验证要求。

    使用常规验证请引入命名空间:

    using System.ComponentModel.DataAnnotations;
    

    下面我们来验证一下MVC是否进行了客户端和服务器端的双重验证,

    首先,我们关闭IE浏览器的脚本功能。

    菜单->Internet选项,打开如下界面所示:

    image_thumb5

    单击“自定义级别…”按钮,弹出如下界面: 找到“脚本”->“活动脚本”,选择“禁用”,“确定”。

    image_thumb7

    在看看我们呢禁用脚本后的界面,由于禁用了脚本,连界面的样式都发生了变化,

    但是服务器端还是验证了所有数据并返回 了错误信息,如下图所示:

    image_thumb11

    我们可以看到状态栏上,客户端发送请求的过程

    image_thumb12

    2,附加验证(服务器端Json验证、比较验证)

    使用附加验证请引入命名空间:

    using System.Web.Mvc
    

      为了演示这两个扩展的验证方法,我们新建一个实体类:

    public class StaffInfoEx
    {
        public virtual int StaffInfoExId { get; set; }
    
        [Required]
        //其中StaffInfoEx是控制器的名称,CheckLogId是验证方法
        [Remote("CheckLogId", "StaffInfoEx", ErrorMessage = "登录账号已经被占用,请改用其他账号")]
        [Display(Name = "登录账号")]
        public virtual string LogID { get; set; }
    
        [StringLength(10, MinimumLength = 4, ErrorMessage = "{0}的长度必须大于{2}个字符并小于{1}个字符")]
        [Display(Name = "密码")]
        public virtual string LogPassword { get; set; }
    
        [Display(Name = "确认密码")]
        [Compare("LogPassword", ErrorMessage = "密码必须一致")]
        public virtual string LogPasswordConfirm { get; set; }
    
        [Display(Name = "姓名")]
        public virtual string RealName { get; set; }
    }
    

    这里请注意确保Remote声明的控制器名称、验证方法名称拼写正确,否则会导致Create按钮没有响应。

    2.1 Remote,服务器端Json验证

    image_thumb17

    请修改URL为:http://localhost:XXXX/staffinfoex。正如实体类中声明的一样,

    我们只需要控制类StaffInfoExController中添加如下Json方法就行:

          //验证登录账号是否已经被占用
            public JsonResult CheckLogId(string logid)
            {
                var result = db.StaffInfoEx.Count(u => u.LogID == logid) == 0;
                return Json(result, JsonRequestBehavior.AllowGet);
            }
    

    当登录账号字段失去焦点时,会自动调用服务器端json方法验证账号的使用情况。

    也就是说Remote声明并没有采用客户端验证,而是直接进行了异步的服务器端验证。

    因为像是登录账号这类信息,你没法在客户端进行验证,除非你把所有的登录账号都

    发送到客户端。

    2.2 Compare,比较验证

    image_thumb15

    只是在实体类中进行了简单的声明,就可以很好的实现类似密码确认的功能,

    ASP.NET MVC真的是太给力了。

      [Display(Name = "确认密码")]
      [Compare("LogPassword", ErrorMessage = "密码必须一致")]
      public virtual string LogPasswordConfirm { get; set; }
    
    

    3,数据库约束验证

    此外我们还能使用各种数据库约束验证来保证数据的有效性和完整性。

    如果不希望用户使用123456这样的过于简单的密码,我们可以使用check约束

    来实现:

    ALTER TABLE staffinfoes WITH NOCHECK 
    ADD CONSTRAINT chk_logPassword
    CHECK (logPassword NOT IN('123','123123','123456'))
    

    其中,staffinfoes是表名称,chk_logPassword是约束名称,logPassword是列名称。

    先在我们来添加一个StaffInfo,密码为123456,看看我们的程序会出现什么情况?

    image_thumb9

    错误信息:

    INSERT 语句与 CHECK 约束"chk_logPassword"冲突。

    该冲突发生于数据库"BingoMvc3DataAnnotations",表"dbo.StaffInfoes", column  'LogPassword'。 语句已终止。

    最后,我们总结一下这三种数据验证方式

    1)客户端脚本验证,使用javascript等脚本进行验证,但是这种验证可以轻易的被屏蔽。但是它却能够

    提供最好用户体验。

    2)服务器端验证,需要回发给服务器验证,可以确保数据在客户端活动脚本被禁用时依然进行数据

    证。缺点是增加了服务器压力。

    3)数据库约束验证,这是一种特殊解决办法,比如网站在运行过程中你没法更新网站。所有的压力

    都在数据库上,过多的约束会影响网站的响应速度。

    此外,ASP.NET MVC的数据验证还可以自由的扩展,以满足不同情况的需求,

    自定义数据验证下次再讲。

    原文地址:http://www.cnblogs.com/BingoLee/archive/2011/12/23/2298822.html

    展开全文
  • 无论你编写什么样的网页程序,都需要对用户的数据进行验证,以确数据有效性和完整性。 ASP.NET MVC3允许你采用一种被称之为“数据注释”的方式来进行数据验证,这种验证包含了客户端浏览器 和服务器端的双重验证...

    http://www.cnblogs.com/BingoLee/archive/2011/12/23/2298822.html

    前言:

    无论你编写什么样的网页程序,都需要对用户的数据进行验证,以确数据的有效性和完整性。

    ASP.NET MVC3允许你采用一种被称之为“数据注释”的方式来进行数据验证,这种验证包含了客户端浏览器

    和服务器端的双重验证。或许你会问为什么要进行两次验证?首先,客户端验证能够直接响应客户,减少了服务

    器压力的同时还提高了用户体验,但是你永远不能信任来自客户端的信息(用户可以关闭浏览器的脚本功能,

    让你的js验证彻底不起作用),所以服务器端验证也是必须的。如下图所示:

     

    image_thumb4

     

    1,常规验证(必填字段、字符串长度、正则表达式验证、范围验证<数值、日期>)

    先看一个添加界面的反馈的错误信息

    image_thumb2

     

     

    实体类代码如下:

    /// <summary>
    /// 员工信息
    /// </summary>
    public class StaffInfo
    {
        public virtual int StaffInfoId { get; set; }
    
        [Required]
        [Display(Name = "登录账号")]
        public virtual string LogID { get; set; }
    
        [StringLength(10, MinimumLength = 4, ErrorMessage = "{0}的长度必须大于{2}个字符并小于{1}个字符")]
        [Display(Name = "密码")]
        public virtual string LogPassword { get; set; }
    
        [StringLength(10, ErrorMessage = "{0}的长度不能大于{1}个字符")]
        [Display(Name = "姓名")]
        public virtual string RealName { get; set; }
    
        [Display(Name = "出生日期")]
        //[Range(typeof(DateTime), "2011-12-31", "1950-1-1", ErrorMessage = "{0}的范围是{1}到{2}")]
        public virtual DateTime Birthday { get; set; }
    
        [RegularExpression(@"\d{17}[\d|X]|\d{15}", ErrorMessage = "{0}的格式不正确")]
        [Display(Name = "身份证号码")]
        public virtual string IdentityNo { get; set; }
    
        [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", ErrorMessage = "{0}的格式不正确")]
        [Display(Name = "邮箱")]
        public virtual string Email { get; set; }
    
        [Display(Name = "逻辑删除标识")]
        public virtual int IsLogicDelete { get; set; }
    }
    

    其中,Required代表必填字段,

    StringLength代表字符串长度,

    RegularExpression代表正则表达式验证

    Range代表范围验证<整数、浮点数、日期>

    这4中验证方式可以满足我们常见的验证要求。

    使用常规验证请引入命名空间:

    using System.ComponentModel.DataAnnotations;
    

     

    下面我们来验证一下MVC是否进行了客户端和服务器端的双重验证,

    首先,我们关闭IE浏览器的脚本功能。

    菜单->Internet选项,打开如下界面所示:

     

    image_thumb5

     

    单击“自定义级别…”按钮,弹出如下界面:
    找到“脚本”->“活动脚本”,选择“禁用”,“确定”。

     

    image_thumb7

     

    在看看我们呢禁用脚本后的界面,由于禁用了脚本,连界面的样式都发生了变化,

    但是服务器端还是验证了所有数据并返回 了错误信息,如下图所示:

     

    image_thumb11

     

    我们可以看到状态栏上,客户端发送请求的过程

     

    image_thumb12

     

    2,附加验证(服务器端Json验证、比较验证)

    使用附加验证请引入命名空间:

    using System.Web.Mvc
    

      为了演示这两个扩展的验证方法,我们新建一个实体类:

    public class StaffInfoEx
    {
        public virtual int StaffInfoExId { get; set; }
    
        [Required]
        //其中StaffInfoEx是控制器的名称,CheckLogId是验证方法
        [Remote("CheckLogId", "StaffInfoEx", ErrorMessage = "登录账号已经被占用,请改用其他账号")]
        [Display(Name = "登录账号")]
        public virtual string LogID { get; set; }
    
        [StringLength(10, MinimumLength = 4, ErrorMessage = "{0}的长度必须大于{2}个字符并小于{1}个字符")]
        [Display(Name = "密码")]
        public virtual string LogPassword { get; set; }
    
        [Display(Name = "确认密码")]
        [Compare("LogPassword", ErrorMessage = "密码必须一致")]
        public virtual string LogPasswordConfirm { get; set; }
    
        [Display(Name = "姓名")]
        public virtual string RealName { get; set; }
    }
    

    这里请注意确保Remote声明的控制器名称、验证方法名称拼写正确,否则会导致Create按钮没有响应。

     

    2.1 Remote,服务器端Json验证

     

    image_thumb17

    请修改URL为:http://localhost:XXXX/staffinfoex。正如实体类中声明的一样,

    我们只需要控制类StaffInfoExController中添加如下Json方法就行:

     

          //验证登录账号是否已经被占用
            public JsonResult CheckLogId(string logid)
            {
                var result = db.StaffInfoEx.Count(u => u.LogID == logid) == 0;
                return Json(result, JsonRequestBehavior.AllowGet);
            }
    

     

    当登录账号字段失去焦点时,会自动调用服务器端json方法验证账号的使用情况。

    也就是说Remote声明并没有采用客户端验证,而是直接进行了异步的服务器端验证。

    因为像是登录账号这类信息,你没法在客户端进行验证,除非你把所有的登录账号都

    发送到客户端。

     

    2.2 Compare,比较验证

     

    image_thumb15

     

    只是在实体类中进行了简单的声明,就可以很好的实现类似密码确认的功能,

    ASP.NET MVC真的是太给力了。

     

      [Display(Name = "确认密码")]
      [Compare("LogPassword", ErrorMessage = "密码必须一致")]
      public virtual string LogPasswordConfirm { get; set; }
    
    

    3,数据库约束验证

    此外我们还能使用各种数据库约束验证来保证数据的有效性和完整性。

    如果不希望用户使用123456这样的过于简单的密码,我们可以使用check约束

    来实现:

     

    ALTER TABLE staffinfoes WITH NOCHECK 
    ADD CONSTRAINT chk_logPassword
    CHECK (logPassword NOT IN('123','123123','123456'))
    

     

    其中,staffinfoes是表名称,chk_logPassword是约束名称,logPassword是列名称。

    先在我们来添加一个StaffInfo,密码为123456,看看我们的程序会出现什么情况?

    image_thumb9

    错误信息:

    INSERT 语句与 CHECK 约束"chk_logPassword"冲突。

    该冲突发生于数据库"BingoMvc3DataAnnotations",表"dbo.StaffInfoes", column 'LogPassword'。
    语句已终止。

     

    最后,我们总结一下这三种数据验证方式

    1)客户端脚本验证,使用javascript等脚本进行验证,但是这种验证可以轻易的被屏蔽。但是它却能够

    提供最好用户体验。

    2)服务器端验证,需要回发给服务器验证,可以确保数据在客户端活动脚本被禁用时依然进行数据

    验证。缺点是增加了服务器压力。

    3)数据库约束验证,这是一种特殊解决办法,比如网站在运行过程中你没法更新网站。所有的压力

    都在数据库上,过多的约束会影响网站的响应速度。

     

    此外,ASP.NET MVC的数据验证还可以自由的扩展,以满足不同情况的需求,

    自定义数据验证下次再讲。

    展开全文
  • 有效范围为 100 米,其耗电低 (~8W)、重量轻(830克)、占用空间少(直径约为 103 毫米 x 72 毫米)以及双重回传功能使得其成为无人机以及其他移动装置的理想选择。Velodyne 的 LiDAR Puck 激光雷达支持 16 个通道、...

    Velodyne VLP-16激光雷达数据分析

    Velodyne VLP-16激光雷达保持了 Velodyne 在 LiDAR 中的突破性重要功能:实时收发数据、360 度全覆盖、3D 距离测量以及校准反射测量。有效范围为 100 米,其耗电低 (~8W)、重量轻(830克)、占用空间少(直径约为 103 毫米 x 72 毫米)以及双重回传功能使得其成为无人机以及其他移动装置的理想选择。Velodyne 的 LiDAR Puck 激光雷达支持 16 个通道、~300,000 点/秒、360°水平视场角以及 30° 垂直视场角(以及 +/-15°上下的可调范围)。Velodyne LiDAR Puck 激光雷达没有可视旋转件,这使得它可以高度灵活地适应要求严苛的环境(IP67 防护等级)。

    传感器:

    校准反射之后的 TOF 距离测量

    16 通道

    测量距离远达 100 米

    度:+/-3 厘米(常规)

    双重回传

    视场角(垂直):30°(+15° 至 -15°)

    角分辨率(垂直):2°

    视场角(垂直/方位角):360°

    角分辨率(水平/方位角):0.1° - 0.4°

    旋转速率:5 - 20 Hz

    集成有 Web 服务器,可方便地进行监控和配置

    激光:1 级 - 人眼安全

    波长:903nm

    机械/电器/运转:

    耗电量:8 W(常规)

    工作电压:9 - 32 V 直流电(含接口盒以及稳压电源)

    重量:830克(不含线缆)

    尺寸:103毫米(直径) x 72 毫米(高度)

    冲击力度:振幅:500 m/sec2,时长:11 msec

    振动频率:5 Hz 至 2000 Hz,3G rms

    防护标准:IP67

    工作温度:-10° 至 +60°C

    存储温度:-40° 至 +105°C

    输出:

    高达 30 万点/秒

    100 Mbps 以太网连接

    UDP 数据包包含

    - 距离

    - 校准反射强度

    - 旋转角度

    - 同步时间戳(μs 分辨率)

    来自 GPS Receiver 的 $GPRMC NMEA 语句(不含 GPS)
    在这里插入图片描述
    VLP-16型号雷达具有在垂直方向上16线的激光束,激光雷达在采集三维数据时,每一步的旋转(旋转频率可设定频率不同旋转的步进角度不同)可在空间上采集16个点的三维数据。在垂直方向上的视角范围为-15度到+15度,每个激光束对应的角度分别为如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    截取一部分雷达的数据包如下所示:
    在这里插入图片描述
    左图:数据包前一部分 右图:数据包后一部分

    依据上图数据包的最左边为00000h表示行标识,左图第一行画红线部分FFEE为数据包的开头标识,E063十六进制两字节标识当前选择角度,B6072A三字节前两字节B607标识雷达激光的探测距离信息,2A表示激光反射强度。右图画红线部分最后面六个字节表示数据帧的时间戳和雷达信息参数,其中6D69940F表示时间戳而3722表示雷达的参数信息。
    在这里插入图片描述
    1、旋转角度值的计算
    例如上图第一个数据包的旋转角度为0xE0、0x63
    a、反转两个字节变成十六进制63E0
    b、把63E0变成无符号的十进制为25568
    c、再把25568处于100.0得到255.68,那么得到的值255.68就是当前的旋转角度值
    2、16线激光分别测得的距离
    例如上一个图第一个数据包第一个激光线的距离,其值为B6072A
    a、B6072A其中B607为距离2A为反射强度,首先反转两个距离的字节变成07B6
    b、把07B6变成无符号的十进制为1974
    c、该型号雷达的分辨率为2.0mm,所以激光束测得的距离为1974

    • 2mm = 3948mm
      d、3948mm转化为米等于3.948m
      3、获得帧的时间戳和雷达型号参数
      例如上一个图最后六个字节的数据6D69940F3722
      a、前四个字节的数据为时间戳为6D69940F,然后反转顺序0F94696D
      b、0F94696D无符号十进制的值为261384557,单位为us
      c、把261384557除以1000000可获得当前的时间(单位:秒)
      d、后两个字节3722表示雷达的型号和参数,具体的意义如下图所示:
      4、把角度和距离信息转化为三维坐标XYZ值,如下图所示:
      在这里插入图片描述
      其中R的值为激光雷达测得的与障碍物的直线距离,该值为上述第2点测得的值,其中垂直角度ω可通过查表方法获得,每个激光束对应的角度ω是固定的本文第一张图所示,而α则有第1点测得的旋转角度值。已知旋转角度α、垂直角度ω和R通过图中所述的公式即可求得XYZ值。
      在这里插入图片描述
      4、把角度和距离信息转化为三维坐标XYZ值,如下图所示:
      在这里插入图片描述
      其中R的值为激光雷达测得的与障碍物的直线距离,该值为上述第2点测得的值,其中垂直角度ω可通过查表方法获得,每个激光束对应的角度ω是固定的本文第一张图所示,而α则有第1点测得的旋转角度值。已知旋转角度α、垂直角度ω和R通过图中所述的公式即可求得XYZ值。
    展开全文
  • 为了有效运行并允许成员国整合其现有系统,该系统需要详细的语义和格式协议,以便这些系统在OOP系统的范围内进行交互和交换数据(证据)。 数据语义,格式和质量 工作包4-数据语义,格式和质量(WP4)将基于作为...
  • 提供有效数据处理接口,通过迭代器一次处理一个记录的大型数据集,可以使用生成器来实现。 导入为跨多个连接的大规模导入提供了高效的CPU绑定数据处理。 具有功能,可防止网络间歇故障。 提供导入后,例如和...
  • Velodyne VLP-16激光雷达数据分析Velodyne VLP-16激光雷达保持了 Velodyne 在 LiDAR 中的突破重要功能:实时收发数据、360 度全覆盖、3D 距离测量以及校准反射测量。有效范围为 100 米,其耗电低 (~8W)、重量轻...

    Velodyne VLP-16激光雷达数据分析

    Velodyne VLP-16激光雷达保持了 Velodyne 在 LiDAR 中的突破性重要功能:实时收发数据、360 度全覆盖、3D 距离测量以及校准反射测量。有效范围为 100 米,其耗电低 (~8W)、重量轻(830克)、占用空间少(直径约为 103 毫米 x 72 毫米)以及双重回传功能使得其成为无人机以及其他移动装置的理想选择。Velodyne 的 LiDAR Puck 激光雷达支持 16 个通道、~300,000 点/秒、360°水平视场角以及 30° 垂直视场角(以及 +/-15°上下的可调范围)。Velodyne LiDAR Puck 激光雷达没有可视旋转件,这使得它可以高度灵活地适应要求严苛的环境(IP67 防护等级)。

    传感器:

      校准反射之后的 TOF 距离测量

    16 通道

      测量距离远达 100 米

      度:+/-3 厘米(常规)

      双重回传

      视场角(垂直):30°(+15° 至 -15°)

      角分辨率(垂直):2°

      视场角(垂直/方位角):360°

      角分辨率(水平/方位角):0.1° - 0.4°

      旋转速率:5 - 20 Hz

      集成有 Web 服务器,可方便地进行监控和配置

    激光:

    1 级 - 人眼安全

      波长:903 nm

      机械/电器/运转:

      耗电量:8 W(常规)

      工作电压:9 - 32 V 直流电(含接口盒以及稳压电源)

      重量:830 克(不含线缆)

      尺寸:103 毫米(直径) x 72 毫米(高度)

      冲击力度:振幅:500 m/sec2,时长:11 msec

      振动频率:5 Hz 至 2000 Hz,3G rms

      防护标准:IP67

      工作温度:-10° 至 +60°C

      存储温度:-40° 至 +105°C

    输出:

      高达 30 万点/秒

    100 Mbps 以太网连接

    UDP 数据包包含

    - 距离

    - 校准反射强度

    - 旋转角度

    - 同步时间戳(μs 分辨率)

      来自 GPS Receiver 的 $GPRMC NMEA 语句(不含 GPS)

    5ed080d8f263cf3a0af7a557c6f3aae4.png

    VLP-16型号雷达具有在垂直方向上16线的激光束,激光雷达在采集三维数据时,每一步的旋转(旋转频率可设定频率不同旋转的步进角度不同)可在空间上采集16个点的三维数据。在垂直方向上的视角范围为-15度到+15度,每个激光束对应的角度分别为如下图所示:

    817cf4c1c146d57da5a0be4ee99385ae.png

    1eccc2602f2cce7a3fabe224b657c983.png

    317badd1372dd373268ba9a4ebf1679d.png

    7727cb17520d17e9fe8fddca614855a0.png

    截取一部分雷达的数据包如下所示:

    dd7a115d7394c9b48d3340e2273762d8.png

    左图:数据包前一部分 右图:数据包后一部分

    依据上图数据包的最左边为00000h表示行标识,左图第一行画红线部分FFEE为数据包的开头标识,E063十六进制两字节标识当前选择角度,B6072A三字节前两字节B607标识雷达激光的探测距离信息,2A表示激光反射强度。右图画红线部分最后面六个字节表示数据帧的时间戳和雷达信息参数,其中6D69940F表示时间戳而3722表示雷达的参数信息。

    29158eb440a59391abaee721032b1af8.png

    1、旋转角度值的计算

    例如上图第一个数据包的旋转角度为0xE0、0x63

    a、反转两个字节变成十六进制63E0

    b、把63E0变成无符号的十进制为25568

    c、再把25568处于100.0得到255.68,那么得到的值255.68就是当前的旋转角度值

    2、16线激光分别测得的距离

    例如上一个图第一个数据包第一个激光线的距离,其值为B6072A

    a、B6072A其中B607为距离2A为反射强度,首先反转两个距离的字节变成07B6

    b、把07B6变成无符号的十进制为1974

    c、该型号雷达的分辨率为2.0mm,所以激光束测得的距离为1974 * 2mm = 3948mm

    d、3948mm转化为米等于3.948m

    3、获得帧的时间戳和雷达型号参数

    例如上一个图最后六个字节的数据6D69940F3722

    a、前四个字节的数据为时间戳为6D69940F,然后反转顺序0F94696D

    b、0F94696D无符号十进制的值为261384557,单位为us

    c、把261384557除以1000000可获得当前的时间(单位:秒)

    d、后两个字节3722表示雷达的型号和参数,具体的意义如下图所示:

    6888752cbe98f4c644da08cb5cf4b8c9.png

    4337bb5f809dd7478cc877cdbb044c52.png

    4、把角度和距离信息转化为三维坐标XYZ值,如下图所示:

    6fbfcfb9ea0a9dd55abd64d363d78ab3.png

    其中R的值为激光雷达测得的与障碍物的直线距离,该值为上述第2点测得的值,其中垂直角度ω可通过查表方法获得,每个激光束对应的角度ω是固定的本文第一张图所示,而α则有第1点测得的旋转角度值。已知旋转角度α、垂直角度ω和R通过图中所述的公式即可求得XYZ值。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 170
精华内容 68
热门标签
关键字:

双重数据有效性