位置: IT常识 - 正文

基于ROS的SLAM建图、自动导航、避障(冰达机器人)(ros算法)

编辑:rootadmin
基于ROS的SLAM建图、自动导航、避障(冰达机器人)

推荐整理分享基于ROS的SLAM建图、自动导航、避障(冰达机器人)(ros算法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ros slam建图,ros calibration,ros基于什么语言,ros calibration,ros calibration,ros基础,ros简单例子,ros中slam,内容如对您有帮助,希望把文章链接给更多的朋友!

SLAM是Simultaneous localization and mapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题。机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。

小车可以运行ros中激光雷达功能包,在PC端的rviz中可以查看;在启动底盘、键盘控制后可以控制小车移动;根据SLAM算法对实验室的环境进行建图;可以保存、读取地图,在PC端控制小车从A点到B点实现路径规划并自动避障。

本文以冰达机器人小车为例,在实际使用过程中遇到了一些问题,总结出的较为详细的教程。

软件平台:Linux(Ubuntu18.04.6)。

硬件平台:冰达机器人。

语言版本:Python 2.7

一.安装ROS及配置环境1.ROS安装

个人推荐使用小鱼的一键安装,可以解决99%的问题

一键安装指令:

wget http://fishros.com/install -O fishros && . fishros

官网:主页 | 鱼香ROS(但是教学以ROS2为主,冰达机器人只能用ROS1) 开源地址:https://github.com/fishros/install

2.工作区安装

首先从git上下载所需要的功能包到你的工作空间,我们还是以catkin_ws工作空间为例

mkdir -p ~/catkin_ws/src/cd ~/catkin_ws/src/git clone https://gitee.com/bingda-robot/base_control.gitgit clone https://gitee.com/bingda-robot/lidar.gitgit clone https://gitee.com/bingda-robot/robot_vision.gitgit clone https://gitee.com/bingda-robot/robot_navigation.gitgit clone https://gitee.com/bingda-robot/robot_simulation.git

拉取完成后编译工作空间

cd ~/catkin_ws/catkin_make

然后来解决功能包依赖 如果你的rosdep可以正常使用(按照这个教程都可以正常使用),那么可以通过rosdep来检查依赖的包是否都满足

cd ~/catkin_ws/rosdep check --from-path src

如果执行结果为“All system dependencies have been satisfied”,则所有依赖项目已经满足,无需安装 否则,再执行下面指令安装依赖包

rosdep install --from-path src -y

如果你的rosdep无法正常工作,那么你可以通过安装我们所提供的依赖清单来手动安装

sudo apt-get updatesudo apt-get install ros-$ROS_DISTRO-teleop-twist-keyboard ros-$ROS_DISTRO-amcl ros-$ROS_DISTRO-move-base ros-$ROS_DISTRO-slam-gmapping ros-$ROS_DISTRO-slam-karto ros-$ROS_DISTRO-cartographer ros-$ROS_DISTRO-cartographer-ros ros-$ROS_DISTRO-dwa-local-planner ros-$ROS_DISTRO-teb-local-planner ros-$ROS_DISTRO-uvc-camera ros-$ROS_DISTRO-map-server ros-$ROS_DISTRO-hector-slam* ros-$ROS_DISTRO-global-planner ros-$ROS_DISTRO-navfn -y

设置环境变量

cd /catkin_ws/develsource setup.bash二.配置分布式连接机器人:ssh bingda@192.168.9.1打开虚拟机终端输入,ifconfig查看Ubuntu的IP地址,让两个机器互ping,确保可以收到数据。在PC端输入gedit .bashrc 对 .bashrc进行修改(名字、机器人ip),添加相关信息,如下图所示。

    图1 .bashrc文件新增内容

三.同步小车时间

.因为robot没有断电保护,所以每次关机重启后,它的时间不能与真实时间对应上,而我们的pc是能够连接外网,能够通过ntp服务器进行时间校准 如果在实验中pc没有外网环境,先帮pc获取一个外网环境,然后安装一个ntp服务器:

bingda@ubuntu:sudo apt install ntp

把我们的pc当成一个ntp服务器,robot去根据pc进行自身的时间校准:

bingda@robot:sudo ntpdate 192.168.x.x //每个人电脑分配的ip不同,这里以自己的pc的ip为准基于ROS的SLAM建图、自动导航、避障(冰达机器人)(ros算法)

如果发现robot无法通过pc进行时间校准,则手动校准时间:

bingda@robot:sudo date --s=" 2022-06-21 11:12:00"四.启动激光雷达启动激光雷达:bingda@robot:roslaunch robot_navigation lidar.launch查看发布的话题,寻找雷达:bingda@robot:rostopic list  

3.打印雷达扫描的数据:

bingda@robot:rostopic echo /scan

4.pc:用rviz查看图像:

elcielo@Skyn3ss:roslaunch robot_navigation lidar_rviz.launch

图2 运行激光雷达

五.运行激光雷达和激光SLAM建图

1.运行激光雷达:

bingda@robot:roslaunch robot_navigation robot_slam_laser.launch

2.启动底盘:

bingda@robot:roslaunch base_control base_control.launch

3.启动键盘控制:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

4.用rviz查看图像:

elcielo@Skyn3ss:roslaunch robot_navigation slam_rviz.launch

5.查看地图文件:

bingda@robot:roscd robot_navigation/maps

6.保存map:

bingda@robot:rosrun map_server map_saver -f map

图3 保存后的地图及结点

六.运行激光雷达和避障

1.运行激光雷达避障(会读取之前保存的地图):

bingda@robot:roslaunch robot_navigation robot_navigation.launch

2.用rviz查看:

elcielo@Skyn3ss:roslaunch robot_navigation navigation_rviz.launch

3.用2D Pose Estimate改变初试位置,让小车的雷达范围与之前保存的地图基本一致。

4.用2D Nav Goal指向我们的目标地,小车会自动规划路径并行驶到目标点处。

图4 读取地图

 图5 路径规划

七.其他问题1.没有地图数据

检查分布式配置(互ping);

检查Python版本,一定是Python2。

2.xxx is neither a launch file in package nor xxx is a launch file name

没有把工作区环境添加到.bashrc,或者在每次运行前去工作区目录source一下。

本文仅代表个人观点,如有错误,望读者指出。
本文链接地址:https://www.jiuchutong.com/zhishi/294466.html 转载请保留说明!

上一篇:Vue的常见性能优化(vuejs性能)

下一篇:js 点击图片实现查看大图(js点击图片跳转页面)

  • 网络推广的常用方法(网络推广常用方法包括)

    网络推广的常用方法(网络推广常用方法包括)

  • WIN10系统如何隐藏任务栏图标(win10系统如何隐藏盘符)

    WIN10系统如何隐藏任务栏图标(win10系统如何隐藏盘符)

  • dbms提供的数据保护功能有(mydql数据库)

    dbms提供的数据保护功能有(mydql数据库)

  • 淘宝卖家用什么软件管理店铺(淘宝卖家用什么app管理店铺)

    淘宝卖家用什么软件管理店铺(淘宝卖家用什么app管理店铺)

  • 为了您的微信安全暂不能绑定手机(为了您的微信安全暂时不能绑定手机)

    为了您的微信安全暂不能绑定手机(为了您的微信安全暂时不能绑定手机)

  • m685q是魅族几(m685c是魅族啥型号)

    m685q是魅族几(m685c是魅族啥型号)

  • qq空间在哪里找(qq里的qq空间在哪里找)

    qq空间在哪里找(qq里的qq空间在哪里找)

  • 抖音阅读量为0是怎么回事(抖音阅读量为0什么意思)

    抖音阅读量为0是怎么回事(抖音阅读量为0什么意思)

  • 如何御载下载过的应用(怎么下载下过的应用)

    如何御载下载过的应用(怎么下载下过的应用)

  • 抖音极速版和抖音短视频有什么区别(抖音极速版和抖音账号互通吗)

    抖音极速版和抖音短视频有什么区别(抖音极速版和抖音账号互通吗)

  • 快手极速版如何暂停视频(快手极速版如何注销账号?)

    快手极速版如何暂停视频(快手极速版如何注销账号?)

  • 联想m7650dnf清零方法(联想m7605d 清零)

    联想m7650dnf清零方法(联想m7605d 清零)

  • 美团红包可以异地使用吗(美团红包异常怎么回事)

    美团红包可以异地使用吗(美团红包异常怎么回事)

  • 苹果手机充电孔变松了怎么修(苹果手机充电孔坏了维修多少钱)

    苹果手机充电孔变松了怎么修(苹果手机充电孔坏了维修多少钱)

  • 华为gt242和46区别(华为gt246mm和gt242mm的区别)

    华为gt242和46区别(华为gt246mm和gt242mm的区别)

  • word样本模板在哪(world样本模板 在哪里)

    word样本模板在哪(world样本模板 在哪里)

  • 淘宝开团什么意思(淘宝开团啥意思)

    淘宝开团什么意思(淘宝开团啥意思)

  • 京东等待收货是什么意思(京东等待收货是怎么回事)

    京东等待收货是什么意思(京东等待收货是怎么回事)

  • 乐视2怎么用otg功能

    乐视2怎么用otg功能

  • iPhone11pro怎么取消应用上的红点(苹果11pro max怎么把卡取出来)

    iPhone11pro怎么取消应用上的红点(苹果11pro max怎么把卡取出来)

  • qq群礼物怎么提现(qq群礼物怎么提现到qq钱包)

    qq群礼物怎么提现(qq群礼物怎么提现到qq钱包)

  • 微机内存按什么编址(微机内存按什么编制?)

    微机内存按什么编址(微机内存按什么编制?)

  • ppt打印设置(ppt打印设置在哪)

    ppt打印设置(ppt打印设置在哪)

  •  苹果id姓名必须真实吗(苹果id姓名必须是本人吗)

    苹果id姓名必须真实吗(苹果id姓名必须是本人吗)

  • vue大型电商项目尚品汇(前台篇)day05(用vue做的企业项目)

    vue大型电商项目尚品汇(前台篇)day05(用vue做的企业项目)

  • 个人所得税应如何缴纳
  • 初级农产品免税原理
  • 制单会计岗位实验报告
  • 飞机票抵扣进项税怎么计算民航发展基金
  • 交通补贴税前扣除标准
  • 企业出包工程预付的工程款
  • 房租收到专票账务处理
  • 已导出的申报表如何修改
  • 房产税的原值是如何确定的
  • 折扣销售指
  • 公司交增值税的好处
  • 出口退税注销备注怎么填
  • 增值税普票税额
  • 营业资金账簿印花税减半
  • 增值税税负率计算器
  • 增值税申报尾差怎么做账
  • 公户转账备注写错会查吗
  • 技术服务费怎么开票
  • 资金占用费如何开票
  • 消费税税目是否含税
  • 以前年度损益调整会计分录
  • 一般纳税人免税申报表怎么填
  • 专用发票的审核要多久
  • 同一控制下合并对价怎么算
  • 固定资产作为投资入股为何体现在资本公积
  • 企业所得税季度申报表季度平均值
  • 以租代购算固定资产吗
  • 小规模年底税金怎么算
  • php ftell
  • 房产税计税的税率可分为
  • 企业安置残疾人如何残联备案
  • 审核原始凭证应注意
  • 前端软件开发工具
  • 注册公司时认缴和实缴时间怎么填
  • 计提城建税是在当月提吗
  • 小程序开发定制
  • linux如何搭建
  • 没有报税盘
  • thinkphp 手机号和用户名同时登录
  • 小规模纳税人每月申报什么税
  • 住宿费电子发票没有章
  • ai线型工具介绍
  • flex布局用法
  • 注册资本增加了怎么做账
  • 应收账款减值损失计入
  • 承租人对融资租赁的处理原则
  • 调账处理
  • 织梦自定义字段
  • 领取定额备用金的会计分录
  • sa密码不满足强密码要求
  • 房产出租税率是多少
  • 抵扣联明细没认证如何申报
  • 预付一年的房租怎么做账
  • 盘盈存货账务处理
  • 以前年度费用怎么记账
  • 加计减免其他收入怎么填
  • 普票不开明细可以不
  • 连接mysql服务命令
  • mysql与sqlyog
  • mysq删除数据库
  • 如何删除windows更新文件
  • crack.exe是什么意思
  • windows10日历没有显示农历
  • linux groupmod命令参数及用法详解(linux修改组信息命令)
  • 让人吃惊的成语有哪些
  • dos内部命令大全
  • jquery model
  • node语句
  • Shell脚本中不同进制数据转换的例子(二进制、八进制、十六进制、base64)
  • koa与node.js开发实战
  • javascript概述及作用
  • JQuery之proxy实现绑定代理方法
  • python集合的基本操作
  • 深圳电子税务局怎么查以前申报表
  • 转让土地的土地增值税
  • 地税的发票是什么样
  • 2021西安雁塔区第一幼儿园运动会
  • 江苏税务缴费小程序
  • 建筑企业个人所得税管理办法
  • 粮食部门是不是国家机关
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设