操作系统:ubuntu16.04
ROS版本:kinetic
Gazebo版本:7.0.0
如果之前安装好了,可以省去这一步
sudo apt-get install ros-kinetic-driver-base sudo apt-get install ros-kinetic-gazebo-ros-control sudo apt-get install ros-kinetic-effort-controllers sudo apt-get install ros-kinetic-joint-state-controller sudo apt-get install ros-kinetic-ackermann-msgs sudo apt-get install ros-kinetic-global-planner sudo apt-get install ros-kinetic-teb-local-planner所以之前的编译是成功的,可以成功显示小车模型
将鼠标放到小框中,可以控制小车移动
①输入以下代码
cd racecar_ws source ./devel/setup.bash roslaunch racecar_gazebo slam_gmapping.launch②控制小车,跑完整个赛道 ③跑完赛道后,如下图所示
保存的路径为/racecar_ws/src/racecar/racecar_gazebo/map 保存的名字为map_racecar
cd ~/racecar_ws/src/racecar/racecar_gazebo/map rosrun map_server map_saver -f map_racecar
①启动导航和环境地图
cd racecar_ws/ source ./devel/setup.bash roslaunch racecar_gazebo racecar_runway_navigation.launch②启动rviz
cd racecar_ws/ source ./devel/setup.bash roslaunch racecar_gazebo racecar_rviz.launch③用2D Nav Goal进行手工导航 ④启动导航脚本
cd racecar_ws/ source ./devel/setup.bash rosrun racecar_gazebo path_pursuit.py此时可以观察到小车正在慢速地沿着赛道移动:
①打开gazebo ②点击左上角Edit->Build Editor,开始建立地图 ③保存地图,打开文件可以看到保存的地图在如下设置的位置 ④运行小车模型,导入刚刚建立的地图,并保存world文件 a.新建终端,输入以下代码
cd racecar_ws source ./devel/setup.bash roslaunch racecar_gazebo racecar.launchb.拖入建立的地图到合适的位置 ⑤在赛道中添加障碍物 ⑥保存world文件到下载功能包中的racecar_gazebo包中的worlds文件夹中 ⑦创建launch文件,填写赛道配置参数
touch pww.launch gedit pww.launch写入以下代码:
<?xml version="1.0"?> <launch> <!-- Launch the racecar --> <include file="$(find racecar_gazebo)/launch/racecar.launch"> <arg name="world_name" value="pwww"/> </include> </launch>⑧接下来的步骤与之前的步骤一致,在运行的时候只需要改成对应的文件名字。
①下载darknet_ros包
git clone --recursive git@github.com:leggedrobotics/darknet_ros.git②下载权重文件,并放入以下目录 ③在工作空间下编译下载好的包
catkin_make -DCMAKE_BUILD_TYPE=Release④修改yaml文件中的话题为智能车摄像头的话题 查看: 修改以下地方: ⑤启动gazebo,可以在赛道上添加其他目标进行检测
cd racecar_ws/ source ./devel/setup.bash roslaunch racecar_gazebo racecar_runway.launch⑥启动yolov2检测目标
cd racecar_ws/ source ./devel/setup.bash roslaunch darknet_ros darknet_ros.launch分析:该检测目标的效果不是很好,会出现检测错误的情况,并且FPS值很低。
①下载相关控件时,显示无法定位软件包,解决办法是用电脑连接手机热点或者重新启动Ubuntu,即可解决问题 ②在tk窗口无法控制小车移动,解决办法是删掉功能包,重新下载一遍,问题得到解决。 ③在克隆包的时候,出现Permanently added the RSA host key for IP address ‘13.250.177.223’ to t he list of known hosts这个问题,解决办法是在github上添加一个公钥,参考链接
总的来说这次的实验做的比较顺畅,没有遇到什么太大的问题,相比之下,无人机的定位导航仿真坑比较多,做了很久无人机还是存在问题,由于时间的因素,转为做智能车,但是后续会继续解决问题。这次进行仿真用到代码还是有很多不足,比如小车移动遇到障碍时,会存在卡在障碍物不动的情况,需要手动更改车的位置。在使用yolo检测目标时,会出现识别错误的现象,所以这种检测目标的方法效果不是很好。
①https://blog.csdn.net/miss_bear/article/details/107137732 ②https://blog.csdn.net/qq_42451251/article/details/107108445
