大象机械臂myCobot 280 JN 2023和D435i相关环境配置

大象机器人的这款机械臂,用的Jetson nano做的主控,给的系统的ubuntu20,默认python版本是3.8。并且没有配置CUDA,在用这款机械臂做视觉相关的项目,需要自己配置一些环境。

一、安装Google拼音输入法

1. 首先下载中文语言包,在图形化页面下载会报错,所以这里直接用命令行进行安装。下载完成后,再去语言支持里面将系统语言更改为汉语,全局应用后重启。

sudo apt-get install  language-pack-zh-han*   

2. 系统语言变更完成后,会发现不能拼音输入中文,输入方法添加也没有中文选项,这里需要自己配置。通过下载googlepinyin来解决不能输入中文的问题。googlepinyin是基于fcitx框架的,直接输入就可以完成安装,然后去语言支持里面将ibus框架改为fcitx框架,然后卸载ibus框架,注意按顺序完成。

sudo apt-get install fcitx-googlepinyin  # 安装fcitx和googlepinyin
sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ # 设置fcitx开机自启动

在这里插入图片描述

sudo apt-get remove ibus # 更改系统语言框架后,卸载ibus

然后输入fcitx-config可以调出设置窗口,添加googlepinyin。
如何还是不能输入,可以试一试安装搜狗输入法,在所有安装过程中,注意提示信息,如果出现报错什么的,就安装提示的相关依赖包。

二、安装CUDA 10.2

1. 查询版本
因为myCobot 280 JN 2023默认镜像没有安装CUDA,所以需要自己进行安装。Jetson nano是arm系统的,并且通过jtop工具可以知道Jetpack版本是4.6.4,没有jtop工具输入sudo pip3 install jetson-stats进行安装。
对应官网,可知Jetpack 4.6.4支持CUDA 10.2,cuDNN 8.2.1。下面通过Jetson官方的SDK Manager进行。
在这里插入图片描述
2. 准备CUDA和cuDNN安装包
由于官网没有arm版本的安装包,所以需要通过SDK Manager工具来下载,需要的设备是一个搭载ubuntu18的虚拟机或物理机。

  • 安装SDK Manager
    打开NVIDIA的jetpack下载网址,点击下载SDK Manager,使用前请先注册/登录NVIDIA账号。
    在这里插入图片描述

  • 下载完deb包后,输入sudo dpkg -i sdkmanager_1.5.0-7774_amd64.deb安装。如果报错找不到依赖,输入sudo apt --fix-broken install解决。

  • 安装完成后打开软件,这里不需要连接硬件,因为我们的目的是通过这个刷机工具下载对应版本的CUDA和cuDNN安装包。

  • 选择对应的硬件和JetPack版本后点击下一步。
    在这里插入图片描述

  • 勾选同意协议后会开始下载,这里就会下载相关安装包到指定目录
    在这里插入图片描述

  • 下载完成后,在下载目录中拷贝CUDA和cuDNN安装包。
    在这里插入图片描述

3. 安装CUDA和cuDNN

  • 将准备好的安装包拷贝到Jetson nano中。
  • 安装CUDA
sudo dpkg -i cuda-repo-l4t-10-2-local_10.2.460-1_arm64.deb
sudo apt-key add /var/cuda-repo-10-2-local/7fa2af80.pub
sudo apt update
sudo apt-get install cuda-toolkit-10-2
  • 安装安装cuDNN
sudo dpkg -i libcudnn8_8.2.1.32-1+cuda10.2_arm64.deb
sudo dpkg -i libcudnn8-dev_8.2.1.32-1+cuda10.2_arm64.deb
  • 配置环境变量
    sudo gedit ~/.bashrc打开配置文件,在末尾添加下面内容:
export CUBA_HOME=/usr/local/cuda-10.2
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.2/bin:/usr/local/bin/cmake:$PATH

在这里插入图片描述

执行source ~/.bashrc使其生效。

  • 拷贝cudnn到cuda安装路径下
    cudnn其实是直接安装到了默认安装路径usr/include和usr/lib下的,因此需要将其拷贝到cuda安装路径下,执行下面命令进行拷贝。
sudo cp /usr/include/cudnn.h /usr/local/cuda/include/
sudo cp /usr/lib/aarch64-linux-gnu/libcudnn* /usr/local/cuda/lib64/  # 时间有点久,耐心等待,不是卡了
  • 重新生成cudnn库的软连接
cd /usr/local/cuda/lib64
sudo chmod +r libcudnn*
sudo rm -rf libcudnn.so libcudnn.so.8
sudo ln -s libcudnn.so.8.2.1 libcudnn.so.8
sudo ln -s libcudnn.so.8 libcudnn.so
sudo ldconfig

4. 测试
输入nvcc -V,出现版本号,说明安装成功。
在这里插入图片描述

三、安装conda管理环境

Jetson nano架构是aarch64,与win10,linxu不同,所以不能安装Anaconda,这里安装对应的archiconda。

1. 安装archiconda

下载安装包

wget https://github.com/Archiconda/build-tools/releases/download/0.2.2/Archiconda3-0.2.2-Linux-aarch64.sh

安装

bash Archiconda3-0.2.3-Linux-aarch64.sh

2. 配置环境变量

打开配置文件

sudo gedit ~/.bashrc

在文档最后一行添加

export PATH=~/archiconda3/bin:$PATH

3. 创建虚拟环境

创建python3.8的torch虚拟环境

conda create -n torch python=3.8  

4. 换源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
  1. 其他常用命令
conda update -n base conda  # update最新版本的 conda
conda create -n xxxx python=3.X  # 创建python3.X的xxxx虚拟环境
conda activate xxxx  # 开启xxxx环境
conda deactivate  # 关闭环境
conda env list   # 显示所有的虚拟环境
conda info -e   # 显示所有的虚拟环境
conda install -c channel/path //  # 下载包
conda remove --n env_name  package_name  # 卸载包
pip uninstall  package_name  # 先进入环境然后卸载包
conda remove -n env_name --all  # 删除虚拟环境
conda deactivate  # 退出当前conda环境
rm -rf anaconda3 # 卸载conda

四、配置D435i相机SDK

官方步骤
1. 下载pyrealsense2源码

先去github上下载源码,pyrealsense2源码下载链接,下载zip后解压,建议不要下载太高的版本,这里用的2.31。解压后进入到解压后的文件夹内,后续操作基于此。

2. 安装依赖

sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev

sudo apt-get update
sudo apt-get upgrade

3. 执行许可证脚本

cd librealsense
./scripts/setup_udev_rules.sh
./scripts/patch-realsense-ubuntu-lts.sh

4. cmake编译并安装

mkdir build && cd build  # 创建build文件并进入
cmake ../ -DBUILD_PYTHON_BINDINGS:bool=true -DPYTHON_EXECUTABLE=/usr/bin/python3.8 # 注意绑定python的路径
sudo make uninstall
sudo make clean
make
sudo make install

5. 环境变量配置

编译完成之后,可以在/usr/local/lib下发现编译生成的librealsense2相关动态库文件,将此路径配置到.bashrc文件中。

export PYTHONPATH=$PYTHONPATH:/usr/local/lib:/usr/lib/python3/dist-packages/pyrealsense2

6 测试
realsense-viewer启动SDK工具
执行source ~/.bashrc,运行python3,import pyrealsense2导包看是否报错。
到这一步,很多文章都没有错,但是本人在编译安装后发现,realsense-viewer启动SDK工具能正常开启深度和红外,但是在
import pyrealsense2后,使用dir(pyrealsense2)查看接口发现没有可用接口。
在这里插入图片描述
这说明在用python程序启动不了相机,这种问题解决方案如下:

  • 查看编译安装pyrealsense2包的路径
python3
>> import pyrealsense2 as rs
>> rs.__path__
[/usr/lib/python3/dist-packages/pyrealsense2’]
  • 然后在之前编译后的build/Release文件夹下找到下列文件然后复制
    在这里插入图片描述
  • 将复制的文件粘贴到前面查询的路径中的/usr/lib/python3/dist-packages下,注意不是粘贴到/usr/lib/python3/dist-packages/pyrealsense2
  • 重新测试,发现接口都有了
python3
>> import pyrealsense2 as rs
>> dir(rs)
[/usr/lib/python3/dist-packages/pyrealsense2’]

在这里插入图片描述

  • 程序打开相机测试

import pyrealsense2 as rs
import cv2
import numpy as np

# 创建 pipeline 对象
pipeline = rs.pipeline()


# 配置 pipeline,启用彩色和深度流,设置分辨率和帧率
config = rs.config()

config.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30)  
config.enable_stream(rs.stream.depth, 848, 480, rs.format.z16, 30)  
 
# 启动 pipeline
profile = pipeline.start(config)
# device = profile.get_device()
# device.hardware_reset()
# 将深度图对齐到彩色图
align_to = rs.stream.color  
align = rs.align(align_to)
 
try:
    while True:
        # 等待下一帧数据
        frames = pipeline.wait_for_frames()
 
        # 获取对齐后的彩色和深度帧
        aligned_frames = align.process(frames)
        color_frame = aligned_frames.get_color_frame()
        depth_frame = aligned_frames.get_depth_frame()
 
        if not color_frame or not depth_frame:
            continue
 
        # 将彩色和深度帧转换为 numpy 数组
        color_image = np.asanyarray(color_frame.get_data())
        depth_image = np.asanyarray(depth_frame.get_data())
 
        # 显示彩色图像
        cv2.imshow('Color Image', color_image)
 
        # 可根据需要对深度图像进行处理或显示
        depth_gray = cv2.convertScaleAbs(depth_image, alpha=255 / 4000) 
        cv2.imshow('Depth Image', depth_gray)
 
        # 按下 'q' 键退出循环
        if cv2.waitKey(1) & 0xFF == ord('q'):  
            break
finally:
    # 停止 pipeline 并关闭所有窗口
    pipeline.stop()
    cv2.destroyAllWindows()
  • 其实到这里,前面加入的环境变量也可有可无,我这里删除后,仍然可以正常使用。很多文章中提到的在cmake时绑定python,在按照后可以在/usr/local/lib/python3.6/pyrealsense2中找到生成的动态库文件,我这里没有发现,可能是这款nano系统是ubuntu20,并且环境是大象机器人修改后的,所以有一些不一样。采用源码编译安装后,realsense-view和pyrealsense2包都是已经安装的。关于使用-官网下载安装包,采用离线安装的方式,我在安装后发现接口正常,但是启动不了相机,所以直接采用源码编译安装是最可靠的。

五、安装realsense-ros

1. ROS1下安装
官方文档

2. ROS2下安装
官方文档
要注意查看下载的版本所支持的ros版本。否则编译不会成功。

3. 启动ROS节点

roslaunch realsense2_camera rs_camera.launch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

root@z~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值