ROS是系统的核心,它的优点是把需要的功能进行节点化管理,其每个节点通讯都可以通过内部定义的话题,通过ROS实现机器人的核心功能:
1.接收并处理下位机返回的传感器参数:
RFID序号,行进速度,平台高度,平台前深长度,里程值
2.调用基于yolov5的死鸡识别
3.创建数据发送到MQTT远程服务器节点
4.创建死鸡数据保存到本地SQLite数据库
5.Qt显示界面的开发
ROS的发行版本,其与Linux的发行版本(如Ubuntu)的概念类似,ROS开发者通常仅对这一版本的bug进行修复,同时提供少量针对核心软件包的改进。ROS的主要发行版本的版本名称、发布时间与版本如下图,由于jetson板的操作系统jetson os 是基于ubuntu 18.04建立的,因此同样的像在ubuntu18.04上一样在jetson开发板上安装ROS18.04。
ROS的安装步骤:
1、配置Ubuntu系统的安装软件源
2、使用apt-get安装在终端安装ROS功能包
3、设置ROS环境变量
4、验证ROS安装
Jetson os系统的apt-get安装工具默认是访问美国的服务器来进行安装的,经常出现下载速度慢甚至断线,因此需要把下载的地址设置为国内的镜像源,而英伟达开发板的下载镜像最好设置为下面的清华指定arm架构的下载地址,避免安装软件失败,已经测试过可以下载安装本次配置所需的软件。
安装ROS
ROS的安装如同其他软件在Ubuntu上安装类似,同样用命令行安装,桌面打开终端输入如下命令:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ros-melodic-desktop-full
sudo apt-get install ros-melodic-rqt*
sudo apt-get install python-rosdep
sudo rosdep init
rosdep update
初始化ROSdep: Ros安装到本地再启动之前需要在ROS的官网获取初始化的信息,以确保ROS安装的完整性,这个操作在国内的ip发起的时候经常出现断线而不能初始化成功,但是在github网站上,有专业人员上传了一个可以不访问ROS官网的服务器的初始化工具,在多次执行默认初始化(sudo rosdep init)命令失败的时候最好采用github初始化。
lee@lee-TM1801:~$ sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
修改初始化资源网址
通过更改ros的配置文件,来成功初始化。首先到/anaconda3/lib/python3.7/site-packages里寻找
./rosdistro/__init__.py
./rosdep2/gbpdistro_support.py
./rosdep2/sources_list.py
./rosdep2/rep3.py
上面的每个文件中搜索
raw.githubusercontent.com/ros/rosdistro/master将其替换成gitee.com/zhao-xuzuo/rosdistro/raw/master每个文件都只有一个URL需要替换。之后在进行初、始化rosdep命令。
sudo apt-get install python3-pip #pip可以改成pip3
sudo apt-get install python-pip #pip可以改成pip3
sudo pip install rosdepc #安装rosdepc
sudo rosdepc init #进行初始化
rosdepc update
sudo apt-get install python-rosinstall
sudo apt-get install ros-melodic-catkin python-catkin-tools
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install ros-melodic-navigation
ROS使用一个名为catkin的ROS专用构建系统。为了使用它,需要创建并初始化catkin工作目录,如下所示,建立一个新的构建文件夹。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
#打开终端进入编辑
sudo apt install net-tools
sudo apt-get install vim
终端运行
roscore
出现小乌龟界面则代表ROS 18.04 安装成功,此时可以运行ROS相关的系统文件了。
问题(1)
注意,如果你的开发板的某些软件库缺失的话可能出现安装失败的情况,比较多的如果出如下报错使用 apt --fix-broken install 修复安装工具,再继续安装。
问题(2)
如果roscore后没有此命令的报错可以重新初始化一遍ros
sudo apt-get install python3-pip #pip可以改成pip3
sudo pip install rosdepc #安装rosdepc
sudo rosdepc init #进行初始化
rosdepc update
sudo apt-get install python-rosinstall
sudo apt-get install ros-melodic-catkin python-catkin-tools
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
Ros安装完毕以后,需要把终端的python3.6为默认。修改环境以后需要重新安装ros内的编译工具。
修改python3.6环境为更高的优先级:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
sudo update-alternatives --config python #查看环境是否为python3,6
linux下将Python路径更改为Python3.6
1、删除原来指向python2的软链接
sudo rm -rf /usr/bin/python
2、创建新的软链接
sudo ln -s /usr/bin/python3.6 /usr/bin/python
3、查看是否更改成功
python -V //若显示版本信息为python3.6,则更改成功
再次安装ros的编译工具:
1、安装pip或pip3
sudo apt-get install python3-pip #pip可以改成pip3
2、安装rosdepc
sudo pip install rosdepc
3、 进行初始化
sudo rosdepc init
rosdepc update
5、 安装Rosinstall
sudo apt-get install python-rosinstall
6、 安装catkin编译器
sudo apt-get install ros-melodic-catkin python-catkin-tools
7、 配置环境变量
source ~/.bashrc
现在已经完成了ROS-melodic的安装和jetsonNX的cuda,cudnn工具安装。此步骤接下来将配置好:
python3.6环境下的YOLOv5配置
python3.6环境下的torch和torchvision
Python3.6环境是在jetson os 系统中的python编译器,因为本次的死鸡识别的算法的工具是在python3.6环境下创建的,且功能包torch和torchvision的ARM版本在python3.6的环境中才能正常安装,因此python3.6环境是必备的。
1、修改pip安装源
首先需要把本机的配置写入机器的环境变量中。
sudo vim ~/.bashrc
添加以下内容
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
#core type is mac
export OPENBLAS_CORETYPE=ARMV8
更新
source ~/.bashrc
在home目录下新建文件名为.pip的文件夹,在.pip文件夹下打开终端:通过编辑pip的配置文件进行设置,方法如下:
修改 ~/.pip/pip.config:
mkdir ~/.pip
vim ~/.pip/pip.conf
添加内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
目前我们已经配置好了ROS环境和python3.6环境了,已经可以运行和编写ROS和py文件的代码,但是巡检系统的部分功能:界面显示、mqtt客户端、YOLOv5的数学依赖包,这三个部分还没有安装,其中显示界面编写工具qt需要ubuntu内的apt安装工具安装.
安装yolov5依赖包
Matplotlib下载
链接:https://pan.baidu.com/s/1xeRUblVcpA9ceUgjc0SPpA?pwd=1111
提取码:1111
桌面打开终端(把matplotlib的whl文件放在桌面)
cd /home/yong/Desktop
pip install matplotlib-3.3.4-cp36-cp36m-linux_aarch64.whl
pip3 install pillow pyyaml tensorboard tqdm scipy opencv_python
需要手动安装的两个包
需要先把下面命令的中的yong修改成你的主文件名称
Pytorch和torchvison工具在镜像下载源中无法下载,且在nvdia的官网中这两个文件无法下载,因此需要前期准备中的百度云进行下载,并拷贝到桌面。
桌面打开终端(注意检查桌面上的torch和torchvision)
cd /home/yong/Desktop
pip install torch-1.8.0-cp36-cp36m-linux_aarch64.whl
pip install torchvision-0.9.0a0+01dfa8e-cp36-cp36m-linux_aarch64.whl
sudo apt-get install libopenblas-dev
pip3 install seaborn
测试yolov5环境
新建终端依次输入并回车下面的命令
python
Import torch
sudo apt-get install qtcreator #可跳过
sudo apt-get install ros-melodic-qt-create ros-melodic-qt-build
修改make文件中的opencv版本
在codeide中找到cv_bridgeconfig.cmke文件,将100行附近的两个opencv改成opencv4即可(注意,只需要改动单独一个的opencv,前面有连字符的opencv不需要改动)
问题(3)
安装yolov5库失败报错可以使用下面的命令更新安装
sudo apt install -y python3-pip python3-venv python3-dev libpython3-dev
sudo apt install -y libopenblas-base
pip3 install Cython
pip3 install --upgrade pip
pip3 install --upgrade protobuf
pip3 install --upgrade numpy
pip3 install --upgrade pandas
pip3 install matplotlib pillow pyyaml tensorboard tqdm scipy opencv_python
sudo apt-get install python3-matplotlib
问题(4)
import skbuild
ModuleNotFoundError: No module named 'skbuild'
确保桌面的robot文件夹复制完成且前面的配置完成
robot是需要拷贝到ROS的编译空间catkin_ws中的源代码文件夹src中才能正常运行的,首先保证其正常编译成功条件:
ROS-melodic 安装完成
依赖包安装完成
四个源代码文件和一的Downloads已经拷贝到jetson的桌面
cd /home
sudo mkdir -p robot/catkin_ws/src
sudo chmod -R 777 .
cd robot/catkin_ws/src
catkin_init_workspace
cd /home/robot/catkin_ws
sudo cp -r /home/XXXX/Desktop/robot /home/robot/catkin_ws/src
sudo cp -r /home/XXXX/Desktop/look /home/robot/catkin_ws/src
sudo cp -r /home/XXXX/Desktop/navigation_msgs /home/robot/catkin_ws/src
cd /home/robot/catkin_ws
catkin_make
echo "source /home/robot/catkin_ws/devel/setup.bash">>~/.bashrc
source ~/.bashrc
source devel/setup.bash
sudo cp -r /home/XXXX/Desktop/Downloads /home/robot/catkin_ws/src
sudo cp -r /home/XXXX/Desktop/robot_hmi /home/robot
sudo chmod -R 777 .
catkin_make install