树莓派实现自主导航

2023-05-16

使用 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插入 字样

  • 通过键盘上的 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 向目标点移动

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派实现自主导航 的相关文章

随机推荐

  • 51单片机实现电脑散热器仿真

    源代码 xff1a include 34 reg51 h 34 define uchar unsigned char define uint unsigned int sbit DQ 61 P3 6 温度数据口 sbit wx1 61 P1
  • Linux时间函数time()、ctime()、ctime_r()、localtime()、localtime_r()、asctime()、strftime()的转换关系

    上面这个图就是它们所有函数的关系转换 xff0c 比较清晰 xff0c 不需要太多文字描述 下面是它们的代码实现过程 xff1a include lt stdio h gt include lt unistd h gt include lt
  • 在/mnt/看不到共享文件夹的解决

    看了很多文章 xff0c 觉得这篇说得很有用 xff0c 解决了我的问题 https blog csdn net huyangzhilin article details 70666937 忙了好几天的功夫 xff0c 借鉴了N多大神的经验
  • Malloc是如何分配内存的?

    基础知识思考整理 地址 xff1a http blog csdn net aganlengzi article details 51339493 在用户调用malloc之后 xff0c 系统中发生了什么呢 xff1f 首先明确以下几点 xf
  • 多维数组的初始化。大括号{}与小括号()的区别

    include lt stdio h gt int main void int a 3 2 61 0 1 2 3 4 5 int b 3 2 61 0 1 2 3 4 5 int p int p1 p 61 a 0 p1 61 b 0 pr
  • ubuntu16.04修改复制粘贴快捷键的方法

    Ubuntu虚拟机在terminal使用CTRL 43 C CTRL 43 V xff0c 复制 xff0c 粘贴的办法 xff1a 选择 xff1a Terminal gt Preference gt Shortcut 把你要修改的复制
  • 虚拟机ubuntu16.04的备份与恢复方法

    本文目的在于记录在命令行的模式下进行linux系统的备份与还原 xff0c 虽然系统的备份方法有很多种 xff0c 但本文只记录最简单粗暴的一种 首先成为root用户 xff1a sudo su 然后进入文件系统的根目录 当然 xff0c
  • VSCode C++代码提示和补全

    网上都说安装完扩展C C 43 43 Extension就可以了 xff0c 但我这儿不行 xff0c 发现是因为需要自己另外提供头文件 xff0c 于是利用了mingw的头文件 1 解压i686 4 9 3 release posix d
  • vs 写c++一个类的头文件放在改工程下的一个子目录里,include出错

    工程名test 类名http 子目录 xff1a http 在主源文件中include这个http 的头文件时 xff0c include 34 http http h 34 编译出错 一定要改成绝对路径 include 34 home m
  • STM32 FreeRTOS堆、栈以及系统堆栈

    stm32以及freertos 堆栈解析 https blog csdn net sinat 36568888 article details 124320985 1 当freertos采用heap 4内存分配方案时 xff0c stm32
  • 在linux下如何编译c/c++代码(库)

    目录 在linux下如何编译c c 43 43 代码 库 1 运行环境 1 学知资料 2 Linux下静态库和动态库的区别 2 基本文件类型 2 c c 43 43 程序编译使用基本流程 2 gcc和g 43 43 区别 3 gcc基本使用
  • Ubuntu系统用火狐浏览器无法上网问题的解决方法

    刚做的Ubuntu系统用火狐浏览器无法上网问题的解决方法 首先打开终端 xff0c 输入 xff1a sudo apt get update 等待出现完成字样 其次再输入 xff1a sudo apt get install firefox
  • Raspberry Pi2/3引脚介绍

    引脚图 Raspberry Pi2 3引脚如下图所示 xff1a Raspberry Pi 3 的硬件接口通过开发板上的 40 排针 J8 公开 功能包括 xff1a 17x GPIO 引脚1x SPI 总线1x I2C 总线2x 5V 电
  • robot_pose_ekf 使用说明

    协方差参数的设置 主要确定mpu6050和odom编码器协方差参数的设置 参考 xff1a turtlebot node协方差的设置 mpu605参数的设置 参考 xff1a https github com Arkapravo turtl
  • 互斥锁、读写锁 、 自旋锁和RCU锁

    基础知识思考整理 http blog csdn net aganlengzi article details 50996227 互斥锁 mutex xff1a 在访问共享资源之前对进行加锁操作 xff0c 在访问完成之后进行解锁操作 加锁后
  • Dashgo D1概述

    概述 Dashgo D1是深圳EAI科技专门针对ROS开发的移动平台 xff0c 自主研发的核心结构保证了载重大 动力足 续航长和扩展性强的性能 xff0c 深受创客 科研 企业的欢迎 主要特性 xff1a 易于使用 由整机及其附件组成 x
  • 搭建Dashgo运行环境

    安装 设置用户的串口读取权限 span class hljs built in sudo span usermod span class hljs operator a span G dialout your user name your
  • 超声波避障

    运行如下脚本 roslaunch dashgo bringup bringup smoother ob span class hljs preprocessor launch span 在另一个终端运行 rostopic span clas
  • 虚拟机VirtualBox安装Ubuntu14.04

    本教程的运行环境 xff1a Windows 7 虚拟机 VirtualBox xff0c Ubuntu 14 04 1 准备 下载 VirtualBox5 0版可以使用后面提供的OVA镜像直接导入 xff0c 镜像是ROS的集合环境 xf
  • 树莓派实现自主导航

    使用 Flash Lidar F4 激光雷达进行自主导航 树莓派的IP假设为192 168 11 100 该教程基于地图已经建好并保存的情况下 teb amcl demo launch 的 args 参数要与前面 gmapping demo