当前位置: 首页 > news >正文

ros下配置机器人系统V1

步骤二 ros melodic安装及环境配置

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上安装类似,同样用命令行安装,桌面打开终端输入如下命令:

1.换源

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'

2.输入密匙

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

3.更新下载源

sudo apt-get update
sudo apt-get upgrade

4.安装ros-melodic

sudo apt-get install ros-melodic-desktop-full
sudo apt-get install ros-melodic-rqt*

5.安装ros-dep

sudo apt-get install python-rosdep

6.初始化

sudo rosdep init
rosdep update
初始化ROSdep: Ros安装到本地再启动之前需要在ROS的官网获取初始化的信息,以确保ROS安装的完整性,这个操作在国内的ip发起的时候经常出现断线而不能初始化成功,但是在github网站上,有专业人员上传了一个可以不访问ROS官网的服务器的初始化工具,在多次执行默认初始化(sudo rosdep init)命令失败的时候最好采用github初始化。

6.1 解决初始化方法(一)

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命令。

6.2 解决初始化方法(二)

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

7.安装rosinstall

sudo apt-get install python-rosinstall

8.安装catkin编译器

sudo apt-get install ros-melodic-catkin python-catkin-tools

9.配置环境变量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

10.安装导航数据类型包

sudo apt-get install ros-melodic-navigation

11.创建并初始化工作目录

ROS使用一个名为catkin的ROS专用构建系统。为了使用它,需要创建并初始化catkin工作目录,如下所示,建立一个新的构建文件夹。

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

12.设置环境变量

#打开终端进入编辑
sudo apt install net-tools
sudo apt-get install vim

13.测试ros安装是否正常

终端运行
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

14.修改python环境

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

3、安装yolov5依赖包

目前我们已经配置好了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

4、torch环境配置

需要手动安装的两个包
需要先把下面命令的中的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
pip3 install seaborn
测试yolov5环境
新建终端依次输入并回车下面的命令
python
Import torch

5、qtcreator安装

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的桌面

1、新建工作空间

cd /home
sudo mkdir -p robot/catkin_ws/src

2、代码复制到工作空间并编译(XXXX的部分需要改成自己的用户主文件夹的名称)

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

相关文章:

  • 【云原生】设备入云之前端可视化编程
  • 【消息队列】RabbitMQ
  • Linux 【进程】
  • 1、读写分离、分库分表
  • 【正点原子STM32连载】 第三十二章 内部温度传感器实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  • 05-接口和异常处理
  • 18-Linux系统服务
  • TiDB 集群故障诊断
  • 谷粒学苑_第五天
  • python实现SMB服务账号密码爆破功能 Metasploit 中的 smb_login
  • 【C基础篇】选择结构与循环控制
  • 一位程序员感慨:互联网行业太过共享,才导致了门槛越来越低
  • 【图像隐写】基于matlab遗传算法的奇异值分解数字水印嵌入提取【含Matlab源码 2115期】
  • 计算机视觉中的细节问题(二)
  • Javascript 代码规范
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Fastjson的基本使用方法大全
  • happypack两次报错的问题
  • linux学习笔记
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • node学习系列之简单文件上传
  • Promise面试题,控制异步流程
  • Python - 闭包Closure
  • vue-loader 源码解析系列之 selector
  • windows下如何用phpstorm同步测试服务器
  • zookeeper系列(七)实战分布式命名服务
  • 成为一名优秀的Developer的书单
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 分布式任务队列Celery
  • 构造函数(constructor)与原型链(prototype)关系
  • 基于遗传算法的优化问题求解
  • 简单数学运算程序(不定期更新)
  • 开源SQL-on-Hadoop系统一览
  • 前端面试总结(at, md)
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 为什么要用IPython/Jupyter?
  • 我看到的前端
  • 我这样减少了26.5M Java内存!
  • 项目实战-Api的解决方案
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • # Apache SeaTunnel 究竟是什么?
  • (1)SpringCloud 整合Python
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (js)循环条件满足时终止循环
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (论文阅读30/100)Convolutional Pose Machines
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (一)认识微服务
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET Micro Framework初体验
  • .NET运行机制
  • /run/containerd/containerd.sock connect: connection refused