DashgoD1底盘新指南-7.5 虚拟机下激光雷达与D1的坐标对齐
DashgoD1底盘新指南-7.5 虚拟机下激光雷达与D1的坐标对齐
Ubuntu14.04 indigo版ROS D1 F4
只有激光雷达与D1的坐标一致才能正常建地图
运行地图扫描节点
- Ctrl + Alt + T 打开命令窗口,运行命令
$ roslaunch dashgo_nav gmapping_demo.launch
运行rviz进行校对
Ctrl + Alt + T 打开命令窗口,运行命令
可以通过下面命令运行体量较大的rviz来进行校对
$ roslaunch turtlebot_rviz_launchers view_navigation.launch
- 也可以直接运行轻量级的rviz来进行校对
$ 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 的坐标校对,是通过对launch文件中的参数进行修改来使两者坐标一致的。
在本教程中,便是要修改 gmapping_demo.launch 文件
运行命令,找到 gmapping_demo.launch 文件所在的位置
$ roscd dashgo_nav/launch
- 使用 vim 编辑命令编辑
$ 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 个参数,分别表示
这 6 个参数都是相对于 D1 的坐标系来调整的。前面 3 个,分别表示激光雷达 F4 在X、Y、Z轴(右手定则)上离(0 , 0 , 0)点的坐标位置,(0 , 0 , 0)点是 D1 的坐标系原点,该点是 D1 的重心点。
后面 3 个,分别表示X、Y、Z轴(右手定则)偏离YOZ面、XOZ面、XOY面上的角度,大小范围为 -3.1415926~3.1415926 ,-3.1415926 为-180度, 3.1415926 为180度。
前后方向校对
D1 的前方是有三个超声波模块的,中间的超声波模块就是D1的正前方
D1 的后方是单独一个超声波模块的,也是D1的正后方
D1 的前后方向了解之后,便调整 F4 的坐标方向与 D1 的一致便可。
一般来说,F4 已经固定在 D1 已设定的位置上,而且 F4 在不停旋转,便要借用较平整的挡板,如:大纸箱,来确定 F4 当前的方位。
先将挡板横摆在 D1 正前方,挡板中心与 D1 正前方那个超声波模块成一条直线,挡板的面要与直线成90度角
然后,对照rviz中 F4 的扫描显示,D1 正前方是否横画着一条红线障碍物
若有,则说明前方坐标正确,再将挡板横摆在 D1 正后方,若 rviz 中同样在 D1 正后方横画着一条红线障碍物,则 D1 前后方向已经正确。
若实际中挡板的位置与rviz显示的位置不一致,则根据对前面 参数调整 的了解,相对应地对参数进行调整。
左右方向校对先将挡板横摆在 D1 正左方,挡板中心与 D1 中心成一条直线,挡板的面要平行于 D1 正前方与正后方所成的直线
然后,对照rviz中 F4 的扫描显示,D1 正左方是否横画着一条红线障碍物
若有,则说明左方坐标正确,再将挡板横摆在 D1 正右方,若 rviz 中同样在 D1 正右方横画着一条红线障碍物,则 D1 左右方向已经正确。
若实际中挡板的位置与rviz显示的位置不一致,则根据对前面 参数调整 的了解,相对应地对参数进行调整。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号