树莓派4B-ros-noetic-连接北阳激光雷达URG-04XL-UG01
卓沅best
原创
关注
1点赞·125人阅读
今天将用树莓派装了个ros-noetic,准备用它和hokuyo激光雷达URG-04XL-UG01学一下SLAM,先跑一下gmapping算法,下面记录一下我安装URG-04XL-UG01在Ubuntu20.04上的驱动程序,以及连接过程,也给正在学习激光雷达的伙伴们一个参考。
一、关于rosdep init初始化失败的问题
在ros安装到最后一步的时候,可能会发现如下错误:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
登录后复制
关于错误的原因,我也不清楚,但是已经找到了一个解决的办法。
1.打开下面的rosdistro下载地址,然后把它下载到本地,默认地址在Download
https://github.com/ros/rosdistro
2.解压,终端打开文件夹 进入目录rosdistro/rosdep,找到/sources.list.d文件,用gedit打开
sudo gedit 20-default.list
登录后复制
显示如下:
# os-specific listings first
yaml file:///home/文件所在地址/osx-homebrew.yaml osx
# generic
yaml file:///home/文件所在地址/rosdep/base.yaml
yaml file:///home/文件所在地址/python.yaml
yaml file:///home/文件所在地址/ruby.yaml
gbpdistro file:///home/文件所在地址/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
#默认下载地址是Download的话,那rosdistro文件地址就在里面了
登录后复制
3.修改所用的python版本中的__init__.py文件
因为在安装ros的时候,我下载的是python3,所以修改的是python3里面的文件。
sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py
登录后复制
同样,将下面路径换成Download里面的rosdistro路径
DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
登录后复制
4.再次执行
rosdep init
登录后复制
一般是没什么问题的,如果还不行,就进入/etc找到ros,看里面是否还有一个20-default.list文件,或者在搜索框里找一下,将多余的这个文件删除再次重复初始化步骤,初始化以后,就可以正常使用ros了,至于更新那一步我还是更新不了,但是不影响使用,我就放弃了。
二、连接并在rivz中显示激光雷达URG-04XL-UG01
1.下载驱动ros-noetic-node
sudo apt install ros-noetic-urg-node
登录后复制
输入密码以后等待下载完毕即可。
2.连接激光雷达
我是采用USB方式来连接的,直接树莓派主板上面供电的。打开ros运行驱动,先启动ros,再运行启动程序:
source /opt/ros/noetic/setup.bash
roscore
登录后复制
新开一个终端:
source /opt/ros/noetic/setup.bash
rosrun urg_node urg_node
登录后复制
等待自动寻找激光雷达并连接,连接完毕以后最下端会显示:streaming data。
3.打开rviz显示激光雷达扫描状态
source /opt/ros/noetic/setup.bash
rosrun rviz rviz
登录后复制
打开以后设置参数如下:
(1)点击rviz左下角Add,添加LaserScan
(2)点击Global Option下方的Fixed Frame,将右边的参数改为laser
(3)点击LaserScan下面的Topic,改为/scan
(4)点击LaserScan下面的Style,改为Point
然后就能看到激光雷达扫描生成的图了:
ros2也能够连接,下次再记录,其他操作也后续再记录。
输入期货名称,3秒知晓期货走势!
免费分析期货走势
广告
树莓派4B安装ubuntu18.04.4和ROS并测试激光雷达
118下载·0评论
2021年1月6日
结合hokuyo的UST-10LX激光雷达在turtlebot上建图
3505阅读·0评论·0点赞
2017年2月6日
ROS-激光雷达(Hokuyo-URG-04LX-UG01)
423阅读·0评论·1点赞
2020年10月24日
成功解决使用git clone命令克隆文件出现error: RPC failed; curl 18 transfer closed with outstanding read data remaini
984阅读·0评论·1点赞
2020年9月14日
利用树莓派4B运行Mid-40激光雷达全过程
1683阅读·0评论·0点赞
2022年1月23日
疑难杂症篇(十七)--树莓派和激光雷达直接连接通信问题的解决方案
1852阅读·0评论·0点赞
2021年11月15日
阿维塔 11,四座VIP版40度座椅调幅,总有你的角度,即刻试驾体验
阿维塔
广告
ubuntu18.04安装Ros
112阅读·0评论·0点赞
2022年6月24日
树莓派4b安装Ubuntu20.04及ROS并使用激光雷达建图
4479阅读·14评论·14点赞
2021年6月3日
分布式通信树莓派激光雷达数据在主机RVIZ中显示不正常
140阅读·0评论·0点赞
2022年7月24日
使用python线程来读URG激光雷达和旋转编码器的问题
249阅读·0评论·1点赞
2019年7月30日
树莓派+ROS Indigo+urg_node连接Hokuyo网口激光雷达
2594阅读·0评论·0点赞
2018年5月12日
将树莓派机器人小车原雷达更换为思岚激光雷达
1291阅读·4评论·1点赞
2020年12月23日
树莓派4B安装MAVROS和激光雷达
1743阅读·0评论·1点赞
2021年1月26日
树莓派采集HOKUYO激光雷达数据
6748阅读·3评论·2点赞
2016年9月2日
ubuntu 14.04 安装indigo 出现解压python-rosdistro 错误
481阅读·0评论·0点赞
2018年11月14日
ROS安装ubuntu16.04 无需科学上网解决sudo rosdep init初始化问题
258阅读·1评论·2点赞
2022年4月30日
树莓派&ROS:驱动EAI的激光雷达YDLIDAR-X4
9667阅读·8评论·9点赞
2018年12月3日
去首页
看看更多热门内容
方案——使用GIT工具:
如果在你的平台上还没有安装GIT工具,可以输入以下命令:
sudo apt-get install git-core
如果在这个过程中出现错误,尝试更新软件,例如输入以下指令:
sudo apt-get update
sudo apt-get upgrade
紧接着可以通过GIT获得wiringPi的源代码
git clone git://git.drogon.net/wiringPi
若需要更新wiringPi。
cd wiringPi
git pull origin
进入wiringPi目录并安装wiringPi
cd wiringPi
./build
build脚本会帮助你编译和安装wiringPi
WiringPi简介:
WiringPi是应用于树莓派平台的GPIO控制库函数,WiringPi遵守GUN Lv3。wiringPi使用C或者C++开发并且可以被其他语言包转,例如python、ruby或者PHP等。WiringPi中的函数类似于Arduino的wiring系统,这使得熟悉arduino的用户使用wringPi更为方便。
树莓派具有26个普通输入和输出引脚。在这26个引脚中具有8个普通输入和输出管脚,这8个引脚既可以作为输入管脚也可以作为输出管脚。除此之外,树莓派还有一个2线形式的I2C、一个4线形式的SPI和一个UART接口。
树莓派上的I2C和SPI接口也可以作为普通端口使用。如果串口控制台被关闭便可以使用树莓派上的UART功能。如果不使用I2C,SPI和UART等复用接口,那么树莓派总共具有8+2+5+2 =17个普通IO。wiringPi包括一套gpio控制命令,使用gpio命令可以控制树莓派GPIO管脚。
用户可以利用gpio命令通过shell脚本控制或查询GPIO管脚。wiringPi是可以扩展的,可以利用wiringPi的内部模块扩展模拟量输入芯片,可以使用MCP23x17/MCP23x08(I2C 或者SPI)扩展GPIO接口。
另外可通过树莓派上的串口和Atmega(例如arduino等)扩展更多的GPIO功能。另外,用户可以自己编写扩展模块并把自定义的扩展模块集成到wiringPi中。WiringPi支持模拟量的读取和设置功能,不过在树莓派上并没有模拟量设备。但是使用WiringPi中的软件模块却可以轻松地应用AD或DA芯片。
换个角度讲, 当C#在微软平台上成为主流开发语言的时候, python已经渐渐的成为了linux应用程序的主流开发语言之一了. 原因很简单, perl在淡出, ruby未发力, shell不够用, php不合适, java不解释.记得Redhat 7的字符界面安装程序就是python写的, 那几乎是我第一次听说python的年代了.