热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ROS下搭建仿真模拟环境,编程控制小车,按照给定赛道完成比赛

文章目录一、下载包以及编译1、下载源码包2、编译3、错误解决(1)、controllers相关(2)、driver_base


文章目录

  • 一、下载包以及编译
    • 1、下载源码包
    • 2、编译
    • 3、错误解决
      • (1)、controllers相关
      • (2)、driver_base相关
      • (3)、ackermann_msgs相关
      • (4)、Could not find a package configuration file provided by "OpenCV"
      • (5)、findLine.cpp找不到头文件
  • 二、启动仿真
    • 1、运行小车模型
    • 2、运行赛道
  • 三、自己建立赛道
    • 1、建立与保存地图
    • 2、修改文件
  • 四、通过自己建立的赛道进行gmapping建图
    • 1、gmapping建图
    • 2、保存地图
  • 五、小车进行导航运动
    • 1、通过WASD控制小车运动
    • 2、小车导航运动


一、下载包以及编译


1、下载源码包

我是使用的别人github上开源出来的代码
进入到你的ros工作空间下的src文件下,打开终端,下载源码包

git clone https://github.com/xmy0916/racecar.git

在这里插入图片描述


2、编译

进入到工作空间下

cd catkin_ws/

catkin_make

3、错误解决

这时候编译会遇到许多错误,依次解决吧
主要安装的版本需要与你自己的ubuntu版本相对应,我的ubuntu版本是18,下面装的都是melodic,16的话改成kinetic即可


(1)、controllers相关

sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-effort-controllers
sudo apt-get install ros-melodic-joint-state-controller

(2)、driver_base相关

sudo apt-get install ros-melodic-driver-base

(3)、ackermann_msgs相关

sudo apt-get install ros-melodic-ackermann-msgs

(4)、Could not find a package configuration file provided by “OpenCV”

通过执行下面代码得到opencv的路径

locate OpenCVConfig.cmake

应该会得到多条路径,选择结尾为OpenCVConfig.cmake的

执行

gedit ~/catkin_ws/src/racecar-master/racecar_gazebo/CMakeLists.txt

修改第七行为你的opencv路径
在这里插入图片描述


(5)、findLine.cpp找不到头文件

在这里插入图片描述
打开这个cpp文件,修改头文件

#include
#include
#include

替换成

#include
#include

二、启动仿真


1、运行小车模型

roslaunch racecar_gazebo racecar.launch

这时回启动gazebo,在里面可以看到一个小车的模型
在这里插入图片描述


2、运行赛道

运行出来的地图是作者已经做好的,我们后续可以自己创建地图

roslaunch racecar_gazebo racecar_runway.launch

在这里插入图片描述


三、自己建立赛道


1、建立与保存地图

运行

gazebo

在这里插入图片描述
将建立好的地图保存
在这里插入图片描述
关闭gazebo,随后在重新启动一次,选择前面保存好的模型
在这里插入图片描述
注意坐标点落在模型中的位置
在这里插入图片描述
在地图中加入障碍物
在这里插入图片描述
保存地图在这里插入图片描述


2、修改文件

将地图名字改为你保存好的地图名
在这里插入图片描述
再次运行赛道,就可以看到已经是你自己建立的赛道了
在这里插入图片描述


四、通过自己建立的赛道进行gmapping建图


1、gmapping建图

运行

roslaunch racecar_gazebo slam_gmapping.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch

在这里插入图片描述
通过WASD控制小车运动,来建图,不过小车运行比较慢,完整建立花费时间比较长
在这里插入图片描述
在这里插入图片描述


2、保存地图

rosrun map_server map_saver -f test_map

这两个文件会保存在你的主目录下,如/home/xx/下,需要将这两个文件文件复制到map文件下
在这里插入图片描述


五、小车进行导航运动


1、通过WASD控制小车运动

修改文件
在这里插入图片描述
启动导航和环境地图,启动rviz

roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch

在这里插入图片描述
在这里插入图片描述
控制小车运行过后
在这里插入图片描述


2、小车导航运动

安装

sudo apt-get install ros-melodic-teb-local-planner

启动导航和环境地图,启动rviz

roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch

在启动py文件

rosrun racecar_gazebo path_pursuit.py

接着在rviz中选择2D Nav Goal给小车发布运动位置小车即可运动(但是运动速度堪忧!!慢的不行。再想想怎么提速吧!!)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

到达目的后终端会显示信息
在这里插入图片描述
参考链接

个人博客链接


推荐阅读
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了解决github无法访问和克隆项目到本地的问题。作者建议通过修改配置文件中的用户名和密码来解决访问失败的问题,并提供了详细步骤。同时,还提醒读者注意输入的用户名和密码是否正确。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
author-avatar
方家菱芝合
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有