当我第一次在ubuntu20.04上使用gazebo
哇,好丢脸啊,没脸见人了
突然就有了一个长期任务,过分emo了。学习第一步,试试在我的不知道重装了多少遍的ubuntu20.04上运行一个gazebo小车模型。是根据这个视频做的记录,如有问题,欢迎指正~
一、安装gazobo环境
在安装环境之前,首先确定你的ubuntu上已经安装好了ROS,如果没,记得先去安转。可以参考这篇博客。
验证是否安装好ROS
echo $ROS_DISTRO
如出现以上界面,则安装成功~
安装依赖
sudo apt install ros-$ROS_DISTRO-gazebo-ros-control
sudo apt install ros-$ROS_DISTRO-effort-controllers
sudo apt install ros-$ROS_DISTRO-joint-state-controller
sudo apt install ros-$ROS_DISTRO-driver-base
sudo apt install ros-$ROS_DISTRO-ackermann-msgs
sudo apt install ros-$ROS_DISTRO-rtabmap-ros
sudo apt install ros-$ROS_DISTRO-teb-local-planner
sudo apt install tcl-dev tk-dev python3-tk
二、开始安转
1、创建工作空间,工作区还包含src目录
mkdir -p gazebo/src
2、下载GIT工程
cd src
git clone https://github.com/soonuse/racecar.git
因为是在github上,所以可能下载速度很慢,甚至有时候连不上,这时候需要一些科学的小手段。
3、编译
cd ../
catkin_make
4、把工作区的setup.bash文件写入.bashrc文件中
编译完成后。工作区生成了一个build和一个devel文件夹,在devel文件夹中有一个setup.bash文件
在devel文件夹中打开终端,输入以下命令
pwd
另开一个终端
sudo gedit .bashrc
在打开的文件最后写下自己得到的setup.bash文件路径,如
保存文件,为了使用配置,输入
. .bashrc
5、如果编译不通过的话
检查一下OpenCVConfig.cmake所在的目录
先安装locate
sudo apt install mlocate
更新硬盘指引
sudo update db
查找OpenCVConfig.cmake
locate OpenCVConfig.cmake
然后将路径写入racecar_gazebo的CMakeLists.txt文件中
把OpenCV_DIR后面的路径改成前面找到的路径,注意不是文件的路径
三、开始仿真
1、验证地图是否可以正常仿真
在终端中输入
roslaunch racecar_gazebo racecar_runway.launch
如果没有报错,而是卡在开始界面,就是缺少models文件,所以需要再次下载
在终端输入:
cd .gazebo
git clone https://github.com/orsf/gazebo_models.git
然后等待很长很长很长一段时间
下载完成后,记得改一下gazebo_models文件夹的名字,改成models即可
2、创建地图
再次启动终端,进入仿真环境(在实际生产中对应的是真实的机器人和真实的地图):
roslaunch racecar_gazebo racecar_runway.launch
再开启一个终端,进如rviz环境(对应的是订阅的传感器消息):
roslaunch racecar_gazebo slam_gmapping.launch
利用WASD案件控制小车在不翻车的情况下走完整的路径,可以看到在RVIZ界面中创建完整的地图。
保存地图,这里的路径是自己的map路径,记得改成自己的
rosrun map_server map_saver -f /home/computer/Gazebo/src/racecar/racecar_gazebo/map/map_runway
保存完之后,会在指定位置生成对应的pgm和yaml文件
四、尝试自动导航
关闭之前的开启的所有的终端,重新打开一次(不用保存)
roslaunch racecar_gazebo racecar_runway_navigation.launch
再开一个终端,输入:
roslaunch racecar_gazebo racecar_rviz.launch
界面如图所示:
使用2D Nav Goal工具,点击之后再按住地图内部的一点,按住鼠标左键调整箭头方向,这样即可发布小车目标点的位置信息。发布完成后,,地图上会出现一条绿色的规划路线,此时小车不会运动,再开一个终端,运行追踪脚本
rosrun racecar_gazebo path_pursuit.py
这个脚本会告诉小车需要以什么方式沿着绿色的规划路线前进,启动之后小车就开始动了。
一段时间后,小车到达终点,演示完毕。
可能存在的问题(我存在)
不知道为什么,使用了2D Nav Goal工具,但是没出现绿色的路径,查询之后采取了以下解决方案
sudo apt install ros-noetic-move-base* ros-noetic-turtlebot3-* ros-noetic-dwa-local-planner
sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers
sudo apt install ros-noetic-costmap-2d
再次重启仿真环境和rviz环境,成功!!!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)