ros 小车单线激光雷达搭建

激光雷达+深度相机+gmapping+树莓派
https://blog.youkuaiyun.com/jinsechaochen/article/details/133982933
https://blog.youkuaiyun.com/Feizhai2/article/details/127617541

镭神智能N10激光雷达测评+ROS_Cartographer应用测试
前言
  将N10雷达连接ROS主控(本次使用Nvidia Jetson nano+melodic系统进行测试),通过Ubuntu电脑或虚拟机查看构建好的地图。

一、雷达基本性能
  N10雷达的扫描频率为6~12HZ的可调区间,对应可实现 0.48°~0.96°的角度分辨率,N10采用TOF的测距技术,每秒4500次的高速激光测距采样能力,可以在25米半径范围内进行360度全方位的激光测距扫描,并产生所在空间的平面点云地图信息。

二、工作原理
  雷达涉及的适用领域广阔,针对教育市场而言,根据雷达使用的测距原理大体可分为三角测距与TOF测距两类。N10采用TOF测距(飞行时间测距)法。

TOF原理
  激光器发射一个激光脉冲,并由激光雷达上的计时器记录下发射的时间,发射光经接收器接收,并由计时器记录反射的时间。两个时间相减即得到了光的飞行时间,根据光速和时间即可计算距离。

三角测距雷达:外观低矮 ,近距离测量精度较高,但不抗强光,一般扫地机器人使用的三角测距雷达居多
  TOF测距雷达:成本高的同时也提升了雷达的性能,测量距离远,测量精度高,可以抗光强,环境适应性好。适用于活动空间大,移动速度高的移动平台,如服务机器人、AGV、低速物流车。构建大面积环境的地图时可以使用TOF测距雷达可以保证地图的质量。

三、连接测试
将使用Type-C线将n10通过转接板连接到windows电脑中测试点云数据:

使用Type-C线将n10通过转接板连接到jetson nano中,在Ubuntu系统中进行测试

四、在ROS中启动雷达
编译雷达SDK后,启动雷达。

打开rviz可以看到雷达的点云信息

同时可以打印雷达的/scan数据:

五、将雷达数据用起来(cartographer建图)
  二进制下载cartographer后,相关文件在/opt/ros/melodic/share/cartographer_ros路径下。
下载指令:

sudo apt-get install ros-melodic-cartographer* -y
1
2D建图主要用到demo_revo_lds.launch文件,这个文件默认是用来跑bag的,并未设置imu的接口。carto虽然是laser主导的算法,但如果只用雷达数据的话构建的地图会很模糊,需要融合imu的数据对机器人转向校准后进行建图。
修改文件:
/opt/ros/melodic/share/cartographer_ros/launch/demo_revo_lds.launch
接入imu数据:

find cartographer_ros 同步修改revo_lds.lua文件,接收imu数据,只需要修改以下三个参数即可:

tracking_frame=“base_footprint”
published_frame=“base_footprint”
TRAJECTORY_BUILDER_2D.use_imu_data=true
1
2
3
打开雷达节点,同时需要开启imu模块,使之输出/imu_data话题:

roslaunch lsn10 lsn10.launch
1
启动cartographer建图:

roslaunch cartographer_ros demo_revo_lds.launch
1
建图效果:

左边为雷达屏蔽一部分角度后初始构建的地图,右边是构建好的地图。

总结
  对于刚入门ROS的开发者,如果需要完成建图导航路径规划及避障,如果项目预算有限可以选择这款高性价比的雷达;n10的测距精度比较高,且扫描频率也高,尺寸很小方便安装在机器人上,在TOF测距雷达中这款雷达价格比较低,雷达性能全面均衡,适合ROS入门开发者使用。

### 使用树莓派构ROS控制的小车 #### 准备工作 为了成功搭建基于树莓派的ROS控制系统,需要完成一系列准备工作。确保安装并配置好Raspbian操作系统以及ROS环境是首要任务。接着,在终端通过SSH登录到树莓派设备上执行命令[^1]。 ```bash ssh obot@clbrobt ``` #### 创与管理ROS包 进入指定的工作空间目录,并切换至项目源码文件夹下: ```bash roscd clbrobot/ cd ~/catkin_ws/src/clbrobot_project/clbrobot/maps ``` 在此路径中可以找到用于启动自动导航功能的地脚本`./map.sh`。 #### 启动自动导航与避障程序 当一切准备就绪之后,可以通过运行特定shell脚本来激活小车的自主移动能力: ```bash ./map.sh 自动导航与自动避障 ``` 此操作会调用预先设定好的参数来实现机器人的智能化行为模式。 #### 键盘远程操控支持 为了让用户能够更加灵活地测试和调试机器人性能,在个人电脑上的虚拟环境中开启一个新的节点负责接收来自键盘输入的方向指令,并将其转换成相应的动作发送给远端的目标设备: ```bash rosrun turtlesim turtle_teleop_key ``` 上述命令允许利用标准美式QWERTY布局下的方向键来进行简单的位移控制[^2]。 对于更复杂精细的操作需求,则推荐采用专门设计过的Python脚本形式提供服务: ```python import rospy from geometry_msgs.msg import Twist def talker(): pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10) rospy.init_node('teleop_twist_keyboard') if __name__ == '__main__': try: talker() except rospy.ROSInterruptException: pass ``` 这段代码片段展示了如何创一个发布者实例向话题`/cmd_vel`广播速度变化请求消息对象Twist[]^3]。 #### 扩展硬件接口编程 针对某些特殊应用场景可能涉及到额外传感器或者驱动电路板集成的情况,这时就需要引入第三方库函数辅助开发过程。例如wiringPi就是一个非常流行的选择之一,它提供了丰富的GPIO引脚访问方法适用于多种外设连接方案[^4]。 #### 可视化工具应用 最后值得一提的是Mermaid表绘制技术可以帮助开发者更好地理解整个系统的架构组成关系。借助其简洁直观的表现方式快速生成各类形资料辅助说明文档编写工作[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值