|
本帖最后由 lixiang 于 2020-5-29 17:46 编辑
为了能感知周围的环境,传感器必不可少。常见的传感器有摄像头、激光雷达、毫米波雷达、超声波雷达、IMU、里程计等。本参考方案主要用到的传感器有激光雷达、IMU、里程计、摄像头等。
ydlidar-x4激光雷达
在低速小车移动过程中,获取周围障碍物和环境的轮廓形状是非常重要的。使用激光雷达,可以扫描到周围的障碍物信息。
雷达主体由激光测距模组和电机构成,雷达主体需要USB连接转接板,用于实现外部供电和UART转USB。
ydlidar-x4性能参数
使用ydlidar-x4雷达
ydlidar-x4激光雷达通过串口与Nova-09相连接,Nova-09中通过运行雷达ROS驱动,来实现读取串口的雷达数据和将雷达数据发布到/scan这个主题,这样其它节点就可以通过订阅/scan主题来获取激光雷达数据了。
在低速无人小车上只需要使用ydlidar这个驱动包就可以使用ydlidar-x4雷达了。将ydlidar这个驱动包拷贝到~/catkin_ws/src/中,建立自己launch文件,编译之后就可以使用了。ydlidar驱动包中其他内容不需要太过关心,这些都是由雷达厂商提供,有兴趣的同学可以自行研究。
ydlidar/launch/novacar_ydlidar.launch内容如下:
- <launch>
- <node name="ydlidar_node" pkg="ydlidar" type="ydlidar_node" output="screen">
- <param name="port" type="string" value="/dev/lidar"/>
- <param name="baudrate" type="int" value="115200"/>
- <param name="frame_id" type="string" value="base_laser_link"/>
- <param name="angle_fixed" type="bool" value="true"/>
- <param name="low_exposure" type="bool" value="false"/>
- <param name="heartbeat" type="bool" value="false"/>
- <param name="resolution_fixed" type="bool" value="true"/>
- <param name="angle_min" type="double" value="-180" />
- <param name="angle_max" type="double" value="180" />
- <param name="range_min" type="double" value="0.2" />
- <param name="range_max" type="double" value="16.0" />
- <param name="ignore_array" type="string" value="" />
- <param name="samp_rate" type="int" value="9"/>
- <param name="frequency" type="double" value="7"/>
- </node>
- </launch>
复制代码 驱动激光雷达:
- roslaunch ydlidar novacar_ydlidar.launch
复制代码 激光雷达数据是以sensor_msgs/LaserScan消息类型进行表示。sensor_msgs/LaserScan格式如下:- rosmsg info sensor_msgs/LaserScan
- std_msgs/Header header
- uint32 seq
- time stamp
- string frame_id
- float32 angle_min
- float32 angle_max
- float32 angle_increment
- float32 time_increment
- float32 scan_time
- float32 range_min
- float32 range_max
- float32[] ranges
- float32[] intensities
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|