激光雷达F4与D1坐标校正
来源:互联网 发布:淘宝电棍 编辑:程序博客网 时间:2024/06/02 07:18
PathGo 导航模块的默认固定 IP 是 192.168.31.200 ,默认用户名为 eaibot ,默认密码为 eaibot 。
运行环境:Ubuntu14.04、indigo版ROS, D1 + F4 + Dashgo
只有激光雷达与D1的坐标一致才能正常建地图导航
启动并设置让模块与PC正常通讯
模块修改/etc/hosts文件,让模块知道PC端的IP与主机名
$ ssh eaibot@192.168.31.200$ sudo vim /etc/hosts
127.0.0.1 localhost127.0.1.1 DashgoD1192.168.31.245 eaibot #添加这行信息
PC端修改/etc/hosts文件,让PC端知道模块的IP与主机名
新打开一个终端
$ sudo vim /etc/hosts
127.0.0.1 localhost127.0.1.1 eaibot192.168.31.200 DashgoD1 #添加这行信息# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters
注意:若没有设置/etc/hosts文件,两端数据难以通信的。
运行地图扫描节点
Ctrl + Alt + T
打开终端,运行命令
$ ssh eaibot@192.168.31.200$ roslaunch dashgo_nav gmapping_demo.launch
运行rviz进行校正
- 方式一:
Ctrl + Alt + T
打开终端,通过下面命令运行体量较大的 rviz
$ roslaunch turtlebot_rviz_launchers view_navigation.launch
运行rviz显示的界面如下:
参数调整
F4 与 D1 的坐标校对,是通过对launch文件中的参数进行修改来使两者坐标一致的。
要运行哪个launch文件就要对哪个launch文件中的参数进行修改,使两者坐标一致的。
在本教程中,便是要修改 gmapping_demo.launch 文件
运行命令,找到 gmapping_demo.launch 文件所在的位置
$ ssh eaibot@192.168.31.200$ roscd dashgo_nav/launch
使用 vim 编辑命令编辑 gmapping_demo.launch
$ vim gmapping_demo.launch
<launch><node name="arduino" pkg="dashgo_bringup" type="dashgo_driver.py" output="screen"><rosparam file="$(find dashgo_bringup)/config/my_dashgo_params.yaml" command="load" /></node><node name="flashgo" pkg="flashgo" type="flashgo_node" output="screen"><param name="serial_port" type="string" value="/dev/flashlidar"/><param name="serial_baudrate" type="int" value="230400"/><param name="frame_id" type="string" value="laser_frame"/><param name="inverted" type="bool" value="false"/><param name="angle_compensate" type="bool" value="true"/></node><include file="$(find dashgo_description)/launch/dashgo_description.launch"/><node pkg="tf" type="static_transform_publisher" name="base_link_to_laser4"args="0.0 0.0 0.2 0.0 3.1415926 0.0 /base_link /laser_frame 40" /> //修改args的参数值<include file="$(find dashgo_nav)/launch/gmapping.launch"/><include file="$(find dashgo_nav)/launch/move_base.launch"/></launch>
args="0.0 0.0 0.2 0.0 3.1415926 0.0 /base_link /laser_frame 40"
在 /base_link
前面的 6 个参数,只需要调整前面5个参数,最后一个默认为 0.0 即可,分别表示
这 5 个参数都是相对于 D1 的坐标系来调整的。
前面 3 个,分别表示激光雷达 F4 在X、Y、Z轴(右手定则)上距离(0 , 0 , 0)点的坐标位置,(0 , 0 , 0)点是 D1 的坐标系原点,该点是 D1 的重心点。
后面 2 个,分别表示沿着 D1 中心线(正前方与正后方连成的直线)左右方向、上下方向移动偏离的角度,大小范围为
-3.1415926 ~ 3.1415926
,-3.1415926
为-180度,3.1415926
为180度。
前后方向校正,只需修改第 4 个参数
D1 的前方是有三个超声波模块的,中间的超声波模块就是D1的正前方
D1 的后方是单独一个超声波模块的,也是D1的正后方
D1 的前后方向了解之后,便调整 F4 的坐标方向与 D1 的一致即可。
一般来说,F4 已经固定在 D1 已设定的位置上,而且 F4 在不停旋转,便要借用较大块、较平整的挡板,如:大纸箱,来确定 F4 当前的方位。
先将挡板横摆在 D1 正前方,挡板中心与 D1 正前方那个超声波模块成一条直线,挡板的面要与直线成90度角
然后,对照rviz中 F4 的扫描显示,D1 正前方是否横画着一条红线障碍物
若有,则说明前方坐标正确,再将挡板横摆在 D1 正后方,若 rviz 中同样在 D1 正后方横画着一条红线障碍物,则 D1 前后方向已经正确。
若实际中挡板的位置与rviz显示的位置不一致,则根据对前面 参数调整
的了解,相对应地对参数进行调整。
具体操作,如下:
挡板横摆在 D1 正前方,rviz 显示应该如下图:
但rviz实际显示,如下图所示:
Ctrl + C ,关闭 rviz , 也关闭正在运行的launch文件,打开该launch文件
先将第 4 个参数改大(注意数值范围),保存launch文件,接着启动launch文件并打开rviz,查看效果
若显示的红线向正确的红线位置靠近,则再将参数慢慢加大以修正;若偏离正确位置,则将参数改小来修正。
正前方的位置校正后,将挡板横摆在 D1 正后方,rviz显示与实际情况是相符的。
左右方向校正,只需要修改第 5 个参数
先将挡板横摆在 D1 正左方,挡板中心与 D1 中心成一条直线,挡板的面要平行于 D1 正前方与正后方所成的直线
然后,对照 rviz 中 F4 的扫描显示,D1 正左方是否横画着一条红线障碍物
若有,则说明左方坐标正确,再将挡板横摆在 D1 正右方,若 rviz 中同样在 D1 正右方横画着一条红线障碍物,则 D1 左右方向已经正确,不用修改参数。
若实际中挡板的位置与 rviz 显示的位置不一致,则修改第 5 个参数,若当前数值为 0.0 ,则修改成 3.1415926 ;若当前数值为 3.1415926 ,则修改成 0.0 即可。
再运行 launch 文件与 rviz 核对效果。
- 方式二:
Ctrl + Alt + T
打开终端,运行轻量级的 rviz
$ rviz
rviz 简易配置
运行rviz显示的界面如下:
对rviz界面显示进行简单的配置,点击 Add
添加控件
在弹出的窗口,选择 RobotModel
,点击 OK
,添加 D1 在 rviz 中的显示控件
D1 显示控件添加成功后,如下图所示(图中那淡绿色的点便 D1 的正前方)
然后,再点击 Add
,选择 LaseScan
,点击 OK
,添加 激光雷达F4 在 rviz 中的显示图层
添加 激光雷达F4 显示图层后,显示并没有变化,原因在于还没有选择要订阅的 topic
展开 LaseScan
的菜单
选择 Topic
项,选择要订阅的 topic 为 /scan
,再回车
此时,F4 的扫描数据便可在 rviz 上显示,如下图所示
参数调整
具体参数调整操作与方式一的一样。
- 激光雷达F4与D1坐标校正
- 激光雷达与 D1 的坐标校正
- ROS中使用激光雷达(EAI F4)
- 激光雷达
- ROS机器人Diego 1#制作(二十)搭载EAI F4激光雷达Hector创建室内地图
- ROS机器人Diego 1#制作(二十一)搭载EAI F4激光雷达gmapping创建室内地图
- ROS机器人Diego 1#制作(二十二)基于EAI F4激光雷达数据进行定位amcl
- ROS机器人Diego 1#制作(二十三)搭载EAI F4激光雷达move_base路径规划
- http://hi.baidu.com/%C1%D2%D1%E6_%BD%BE%D1%F4/blog/item/9b6af1088781a7d962d986f5.html
- f4
- 校正IOS的gps坐标方法
- 校正IOS的GPS坐标方法
- 基于经度坐标校正鱼眼图像
- 多重假设检验与Bonferroni校正、FDR校正
- D1
- D1
- d1
- Turtlebot2 底盘与激光雷达串口配置问题
- Android设计模式——迪米特原则
- 关于didFinishLaunchingWithOptions参数的中的launchOptions这个参数
- Scrapy爬虫(十):爬虫总结以及扩展
- 数据库索引背后的数据结构之B-树和B+树
- 人人都会犯的三大错误,就是你成功的关键
- 激光雷达F4与D1坐标校正
- Android设计模式——单一职责原则
- char * string CString之间的转化
- MySQL优化特定类型的查询(书摘备查)
- 微信小程序,腾讯的野心与连接一切的梦想
- Android设计模式—— 依赖倒置原则
- Acache工具类
- 《项目管理利器Maven》学习(六):Eclipse中配置Maven及创建Maven项目
- 安卓关于修改第三方libary源码后无效的问题