[ROS学习笔记1]在RViz中查看激光雷达数据
目录
- 说在前面
- 我的软件搭配
- 激光雷达介绍
- 实现方法
- 创建工作空间
- 编写源文件
- 添加环境变量
- 连接雷达端口
- 运行rviz
- 结果
说在前面
情况介绍:本人今年大四在读,老师给了“轮式机器人定位与导航系统设计”的毕设题目,研究内容主要是激光SLAM和自主导航。因为内容较多,难度较大,本人水平不足等诸多原因,在寒假的时候就开始在网上自学Ubuntu和ROS,主要是看胡春旭大佬的课,话题和服务的编程已经熟悉了一点,以后有时间再写,不求面面俱到,只希望我能顺利毕业吧。
为什么写这一系列博客?主要是为了防止学到后面忘了前面吧,毕竟还要学习的东西还是非常多的,希望能坚持学习坚持更新。
我的软件搭配
本人使用的是Ubuntu20.04和ROS noetic,最新版的系统和ROS确实让我吃了不少苦。
激光雷达介绍
我使用的是杉川的比较便宜的一款产品,具体型号我不太记得了,具体长这样。
实现方法
我主要是参考了这篇博客 ROS Kinetic下使用杉川Delta_2A激光雷达示例,大家也可以直接看他的文章。
创建工作空间
可以使用catkin_init_workspace的命令,我的方法如下。
mkdir -p ~/catkin_lidar/src
cd ~/catkin_lidar
catkin_make
上面命令的意思分别是在home路径下建立catkin_lidar文件夹,在文件夹中添加一个src的文件夹,然后进入catkin_lidar路径下进行编译。
编写源文件
src中包含一个名为delta_lidar的功能包和一个CMakeLists.txt,功能包中有launch文件夹、rviz文件夹、sdk文件夹、src文件夹和CMakeLists.txt和package.xml,分别说一下它们的作用。可以在我的资源主页下载src文件夹,按照上述方法自行编译。
- luanch文件夹中包含了一些.launch文件,用来启动一些节点和加载参数,相对于roscore的启动方式,终端数少更加简洁。
- rviz文件夹中有一个.rviz文件,用来配置rviz启动时的一些插件和配置的参数。例如Fixed Frame、点云数据的话题名称等等。
- sdk中包含的是一些头文件(这个我不太清楚,详细知识请查资料)。
- src文件夹中包含的是cpp格式的源文件,client.cpp和node.cpp,用于发布/scan的话题。
- CMakeLists.txt规定了一些编译和创建可执行程序的规则。
- pakage.xml包含了版本号,程序作者的邮箱和依赖的包如std_msgs、roscpp等
添加环境变量
写完程序之后,在终端下进入catkin_lidar路径编译,然后需要用如下命令添加环境变量。
catkin_make
source devel/setup.bash
这种方法只能对此终端生效,更常见的方法如下。
原作者使用的命令是echo"source/catkin_lidar/devel/setup.bash">>~/.bashrc
,但是我使用这个命令会报错bash: echosource/catkin_lidar/devel/setup.bash: 没有那个文件或目录
。
后来只能手动添加环境变量,打开home目录下的.bashrc(注意:是.bashrc,不是bashrc),在最后一行添加source /home/your_name/catkin_lidar/devel/setup.bash
,其中your_name需要替换成对应的计算机名。
然后使用source ~/.bashrc
添加环境变量。可以在终端输入echo $ROS_PACKAGE_PATH
查看环境变量,有catkin_lidar路径就没有问题。
连接雷达端口
在终端中输入sudo chmod 777 /dev/ttyUSB0
连接雷达端口。
运行rviz
直接运行launch文件即可,命令:roslaunch delta_lidar view_delta_lidar
。
结果
这样就能在rviz中看到激光雷达的点云数据了,第一次跑起来激光雷达太高兴了,记录一下,理工男的快乐就是这么简单吧。
[ROS学习笔记1]在RViz中查看激光雷达数据相关推荐
- ROS 学习笔记(三):自定义服务数据srv+server+client 示例运行
ROS 学习笔记(三):自定义服务数据srv+Server+Client 示例运行 一.自定义服务数据: 1.向功能包添加自定义服务文件(AddTwoInts.srv) cd ~/catkin_ws/ ...
- ROS学习之tf在rviz中的显示
昨天粗略看了一下ros中rviz的用法.事实,他就是一个可视化的工具.wiki的用户手册:http://wiki.ros.org/rviz/UserGuide 今天在学习tf的教程时,首先是演示了一个 ...
- ROS学习笔记十一:ROS中数据的记录与重放
ROS学习笔记十一:ROS中数据的记录与重放 本节主要介绍如何记录一个正在运行的ROS系统中的数据,然后在一个运行的系统中根据记录文件重新产生和记录时类似的运动情况.本例子还是以小海龟例程为例. 记录 ...
- ROS学习笔记(八): ROS通信架构
ROS学习笔记(八): ROS通信架构 文章目录 01 Node & Master 1.1 Node 1.2 Master 1.3 启动master和node 1.4 rosrun和rosno ...
- ROS学习笔记-多机器人通信(1)-实现两台机器通信
ROS是一个分布式的计算环境.一个正在运行的ROS可以在多个机器人之间分布成几十甚至上百个节点.取决于系统的配置方式,任何节点可能需要随时与任何其他节点进行通信,为实现使用同一个master控制多台机 ...
- ROS学习笔记(一)补充篇 参考创客制造
我将ROS的CPP部分分成7个部分: 1.基础的node param 2.动态调节参数 3.关于TF变换 4.actionlib 5.插件技术 6.movebase 7.nodelet技术 前言 相比 ...
- ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行
ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行 一.自定义消息: 1.新建msg文件夹,创建定义Person.msg 文件 mkdir -p ~/catk ...
- ROS 学习笔记(一):工作空间+功能包创建
ROS 学习笔记(一):工作空间+功能包创建 一.创建工作空间(catkin_make编译): 1.创建工作空间 catkin_ws 创建空间.初始化(建立一个文件夹) cd ~ mkdir -p ~ ...
- ROS学习笔记六:理解ROS服务和参数
ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...
最新文章
- redis 的 HyperLogLog
- 无人驾驶的规划与控制(一)——路由寻径
- 下单延迟10s撤单性能测试
- python数字保留两位_Python 鲜为人知的数值格式化
- 区块链 以太坊 验证区块
- WKWebView加载HTTPS的链接
- java 回调函数传值_说明Java的传递与回调机制的代码示例分享
- 线性代数辅导讲义(第五章 特征值特征向量)
- chrome 下载东西 失败禁止_chrome谷歌浏览器下载文件失败如何解决
- 小学计算机房荷载,资深暖通设计师总结的常用参数参考值,新手们都说感谢大神支招...
- 从表象到本质,包你一文看懂NFT
- 被遗忘的设计模式——空对象模式(转载)
- 欧姆龙PLC分频电路
- Linux中xtp文件上传不了,xtp_api_java: 中泰证券xtp java api for win\linux\mac https://xtp.zts.com.cn...
- 【Vue】报错信息: [WDS] Errors while compiling. Reload prevented.
- DMP (Dynamic Movement Primitives) 动态运动基元
- Oracle中如何查询CLOB字段类型的内容
- 计算机网络自顶向下方法 第三章 运输层 3.6 拥塞控制原理
- 什么是软件测试,软件测试的目的?
- 浏览淘宝网页背后所发生的事情