这个搁置了几天,今天开始正式调车。
之前看那些文档资料以为只是使用rosstudio进行开发呢,结果理解错误,那个也就真的只像是前面写的用来玩玩而已,后面还是通过一些列命令行进行调试写代码。后面的博文还是会一直写的,如果涉及到一些代码可能先不会贴出来,毕竟是备赛,等后续比赛结束我会贴出来大家一起分享,开整。

连接eaibot小车

设置中继路由器

(1)电脑连上了小车的WIFI,就不能进行上网了,这就十分影响后续开发了。不过小车内置了路由器,通过资料显示是使用了(hi-link路由模块),可以通过这个路由器,连接可以上网的WIFI,这样电脑连上小车的WiFi也能就行上网了;
(2)首先连接小车WIFI,然后在浏览器输入:192.168.31.1,在弹出框中输入用户名和密码为admin

顺利进入
(3)然后如图,选择AP Client模式
选择AP Client

(4)这里如图设置,直接点击apply
直接点击应用

(5)如图在wireless setting里面选择AP Client(这里要刷新一下,否则没有这个选项),我这里用的实验室WIFI,无密码,直接输入名称即可,选择APPLY,即可成功(只能使用路由器,无法用热点哦);
路由器连接

使用xshell或者虚拟机连接到小车

(1)这里小车的名字和密码都是eaibot, IP就是192.168.31.200;
xshell连接到小车

(2)进入后先终止一下出厂程序,执行crontab -e 将最后一行注释,然后重启(终止以后就无法正常使用rosstudio和手机端进行连接了。)

(3)虚拟机的话也可以连接到小车,这样就可以启动rviz工具等,进行监控

首先虚拟机需要启动两个终端,其中一个输入:sudo vim /etc/hosts 进入写入小车的IP和用户名;
另外一个终端先使用:ssh eaibot@192.168.31.200,连接到小车。然后同样的使用:sudo vim /etc/hosts,写入虚拟机的名字和IP;

使用小车进行建图

具体操作步骤

(1)在xshell里面输入如下指令

#启动建图
roslaunch dashgo_nav gmapping_imu.launch

启动建图
这里无红色报错,出现odom received!即正常。
在这里插入图片描述

(2)这时候建图已经启动,我们可以通过虚拟机打开,rviz查看建图。(这里要往虚拟机保存dashgo工程,然后写入bashrc,如下图)

#进入环境变量
sudo vim ~/.bashrc
#写入dashgo_ws的setup.bash位置
#最后激活一下
source ~/.bashrc

在这里插入图片描述
(3)虚拟机输入以下两条指令就可以查看结果

#查看小车的建图数据,指定如下下车的IP和端口
export ROS_MASTER_URI=http://192.168.31.200:11311
#设置好以后就可以查看 地图建图数据;
roslaunch dashgo_rviz view_navigation.launch

rviz的结果图

配置PaddleOCR环境(在python2.7上配置一顿坑,仔细看,少走弯路)

配置这个环境花费了很长时间,前期后后在虚拟机、在anaconda和远程连接小车上面总配配了不下6,7次,失败的截图和记录就不多写了,直接上成功的步骤。
首先我先说明一下,由于小车需要使用ros开发,需要的环境是python2.7,所以使用PaddleOCR需要支持python2.7的版本,所以适用的版本是PaddleOCR-release-1.1,这个是可以兼容python2.7。
(1)首先是 paddlepaddl的版本选择,直接进入如下网页:

paddlepaddle的旧版本安装
我这里没有安装最新的2.0, 2.1我安装的是V1.8版本的,首先看一下它的环境支持,
V1.8环境支持

注意:首先是python版本,是支持2.7.15+,经常查询我的虚拟机环境和小车环境都是2.7.12,不过是可以正常安装的,其次就是pip版本,这里最开始没注意,我的版本是8.1.1,pip安装的时候一堆报错,所以直接要更新。

$ pip show pip

pip版本查看

#我直接使用这个命令是失败的
sudo pip install --upgrade pip
#我先指定版本
python -m pip install --user --upgrade pip==9.0.3
然后再使用如下,命令成功(要使用sudo,否则会提示权限不够)
sudo pip install --upgrade pip

pip更新成功
注意,无语的来了 同样的方法我在xshell里面对小车进行操作是失败的,要么直接回到8.1.1版本,要么升级直接报错,然后pip就无法使用的,这里没有截图了,反正这种方法是不行了。所以我就直接索性想到直接下载安装包进行安装。进入如下网址:

pip包下载
这里要注意,主页是最新的安装包21.1.3,但是阅读说明可以看到它不支持python2.7,但是我们可以通过上面的截图发现虚拟机自动安装的是20.3.4版本,所以直接下载这个版本的zip包,依次执行以下命令(下载的安装包可以通过WinSCP软件连接传输文件):

#建立一个文件夹
mkdir pip
cd pip
#把pip安装包复制进来进行解压缩
tar -zxvf pip-20.3.4.tar.gz
cd pip-20.3.4
sudo python setup.py install
#查看是否安转成功
 pip -V

pip安装成功

(2)pip的问题解决了,可以愉快的根据官网的步骤进行操作,输入如下命令:

sudo python -m pip install paddlepaddle==1.8.5 -i https://mirror.baidu.com/pypi/simple

当然,事情是不会这么顺利的,安装其它的都没问题,opencv安装报错,那就单独安装吧。(后面补充,在后面运行图像识别的时候,提示使用的opencv是ros路径下的一个版本,所以ros里面带的有opencv,所以这里可能不需要再单独安装opencv,当然,安装了也没影响,不安装的话我也不知道有什么问题,没尝试)

opencv安装出现报错

当然,opencv的安装包那么多,该安装哪一个呢?我是踩了一顿坑,因为既要满足opencv又要满足paddle对应的版本,而这两个又有一堆其它安装包,所以经过几次测试,终于找到一个合适的\

pip2 install opencv-python==3.4.0.12

成功安装opencv
(3)再一次安装paddlepaddle,成功后使用import paddle ,没报错,安装成功。这里有个错误说是老版本的scipy没卸载成功,没影响,可以手动卸载。

安装成功
(4)接下来就是安装其它依赖包,在虚拟机上安装完依赖包以后有一堆的警告,反正就是版本不适合,你只要重新安装指定版本就行,因为很多依赖包默认安装最新的,所以指定一下,就没问题了。

pip install shapely

在这里插入图片描述

#这里就有个错误提醒, matplotlib版本太低,等会重新安装即可
pip install imgaug

在这里插入图片描述

pip install pyclipper
pip install lmdb
pip install tqdm
pip install numpy
pip install matplotlib==2.0.0

在这里插入图片描述
(5)基本环境安装完成了,然后进入这个完整下载代码和模型,不过这时候运行有报错说是模块没有,明明我在虚拟机上使用都成功了,所以很绝望,但是不放弃,我又重新执行了这个,再尝试,噢耶,成功了!

paddleOCR V1.1 github链接
在这里插入图片描述

#执行官方给的这一段命令,记得下载模型和代码,可以看到有输出,也生成了一张识别后的图片
python tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/"  --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True

在这里插入图片描述

(6)小方法,由于远程连接的小车,我想查看图片可以通过这个方法:

#进入图片所在文件夹,然后输入下面一条指令
cd inference_results/
python -m SimpleHTTPServer
#浏览器输入ip地址和8000端口,就可以看到图片啦
http://192.168.31.200:8000/

在这里插入图片描述

2021-10-27补充
在群里看到解决python2.7安装paddle报错的一些解决方法,可以参考学习

以下操作都是在小车中操作,paddlepadlle版本2.0.0
1.报protobuf错误
sudo pip uninstall protobuf
pip install 3.17.3

2.报GLIBCXX3.14.22错误
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++6.so
然后复制新的libstdc++6.so到/usr/lib/x86_64-linux-gnu/目录

3.报Image.Box错误
sudo pip uninstall pillow
pip install pillow

4.报urllib3  chardet版本警告Warn
sudo pip uninstall urllib3
pip install urllib3==1.26.4
sudo pip uninstall chardet
pip install chardet==4.0.0

小结,终于配好环境了。还是那句话,工欲善其事必先利其器。环境配的巴巴适适,后续开发也就没那么多麻烦,明天终于可以开始撸代码了。当然我也会做一些记录,但是是比赛性质,所以后续的博客不会公布出来,等比赛完成,大家可以一起学习!