最新消息:

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

ROBOTS/其他机器人 少儿编程 1776浏览 0评论
Dashgo底盘入门教程

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

说明:

  • 介绍如何使用带陀螺仪的建图导航

提示:

  • PathGo 导航模块的默认固定 IP 是 192.168.31.200 ,默认用户名为 eaibot , 默认密码为 eaibot 。
  • D1与F4的坐标系已经校准正确的情况下

扫描建图

  • 打开一个终端,ssh登录导航模块并启动建图launch
$ ssh eaibot@192.168.31.200
$ roslaunch dashgo_nav gmapping_demo_imu.launch
  • 如图:

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

  • 打开另一个终端,启动 rviz,查看建图效果
$ export ROS_MASTER_URI=http://192.168.31.200:11311 
$ roslaunch dashgo_rviz view_navigation.launch
  • 通过 EAI 团队开发的手机 APP 控制小车移动建图,目前仅支持 Android。
  • 在 APP 启动界面,选择 “WIFI” 便进入到WiFi连接界面,如下图所示:

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

  • 需要输入的 Master IP 是导航模块的 IP 地址,即 192.168.31.200。
  • 然后点击 连接
  • 连接成功后,界面如下:

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

  • 方向的操控,如下图所示:

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

保存地图

  • 打开一个终端,ssh登录导航模块,切换到地图保存地址并使用 map_server 对已经建好的地图进行保存
$ ssh eaibot@192.168.31.200
$ roscd dashgo_nav/maps
$ rosrun map_server map_saver -f retest_map
  • 效果图:

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

  • 注意:retest_map 为自定义地图名,若与已保存地图名称同名,便覆盖原来的地图信息。

自主导航

  • 在已经启动 gmapping_demo_imu.launch 的终端,Ctrl + C 关闭 gmapping_demo_imu.launch 程序

  • 切换到 launch 文件目录,使用 vim 修改 navigation_demo_imu.launch 文件,引用已经保存好的地图

$ roscd dashgo_nav/launch
$ vim navigation_demo_imu.launch
  • 内容如下:
<launch>
  <include file="$(find dashgo_driver)/launch/demo_imu.launch"/>
  <node name="flashgo_node"          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"/>
  <param name="ignore_array"   type="string" value="" />
  <param name="ignore_value"  type="double"  value="0" />
  </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 3.14 3.14  0.0 /base_footprint /laser_frame 40" />

  <arg name="map_file" default="$(find dashgo_nav)/maps/my_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/include/imu/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/include/imu/teb_move_base.launch"/>
  <include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch"/>
  <node name="robot_pose_publisher" pkg="robot_pose_publisher" type="robot_pose_publisher" />
</launch>
  • 将 my_map.yaml 改成已经保存好的地图名称 retest_map.yaml

  • 注意:若对vim命令操作不熟悉,可参考 vim的基本使用,也可自行百度。

  • 然后,启动导航launch

$ roslaunch dashgo_nav navigation_demo_imu.launch
  • 效果图:

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

  • 切换到打开 rviz 的终端,Ctrl + C 关闭 rviz , 再重新启动 rviz
$ roslaunch dashgo_rviz view_navigation.launch

设置起点

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

  • 注意:每次打开 rviz 都要检查并设置起点。

  • 点击 2D Pose Estimate

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

  • 根据当前 D1 实际位置,在地图上选择正确的位置,并调整好 D1 的正前方方向(正前方的调整:在选择位置时,按住鼠标不放,拖动方向便可)

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

设置目标点

  • 点击 2D Nav Goal

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

  • 在地图上选择要到达的目标点位置,并调整好 D1 停止时的正前方方向(正前方的调整:在选择位置时,按住鼠标不放,拖动方向便可)

Dashgo底盘入门教程-应用-带陀螺仪的建图导航

  • 设置好目标点后,导航模块便自主计算路径并控制 D1 向目标点移动
  • 注意:每次导航时,都要先点击 2D Nav Goal 然后选择目标点,小车便自主导航移动。

您必须 登录 才能发表评论!