< >
Home » Dashgo底盘入门教程 » Dashgo底盘入门教程-应用-实现自主导航

Dashgo底盘入门教程-应用-实现自主导航

Dashgo底盘入门教程-应用-实现自主导航

说明:

  • 介绍如何实现自主导航

提示:

  • 使用 Flash Lidar F4 激光雷达进行自主导航
  • 树莓派的IP假设为192.168.11.100
  • 该教程基于地图已经建好并保存的情况下
  • teb_amcl_demo.launch 的 args 参数要与前面 gmapping_demo.launch 的一样

自主导航配置

  • 修改launch文件,引用已经保存好的地图
$ ssh pi@192.168.11.100
$ roscd dashgo_nav/launch
$ navigation_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.0 0.0 3.1415926 0.0 /base_link /laser_frame 40" />
<!-- Map server -->
<arg name="map_file" default="$(find dashgo_nav)/maps/my_pi_map.yaml"/> //修改my_pi_map.yaml
<node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" />

<arg name="initial_pose_x" default="0.0"/> <!-- Use 17.0 for willow's map in simulation -->
<arg name="initial_pose_y" default="0.0"/> <!-- Use 17.0 for willow's map in simulation -->
<arg name="initial_pose_a" default="0.0"/>
<include file="$(find dashgo_nav)/launch/amcl.launch.xml">
<arg name="initial_pose_x" value="$(arg initial_pose_x)"/>
<arg name="initial_pose_y" value="$(arg initial_pose_y)"/>
<arg name="initial_pose_a" value="$(arg initial_pose_a)"/>
</include>
<include file="$(find dashgo_nav)/launch/teb_move_base.launch"/>

</launch>
  • 将 my_pi_map 改成已经保存好的地图名称 my_map
  • vim(文本编辑命令) 的安装与基本使用
  • 命令窗口执行以下命令,根据提示安装 vim
$ sudo apt-get install vim
  • 以上面修改 navigation_demo.launch 文件为例,介绍 vim 的基本使用

  • 打开 navigation_demo.launch 文件

$ vim navigation_demo.launch
  • 进入文件内容显示界面,此时的文件状态只是显示,还不是编辑状态

  • 光标的移动是通过键盘上的上、下、左、右方向键来控制的。

  • 通过方向键将光标移动到要修改的 my_pi_map 前面

  • 按键盘上的 I 键,让文本进入编辑状态,编辑状态下,命令窗口左下角显示 Insert 或 插入 字样

  • 通过键盘上的 Delete 或 Backspace 来删除 my_pi_map ,填写 my_map

  • 修改好名称后,按键盘上的 Esc 退出编辑状态

  • 按组合键Shift + ; ,窗口左下角显示 : ,再按W + Q,窗口左下角显示 :wq,再回车便保存好修改后的文件

运行地图自主导航节点

  • Ctrl + Alt + T 打开命令窗口,运行命令
$ ssh pi@192.168.11.100
$ roslaunch dashgo_nav navigation_demo.launch

运行rviz图形界面

  • Ctrl + Alt + T 打开新的命令窗口,运行命令
$ export ROS_MASTER_URI=http://192.168.11.100:11311
$ roslaunch turtlebot_rviz_launchers view_navigation.launch

设置起点

  • rviz 打开后显示 D1 默认所在的位置是栅格的中心点,不一定是 D1 实际所在的位置

  • 每次打开 rviz 都要设置起点

  • 点击 2D Pose Estimate

请输入图片描述

  • 根据当前 D1 实际位置,在地图上选择正确的位置,并调整好 D1 的正前方

请输入图片描述

设置目标点

  • 点击 2D Nav Goal

请输入图片描述

  • 在地图上选择要到达的目标点位置,并调整好 D1 停止时的正前方方向

请输入图片描述

  • 设置好目标点后,Dashgo便自主计算路径并控制 D1 向目标点移动

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: dashgo底盘入门教程