树莓派实现自主导航

使用 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
$ vim teb_amcl_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" />

<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"/> 
<arg name="initial_pose_y" default="0.0"/> 
<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

以上面修改 teb_amcl_demo.launch 文件为例,介绍 vim 的基本使用

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

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

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

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

  • 通过键盘上的 DeleteBackspace 来删除 my_pi_map ,填写 my_map

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

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

运行地图自主导航节点

Ctrl + Alt + T 打开命令窗口,运行命令

$ ssh pi@192.168.11.100
$ roslaunch dashgo_nav teb_amcl_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 向目标点移动

你可能感兴趣的:(导航,Dashgo,D1使用手册)