介绍NVISTAR 的二维DTOF激光雷达 ROC 300在EHub_tx1_tx2_E100载板,TX1核心模块环境(Ubuntu18.04)下测试ROS1驱动和ROS2的驱动,打开使用RVIZ 查看点云数据,本文的前提条件是你的TX1里已经安装了ROS1版本:Melodic,ROS2版本:eloquent。
大家好,我是虎哥,从厂家那申请到了不止科技NVISTAR ROC 300雷达样品,其实有一段时间了,周末花点功夫,测试接入试用一下。这一次我也第一次尝试用ROS2 eloquent环境测试激光雷达,由于自己也不是很熟悉,边学边测试,这里也是总结一下自己的简单测试经验,分享给大家。
关于测试硬件EHub_tx1_tx2_E100载板请查看:EdgeBox_EHub_tx1_tx2_E100 开发板评测_机器人虎哥的博客-CSDN博客
目录
三、NVISTAR 点云客户端(windows版本)使用(micro-USB)
5.3 解决依赖关系(Resolve dependencies)
ROC 300 是不止技术推出的单线激光雷达产品。该雷达使用脉冲飞行时间法(Pulsed ToF)进行距离测量,其内部结构采用转镜式设计,即通过高速旋转的反射镜面将测距模块发射的不可见红外激光偏转到不同的角度,从而实现对同一水平面 300°范围内环境轮廓的扫描测量。ROC 300 每秒可输出 20K 点云数据,同时可满足客户最大 50米测距需求;采用 905nm 红外激光,配合自研信号处理算法,整机防尘防水达到 IP65,满足户外应用场景需求。

与同类产品相比,ROC 300 具有如下特点:
远距离,高精度。由于采用脉冲测距原理并着力优化光电设计,ROC 300 对相同反射率的目标具有更远的测量距离,且全量程精度都可以保证在+/-3cm 以内,非常适于大空间场景使用。
高转速,低噪声。采用反射镜式旋转扫描,转动部件仅为一面极轻的反射镜片,所以可以达到 30HZ 的高转速,最高可扩展到 50HZ,且维持极低的噪声,人耳几乎听不到。
可靠性高,通配性强。转镜式设计使雷达内部的运动部件降至最少,提高了使用寿命并大大降低了机械振动对运行的影响;此外 ROC 300 采用 micro USB 接口设计,可灵活切换 UART 和以太网口。
体积小,重量轻。雷达主体高度不超过 7.5 厘米且底座边长仅为 5 厘米,便于在空间受限的场合安装。
激光波长:905nm,class I
探测范围:0.1m~50m
重复精度:3cm
水平视场角:300°
扫描频率:10HZ~30HZ
水平角分辨率:0.18°(10HZ)~0.54°(30HZ)
抗强光:>80000LX
电源供电:5V/500mA
功耗:<2.5w
外形尺寸:50mm * 50mm * 75mm
重量:150g
防护等级:IP65
接口:micro-USB、以太网口、RS232、NPN
工作环境温度:-10℃~55℃
存储环境温度:-30℃~75℃
官网下载中心:下载中心-深圳市不止技术有限公司-深圳市不止技术有限公司


此次我主要测试其网口模块,所以让厂家配置了USB转网口的转接模块,雷达本省是micro-USB接口。



下载解压后,获得文件和使用说明:
软件是免安装版本,直接打开即可:
备注:我们测试的是网口模式
将自己电脑的IP设置到1网段
可以ping通网络转接板


配置正确,即可以看到点云数据。
这个雷达其实网口是使用转接板,将串口转为了网口,所以修改IP之类的操作,其实是修改网口转接模块的IP,所以需要一个专用工具:

首先读取参数:

修改IP:

修改IP后,需要重启转接板

可以Ping通,新的IP已经生效。
包获取,从官网下载页面可以找到。
mkdir -p ~/SensorWS/Nvistar_ws/src
cd ~/SensorWS/Nvistar_ws/
catkin_make
source devel/setup.bash
cd ~/SensorWS/Nvistar_ws/src
#将官网地址的代码包放置到这个目录解压

cd ~/SensorWS/Nvistar_ws
catkin_make --pkg nvilidar_ros
编译完成。
先确保板子链接网口对应IP也是1网段,之前雷达已经确认是1网段了。

其次就是在板子上可以ping通雷达的IP:192.168.1.100

雷达和板子之前网络链接没有问题。
1、修改launch 文件
/home/nvidia/Nvistar_ws/src/nvilidar_ros/launch/lidar.launch 脚本内容
/home/nvidia/SensorWS/Nvistar_ws/src/nvilidar_ros/launch
vim lidar.launch

<launch>
<node name="nvilidar_node" pkg="nvilidar_ros" type="nvilidar_node" output="screen" respawn="false" >
<param name="serialport_name" type="string" value="/dev/nvilidar"/>
<param name="serialport_baud" type="int" value="512000"/>
<param name="ip_addr" type="string" value="192.168.1.200"/>
<param name="lidar_udp_port" type="int" value="8100"/>
<param name="config_udp_port" type="int" value="8200"/>
<param name="frame_id" type="string" value="laser_frame"/>
<param name="resolution_fixed" type="bool" value="true"/>
<param name="auto_reconnect" type="bool" value="true"/>
<param name="reversion" type="bool" value="false"/>
<param name="inverted" type="bool" value="false"/>
<param name="angle_min" type="double" value="-180" />
<param name="angle_max" type="double" value="180" />
<param name="range_min" type="double" value="0.001" />
<param name="range_max" type="double" value="64.0" />
<param name="aim_speed" type="double" value="10.0"/>
<param name="sampling_rate" type="int" value="10"/>
<param name="sensitive" type="bool" value="false"/>
<param name="tailing_level" type="int" value="6"/>
<param name="angle_offset_change_flag" type="bool" value="false"/>
<param name="angle_offset" type="double" value="0.0" />
<param name="apd_change_flag" type="bool" value="false"/>
<param name="apd_value" type="int" value="500"/>
<param name="ignore_array_string" type="string" value="" />
<param name="filter_jump_enable" type="bool" value="true" />
<param name="filter_jump_value_min" type="int" value="3" />
<param name="filter_jump_value_max" type="int" value="50" />
</node>
<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser"
args="0.19 0.0 0.2 0.06 0.0 0.0 /base_footprint /laser_frame 40" />
</launch>
可根据你实际的硬件环境和需要,修改网口,扫描角度等参数。

2、修改nvilidar_node.cpp 文件
原始:
修改后:

上面我们改了原代码文件配置,所以需要重新编译工程
cd ~/SensorWS/Nvistar_ws
catkin_make --pkg nvilidar_ros
启动:
cd ~/SensorWS/Nvistar_ws
source devel/setup.bash
roslaunch nvilidar_ros lidar.launch
打开一个新的终端,可以查询节点信息
rosnode list -------------------------------------------------------------------------------- /base_link_to_laser /nvilidar_node /rosout rosnode info /nvilidar_node -------------------------------------------------------------------------------- Node [/nvilidar_node] Publications: * /rosout [rosgraph_msgs/Log] * /scan [sensor_msgs/LaserScan] Subscriptions: None Services: * /nvilidar_node/get_loggers * /nvilidar_node/set_logger_level contacting node http://nvidia-desktop:43281/ ... Pid: 10996 Connections: * topic: /rosout * to: /rosout * direction: outbound (38203 - 127.0.0.1:44442) [11] * transport: TCPROS
打开终端,启动雷达节点
cd ~/SensorWS/Nvistar_ws
source devel/setup.bash
roslaunch nvilidar_ros lidar.launch
打开新终端,启动rviz,在nomachine 终端桌面登录
rosrun rviz rviz
此时还没有任何信息,官方给我们提供好了rviz的配置文件,我们可以不用配置,直接打开使用。



包获取,从官网下载页面可以找到。
source /opt/ros/eloquent/setup.bash
mkdir -p ~/SensorWS/Nvistar_Ros2ws/src
cd ~/SensorWS/Nvistar_Ros2ws/
cd ~/SensorWS/Nvistar_Ros2ws/src
#将官网地址的代码包放置到这个目录解压

在构建工作区之前,您需要解决包依赖关系。可能已经拥有所有依赖项,如果不希望构建在长时间等待后因为缺少依赖项而失败,最好做法是在每次检查依赖项。
cd ~/SensorWS/Nvistar_Ros2ws/
rosdep install -i --from-path src --rosdistro eloquent -y
如果出现如下错误,继续使用之前安装的时候提示使用的小鱼一键安装。
解决错误
wget http://fishros.com/install -O fishros && . fishros

完成后继续之前的建立依赖的命令,就可以成功了。备注:我由于同时安装了ROS1和ROS2,所以后面才会多选一步。
继续建立依赖
cd ~/SensorWS/Nvistar_Ros2ws/
rosdep install -i --from-path src --rosdistro eloquent -y

cd ~/SensorWS/Nvistar_Ros2ws/
#编译
colcon build
报警先不管,可以编译通过。
#colcon build还可以带一些参数,这个做个分享: --packages-up-to 只编译指定包,其所有依赖项,但不构建整个工作区(节省时间) --symlink-install避免每次调整python脚本时都需要重新构建 --event-handlers console_direct+ 显示生成时的控制台输出(否则可以在“log”目录中找到)
编译完,记得生效,类似ROS1中的source
#执行覆盖
. install/local_setup.bash
cd ~/SensorWS/Nvistar_Ros2ws/src/nvilidar_ros2/params
vim nvilidar.yaml
原始:

修改后:
修改nvilidar_ros2_node.cpp 文件
修改后:
因为修改了代码,记得重新编译
cd ~/SensorWS/Nvistar_Ros2ws/
#编译
colcon build

有报警,可以不用管。
cd ~/SensorWS/Nvistar_Ros2ws/
#执行覆盖
. install/local_setup.bash
#启动脚本文件
ros2 launch nvilidar_ros2 nvilidar_launch.py
可以看到,程序已经起来,并且开始扫描
我们可以打开一个新的窗口,查看一下节点和话题这些基本信息
cd ~/SensorWS/Nvistar_Ros2ws/
#执行覆盖
. install/local_setup.bash
ros2 node list -------------------------------------------------------------------------------- /launch_ros_15285 /nvilidar_ros2_node /static_tf_pub_laser ros2 node info /nvilidar_ros2_node -------------------------------------------------------------------------------- /nvilidar_ros2_node Subscribers: /parameter_events: rcl_interfaces/msg/ParameterEvent Publishers: /parameter_events: rcl_interfaces/msg/ParameterEvent /rosout: rcl_interfaces/msg/Log /scan: sensor_msgs/msg/LaserScan Service Servers: /nvilidar_ros2_node/describe_parameters: rcl_interfaces/srv/DescribeParameters /nvilidar_ros2_node/get_parameter_types: rcl_interfaces/srv/GetParameterTypes /nvilidar_ros2_node/get_parameters: rcl_interfaces/srv/GetParameters /nvilidar_ros2_node/list_parameters: rcl_interfaces/srv/ListParameters /nvilidar_ros2_node/set_parameters: rcl_interfaces/srv/SetParameters /nvilidar_ros2_node/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically Service Clients: Action Servers: Action Clients:
查看点云,我们可以直接用官方已经提供好的脚本文件,直接运行节点加打开查看电云,会简单很多。记得关闭之前已经打开的节点。
nomachine 的终端中运行如下命令
cd ~/SensorWS/Nvistar_Ros2ws/
#执行覆盖
. install/local_setup.bash
#启动脚本文件
ros2 launch nvilidar_ros2 nvilidar_launch_view.py

这是我第一次完整的用ROS2 eloquent 测试一个硬件设备,所以再测试过程中,其实我自己也是翻看了很多之前的记录,发现还是一个实际操作的完成流程,更能加深自己对ROS2的理解,熟悉其操作和常用指令。
ROC 300 其ROS2和ROS1的驱动支持还是很不错了,这个必须给个好评。其次就是雷达,我支持在测试环境驱动起来,准备跑一个晚上,看看其稳定性。
这个雷达的性价比,还是很适合做教育级和商业级的机器人产品的,轻巧,尤其是USB接口的设计,可以看出来,设计师还是为实际稳定可靠使用画了心思的,给个好评。
纠错,疑问,交流: 911946883@qq.com
目录1. 研究范围定义2. 流程中台市场分析3. 厂商评估:微宏科技4. 入选证书 1. 研究范围定义近年来,随着外部市场环境快速变化、客户需求愈发多样,企业逐渐意识到,自身业务需要更加敏捷、高效,具备根据市场需求快速迭代的能力。业务流程的自动化能够帮助企业实现业务的敏捷高效,因此受到越来越多企业的关注。企业的“自动化武器库”品类丰富,包括低/零代码平台、RPA、BPM、AI等。企业可以使用多项自动化工具,但结果往往是各项自动化工具处于各自的“自动化烟囱”之中,仅能实现碎片式自动化。例如,某企业的IT团队可能在使用低代码平台、财务团队可能在使用RPA、呼叫中心则可能在使用聊天机器人。自动
从ubuntu16.04升级到ubuntu18.04后,从rails项目的根目录运行railsconsole时收到以下错误。只有控制台似乎受到影响,我可以毫无问题地启动puma服务器。RunningviaSpringpreloaderinprocess23887/home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in`require':libreadline.so.6:cannotopensharedobjectfile:Nosuchfileord
相机内参标定,相机和激光雷达联合标定一、相机标定原理1.1成像过程1.2标定详解二、相机和激光雷达联合标定2.1标定方法汇总2.2Autoware的安装与运行2.2.1安装方式2.2.2安装Autoware的依赖(Ubuntu16.04/kinetic)2.2.3编译Autoware1.创造工作空间2.下载Autoware源码3.其他依赖4.编译5.效果2.3Autoware标定激光雷达和相机的外参过程一、相机标定原理1.1成像过程现实物体在相机中的成像过程离不开世界坐标系、相机坐标系、图像坐标系以及像素坐标系,只有理解了这些才能对获取的图像进行准确的分析。成像过程:四个坐标系如下图所示:世界
如何在不重新打开文件的情况下将文件的“指针”重置为开头?(类似于C中的fseek?)例如,我有一个文件,我想为两种模式进行grep:f=open('test')=>#f.grep(/llo/)=>["Helloworld\n"]f.grep(/wo/)=>[]是否可以在不重新打开文件的情况下重置f?注意:我不是在寻找解决方法;我可以自己想一些;)。 最佳答案 使用rewind将ios定位到输入的开头,将lineno重置为零。f=File.new("testfile")f.readline#=>"Thisislineone\n"f.r
更新前一切正常。将ruby1.9.3p392与RVM和rails(3.2.12)结合使用使用MySQL5.7.16和Nginx和Unicorn日志显示LoadError:libmysqlclient.so.18:cannotopensharedobjectfile:Nosuchfileordirectory-/home/bill/apps/xxx/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.16/lib/mysql2/mysql2.so我试过:卸载/安装mysql2gem运行捆绑安装没有任何效果。更新后有人遇到这个问题吗?
我最近更新了我的系统到Ubuntu18.04LTS,从那时起,Ruby版本似乎已经更新到2.5。问题是,当尝试部署使用Capistrano的项目时,它现在会提示找不到Ruby2.3。运行rvminstall2.3时它尝试安装的版本是2.3.4,显示的第一个错误是“Errorrunning'__rvm_make-j4'”.我尝试删除RVM并再次安装,但没有解决这个问题。日志是一个巨大的文件,什么也没有告诉我。然后,我尝试使用rbenv,这也会导致错误:Installingruby-2.3.4...BUILDFAILED(Ubuntu18.04usingruby-build20180424
一、下载源代码打开终端,输入命令克隆仓库gitclonehttps://github.com/raulmur/DXSLAM.gitDXSLAM二、配置环境WehavetestedthelibraryinUbuntu16.04andUbuntu18.04,butitshouldbeeasytocompileinotherplatforms.C++11orC++0xCompilerPangolinOpenCVEigen3Dbow、Fbowandg2o(IncludedinThirdpartyfolder)tensorflow(1.12)作者提供了一个脚本build.sh来编译Thirdparty目
目录简介ROS诞生背景ROS的设计目标ROS与ROS2安装ROS1.配置ubuntu的软件和更新2.设置安装源3.设置key4.安装5.配置环境变量安装可能出现的问题安装构建依赖卸载ROS架构1.设计者2.维护者3.立足系统架构:ROS可以划分为三层ROS通信机制话题通信理论模型流程通信样例自定义消息的通信服务通信理论模型服务通信自定义srv参数服务器理论模型参数操作常用命令简介rosnoderostopicrosmsgrosservicerossrvrosparam常用API初始化话题与服务相关对象C++回旋函数C++对比时间1.时刻2.持续时间3.持续时间与时刻运算4.设置运行频率(非常常
Serverless时代已经到来!企业的技术架构,总是伴随着不断增长的数据与日趋复杂的业务持续演进。如何通过构建更易用的技术架构来聚焦在业务本身,而不必在底层基础设施的管理上投入过多的精力,是数据驱动型企业需要思考的重要议题。 ServerlessData作为云原生数据服务的下一代技术架构与“新常态”,正在推动云计算的进一步发展,并且已经成为云原生数据库、大数据分析乃至人工智能等云计算服务的重要发展趋势。Serverless所带来的不仅仅是IT技术领域的创新性飞跃,同时也是数字经济趋势下,企业实现快速发展的重要机遇。十七年持续创新全方位拥抱Serverless从2006年亚马逊云科技的第一个
1、D435i相机简介 RealSenseD435i 是一款立体视觉深度相机,如下图所示,其集成了两个红外传感器(IRStereoCamera)、一个红外激光发射器(IRProjector)和一个彩色相机(ColorCamera)。立体深度相机系统主要包括两部分:视觉处理器D4和深度模块。主机处理器连接USB2.0/USB3.1Gen1、视觉处理器D4位于主处理器主板上,RGB颜色传感器数据通过主处理器主板和D4板上的彩色图像信号处理器(ISP)发送到视觉处理器D4。IntelRealSenseD435i提供了完整的深度相机模块,集成了视觉处理器、立体深度模块、RGB传感器以及彩