使用 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" />
<!-- 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
以上面修改 teb_amcl_demo.launch
文件为例,介绍 vim 的基本使用
- 打开
teb_amcl_demo.launch
文件
$ vim teb_amcl_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 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 向目标点移动