学习使用turtlebot2——调试Hokuyo激光雷达(型号UST-10LX)
目标
在ROS上调试使用Hokuyo激光雷达传感器
配置情况
电脑使用Ubuntu 14.04版本,ROS为 Indigo,激光雷达为Hokuyo(型号UST-10LX,网口型接口)
如果使用的是USB类插头的,可以按照ROS网站上提供的教程:
http://wiki.ros.org/hokuyo_node/Tutorials/UsingTheHokuyoNode
以下介绍的是激光雷达在ROS上的配置:
首先拿到激光雷达要看其是什么接口类型的,一般分USB型和网口型,两种配置方法不一样,USB型的可以参照上面的教程配置使用,网口型就是下面介绍的方法。为什么要配置呢?直接插上去用不可以吗?答案是不可以的,类似我们日常使用的电脑,当你插上U盘时候,电脑首先会对U盘安装驱动,因为没有驱动使用不了U盘。所以类似的,配置过程就是电脑识别激光雷达,获取其数据的过程。当激光雷达上电时候,它就开始转动,开始获取数据了。
拿到的UST-10LX激光雷达有两个头,一个是电源接口,自己换上接口插到turtlebot上使用19V电源供电(因为turtlebot2正常供电范围是12V-24V,另外按照红正黑负的原则选择接口,插到turtlebot之前使用万用表直流档检测正负接口,切记不要接反);另一个是网线插口,插到你的电脑网口出处。
这时候电源接好了,插上了turtlebot的19V电源处,激光雷达开始转动(会发出声音),网口插口也插上了电脑那,那接下来怎么使用它?
看到网口我们想到的是IP地址,对,其实就是网口类插口与电脑之间使用的是IP地址通讯。那重要的一件事是,知道你的激光雷达的初始IP地址,如果忘记了,使用可以查看IP地址的软件去找出你的激光雷达的IP地址。当知道激光雷达的IP地址后事情就很容易解决了,我使用的激光雷达地址为192.168.1.181(每个人的IP不一样的,这个是自己设置的)。查阅资料显示Hokuyo激光雷达的固定IP地址为“192.168.1.10”(出厂设置为“192.168.0.10”)具体为多少,需要自己去查看相关资料。
有了激光雷达的IP地址,那电脑怎么与它进行通讯?
那就要设置电脑的IP频段,前面3个与其相同,即电脑的IP设置为192.168.1.XXX(随便你设置,但是不要和雷达的IP地址一样),掩码设置都是255.255.255.0。那接下来的问题就是怎么设置电脑的静态IP地址了,有两种方法,下面分别介绍。
1、修改ubuntu系统上管理IP地址的文件,添加一个静态IP地址,位置在/etc/network/interfaces
sudo gedit /etc/network/interfaces
运行命令显示以下窗口
在iface lo inet loopback下面添加下面代码
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
address即添加的电脑静态IP地址,netmask为掩码
2、直接在显示网络那里配置
在网络图标那右键选择Edit Connections
在Ethernet(即以太网)点击Add专门为激光雷达配置一个连接,然后点击IPv4设置地址,在Address添加上面设置的IP地址
至此两种配置电脑静态IP地址方法介绍完了,只要选用其中一种即可,下面就是测试:
ping 192.168.1.181
当你激光雷达IP地址没错时,即可获取到上面的数据。接下来设置在ROS上获取激光雷达的数据,ROS上获取数据主要靠调用节点来获取,那首先要安装网口类激光雷达的节点包
sudo apt-get install ros-indigo-urg-node
然后将激光雷达接在电脑上,执行以下命令:
roscore
rosrun urg_node urg_node _ip_address:=192.168.1.10
当显示上面情况时,即可以在ROS上获取激光雷达数据。另外可以使用以下命令查看激光雷达检测到的数据:
rostopic echo /scan
在rviz中查看激光数据:
#依次运行下面命令
roscore
rosrun urg_node urg_node _ip_address:=192.168.1.181
rosrun rviz rviz
点击左下角的Add按钮,依次添加LaserScan和话题/scan下的LaserScan,然后在左边Displays下修改Fix Frame值为laser
学习使用turtlebot2——调试Hokuyo激光雷达(型号UST-10LX)的更多相关文章
- 学习使用turtlebot2——turtlebot2上使用Hokuyo激光雷达(型号UST-10LX)
目标 在turtlebot2上添加Hokuyo激光雷达传感器,使用激光雷达调用gmapping进行建图. 配置情况 电脑使用Ubuntu 14.04版本,ROS为 Indigo,激光雷 ...
- 学习使用turtlebot2——安装ROS Indigo系统
最近在学习使用turtlebot2,特此做一些学习记录. 安装ROS前要先决定自己电脑的Ubuntu(乌班图)系统.现在学习ROS常使用的Ubuntu系统有Ubuntu 16.04 和Ubuntu14 ...
- 转 Python3 错误和异常/ Python学习之错误调试和测试
########sample 0 https://www.cnblogs.com/Simon-xm/p/4073028.html except: #捕获所有异常 except: <异常名> ...
- BIND9源码学习笔记1---gdb调试篇
学习bind9源码之前,首先要知道如何用gdb来调试bind.BIND9的源码我是先看代码弄懂它的架构,像什么event-drive,epoll等, 再去看它的业务流程.看业务流程的时候要追踪它的数据 ...
- linux学习之四---gdb调试
在Linux应用程序开发中,最经常使用的调试器是gdb. 一.启动和退出gdb gdb调试的对象是可运行文件,而不是程序的源码.假设要使一个可运行文件能够被gdb调试,那么使用编译器gcc编译时须要增 ...
- React学习笔记--程序调试
React学习笔记 二 程序调试 前面我们搭建好了React的基本开发环境,可以编写基本的React js程序了.但完成的开发环境肯定包含调试器,怎么调试用React编写的JS程序呢?有浏览器,比 ...
- Android JNI和NDK学习(04)--NDK调试方法(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092812.html 本文主要介绍在ndk中添加log的方法.然后,我们就可 ...
- cocos2d-js 学习笔记 --安装调试(1)
目前从国内来看,比较知名的,适合前端程序员使用的游戏框架,基本是 egret 和cocos2d-js;刚好两个框架都学习了下, egret的是最近兴起的一个框架主要使用TypeScript.js语言做 ...
- [Android学习笔记]Android调试
Eclipse Debug 快捷键: [Ctrl + Shift + B]: 添加/取消断点 [F5]:进入方法中 [F6]:单步执行 [F7]:执行完毕此方法 [F8]:继续执行,直接跳到下一个断点 ...
随机推荐
- Build System 和Test Framework overview总结
良好的自动化系统可以帮助Dev/Tester快速发现product/test code issue. 正好上一个项目结束,上个项目在自动化系统上面做得非常好.从产品开始时半年release一次到后面每 ...
- git 这一篇就够80%使用情况了
转 Git 命令详解及常用命令整理 Git 命令详解及常用命令 Git作为常用的版本控制工具,多了解一些命令,将能省去很多时间,下面这张图是比较好的一张,贴出了看一下: 关于git,首先需要了解几个名 ...
- ES6中的export,import ,export default
ES6模块主要有两个功能:export和importexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口import用于在一个模块中加载另一个含有export接口的模块.也就是说使用 ...
- 编程算法 - 高速排序算法 代码(C)
高速排序算法 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 经典的高速排序算法, 作为一个编程者, 不论什么时候都要完整的手写. 代码: /* * m ...
- Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向 1. 一个伟大的事业必然是过程导向为主 1 1.1. 过程的执行情况(有明确的执行手册及标准) ...
- FPGA开发流程1(详述每一环节的物理含义和实现目标)
要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...
- PHP系统学习2
字符串操作 字符串截取 substr() 字符串格式化printf()格式化无需echo sprintf() 需要echo nl2br()可以将\n转换成<br/> wordwrap() ...
- [NM 状态机1] Application状态机详解
概述 前面已经分析了RM的状态机,接下来将分析NM的状态机,NM状态机包括Container,Application,LocalizedResource三个.首先我们分析Application的状态机 ...
- 无语的Filezilla
之前也一直用filezilla,今天遇到个奇葩问题:在2008R2上装完filezilla server,本打算生成个证书用于SSL加密,没想到一直报错"Failed to initiali ...
- iOS-回收键盘的几种方法
在开发过程中,为了实现点击屏幕其它位置收起键盘的目的,我们使用过许多的方法. 如果是在UIViewController中收起键盘,除了通过调用控件的resignFirstResponder方法外,还有 ...