智能车我之前博客里面也有写,不过这里还是写进来吧。 |
我是使用的别人github上开源出来的代码
进入到你的ros工作空间下的src文件下,打开终端,下载源码包
git clone https://github.com/xmy0916/racecar.git
进入到工作空间下
cd catkin_ws/
catkin_make
这时候编译会遇到许多错误,依次解决吧
主要安装的版本需要与你自己的ubuntu版本相对应,我的ubuntu版本是18,下面装的是melodic,16的话改成kinetic即可
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
sudo apt-get install ros-melodic-driver-base
sudo apt-get install ros-melodic-ackermann-msgs
通过执行下面代码得到opencv的路径
locate OpenCVConfig.cmake
应该会得到多条路径,选择结尾为OpenCVConfig.cmake的
执行
gedit ~/catkin_ws/src/racecar-master/racecar_gazebo/CMakeLists.txt
修改第七行为你的opencv路径 |
#include
#include
#include
替换成
#include
#include
roslaunch racecar_gazebo racecar.launch
运行出来的地图是作者已经做好的,我们后续可以自己创建地图
roslaunch racecar_gazebo racecar_runway.launch
运行
gazebo
将建立好的地图保存
关闭gazebo,随后在重新启动一次,选择前面保存好的模型
注意坐标点落在模型中的位置
在地图中加入障碍物
保存地图
将地图名字改为你保存好的地图名
再次运行赛道,就可以看到已经是你自己建立的赛道了
运行
roslaunch racecar_gazebo slam_gmapping.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch
通过WASD控制小车运动,来建图,不过小车运行比较慢,完整建立花费时间比较长
rosrun map_server map_saver -f test_map
这两个文件会保存在你的主目录下,如/home/xx/下,需要将这两个文件文件复制到map文件下
roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch
安装
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给小车发布运动位置小车即可运动(但是运动速度堪忧!!慢的不行。再想想怎么提速吧!!)
需要注意的是,不能直接到github网站上去下载,那样下载下来的darknet文件夹里面是空的,只能通过git clone下载,且必须要加上--recursive才能够下载完全。但是这样克隆会报错误。因为需要配置ssh以及生成密匙 |
这个包是需要放在ros工作空间下的,因此最好是在工作空间下的src文件夹里面进行克隆。不过都行,你不在里面克隆最后复制进去也可以,看个人习惯。 |
git clone --recursive git@github.com:leggedrobotics/darknet_ros.git
git config --global user.name "填写用户名"
git config --globa user.email "填写邮箱"
ssh-keygen -t rsa -C "填写邮箱"
cat ~/.ssh/id_rsa.pub
进入github网站,点击右上角,选择settings
点击过后,title随便填,Key就填前面终端中获得的密钥
最在克隆即可,会弹出一个窗口,输入密码即可
下载这几个权重文件,放在/home/xx/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights |
下载地址:yolov3.weights
yolov2.weights
yolov2-tiny.weights
回到ros工作空间下,进行编译
catkin_make -DCMAKE_BUILD_TYPE=Release
不出意外,肯定是会遇到错误的!!!哈哈哈哈哈哈 |
根据错误提示的路径找到/usr/local/include/opencv2/core/cvdef.h这个文件。在/usr/local/include/opencv2/core/这个文件夹下打开终端,执行下面代码,这个文件好像是只读的,用管理员才能进行修改。 |
sudo vim cvdef.h
与上类似,在/usr/local/include/opencv2/highgui/这个文件夹下打开终端,执行下面代码 |
sudo vim highgui_c.h
在重新编译,应该就是能够通过的!!最好编译通过过后在将修改的地方改回去,万一后面那里用的上呢!! |
成功过后截图 |
可以先启动gazebo
roslaunch racecar_gazebo racecar_runway_navigation.launch
但是这么多与camera有关的话题,那个才是我们需要的呢?因此,我查看了一下小车的模型文件 |
roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch
roslaunch darknet_ros darknet_ros.launch
如果出现这个错误 |
这个错误大概率是因为将这个包从windows移动到ubuntu上过后,有些cfg文件识别不到。(这个问题也太难解决了,还是在github上的issues找到解决办法的!!!!)。 |
回到/home/xx/catkin_ws/src/darknet_ros目录下,打开终端,执行 |
git stash
最后在修改Image订阅的话题即可 |
在你启动了gazebo与yolo过后,可以选择订阅的话题有两个,第一个就是没有进行检测的图像,而第二个就是yolo检测过后的图像 |
找到路径/home/xx/catkin_ws/src/darknet_ros/darknet_ros/config,可以看到一些yaml文件 |
找到路径/home/xx/catkin_wsc/darknet_ros/darknet_ros/launch |
改成你需要改的即可
但是我的用v3跑出来会报错,还在找问题!!
参考链接