agx上搭建ros2

发现搭建这个还是很麻烦,网上资料都有点散,也就汇总下
colcon 命令
1, 下载官方搭建方法
2, 源代码注释
#!/bin/bash
#
# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.
#
# NVIDIA Corporation and its licensors retain all intellectual property
# and proprietary rights in and to this software, related documentation
# and any modifications thereto.  Any use, reproduction, disclosure or
# distribution of this software and related documentation without an express
# license agreement from NVIDIA Corporation is strictly prohibited.
#
# Set locale
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale  # verify settings
# Setting up sources
sudo apt-get update && \
sudo apt-get install -y git cmake build-essential curl wget gnupg2 lsb-release
sudo apt-key add ros.asc
sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
# install ROS packages
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
                        libbullet-dev \
                        libpython3-dev \
                        python3-colcon-common-extensions \
                        python3-flake8 \
                        python3-pip \
                        python3-pytest-cov \
                        python3-rosdep \
                        python3-setuptools \
                        python3-vcstool \
                        python3-rosinstall-generator \
                        libasio-dev \
                        libtinyxml2-dev \
                        libcunit1-dev \
                        && rm -rf /var/lib/apt/lists/*
python3 -m pip install -U \
            argcomplete \
            flake8-blind-except \
            flake8-builtins \
            flake8-class-newline \
            flake8-comprehensions \
            flake8-deprecated \
            flake8-docstrings \
            flake8-import-order \
            flake8-quotes \
            pytest-repeat \
            pytest-rerunfailures \
            pytest
export ROS_PKG=ros_base   # 官方这没有,需要添加
export ROS_DISTRO=foxy
export ROS_ROOT=/opt/ros/${ROS_DISTRO}
sudo apt-get update
sudo mkdir -p ${ROS_ROOT}/src && \
    cd ${ROS_ROOT} && \
    rosinstall_generator --deps --rosdistro ${ROS_DISTRO} ${ROS_PKG} launch_xml launch_yaml example_interfaces > ros2.${ROS_DISTRO}.${ROS_PKG}.rosinstall && \
    cat ros2.${ROS_DISTRO}.${ROS_PKG}.rosinstall && \
    vcs import src < ros2.${ROS_DISTRO}.${ROS_PKG}.rosinstall
#ros2.${ROS_DISTRO}.${ROS_PKG}.rosinstall# 这个主要是github下载地址,可以把那个github .com  替换  github.com.cnpmjs.org   来实现加速
# vcs import src < ros2.${ROS_DISTRO}.${ROS_PKG}.rosinstall    # 主要是下载,有时下载不全需要重新下载,或者外部下载
# 有时有些库没有下载下来完应该还是上面命令配置问题 https://github.com/ros/rosdistro/tree/master/foxy  distribution.yaml  中可#以找到没下载的,新建一个重新下载编译  例如 camera_info_manager  
#必须注意格式不能错,就是空格不能少
#
#安装必备东西
sudo apt-get update
cd ${ROS_ROOT} && rosdep init && rosdep update && \
    rosdep install --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} -y --skip-keys "" && \
    rm -rf /var/lib/apt/lists/*
# Fix libyaml_vendor package issue
#sudo rm ${ROS_ROOT}/src/libyaml_vendor/CMakeList* && \
#sudo wget --no-check-certificate https://raw.githubusercontent.com/ros2/libyaml_vendor/master/CMakeLists.txt -P ${ROS_ROOT}/src/libyaml_vendor/
# build it!
cd ${ROS_ROOT} && colcon build --symlink-install
#colcon build --symlink-install  编译,如果没编译全,可下载后再次编译
#例如mimick_vendor 下载后,文件夹下 CMakelists 中海油下载的,也可替换 github.com.cnpmjs.org
#编译一定要注意/opt/ros/${ROS_DISTRO}  不然依赖关系不正确
echo 'source /opt/ros/foxy/install/setup.bash' >> ${HOME}/.bashrc
3,
修改完再次编译
colcon build --symlink-install     #  --symlink-install   表示编译时如果 install 中文件已经存在于 src 或者 build 文件夹中,就用超链接指向该文件,避免浪费空间,也可以实现同步更新。
4,更新 foxy
更新下载地址
也可对比更改项,再重新编译
5, 编译完可以测试
colcon test-result --all
6,单独编译某个包
colcon build --packages-select PACKAGE_NAME
7  编译完后 一定要更新环境
echo 'source /opt/ros/foxy/install/setup.bash' >> ${HOME}/.bashrc
如果自己的路径
echo 'source /home/xjr/ros_foxy/foxy/install/setup.bash' >> ${HOME}/.bashrc
8,其他
Could not find RTI Connext - skipping
是dds 没有安装,需要安装
$ mkdir fastdds_ws
$ cd fastdds_ws
$ mkdir src
$ vcs import src < fastrtps.repos
$ colcon build
echo 'source  /home/xjr/ros_foxy/fastdds_ws/install/setup.bash' >> ${HOME}/.bashrc
#9,由于rclcpp 版本太低 导致没有#include "rclcpp/type_adapter.hpp"
#git reset  --hard 12.0.0  #转到版本  还和rcl 依赖超级麻烦
########  注意空格  添加  cameara_info_manager
- git:
          local-name: image_common/camera_calibration_parsers
          version:release/foxy/camera_calibration_parsers/2.3.0-1
- git:
          local-name: image_common/camera_info_manager
          version:release/foxy/camera_info_manager/2.3.0-1
- git:
          local-name: image_common/image_common
          version:release/foxy/image_common/2.3.0-1
- git:
          local-name: image_common/image_transport
          version:release/foxy/image_transport/2.3.0-1
#########
到ros2.foxy_fix
vcs import src < ros2.foxy_fix
colcon build --packages-select rclcpp
10  boost  older than 1.33
  或者  Boost C++ Libraries    大与1.33就可
xjr@xjr-desktop:/usr/bin$ sudo ln -s python3 python   把  python 变Python3   
#docker 官方是1.65.1 sudo find / -name libboost_random.so*
tar zxvf boost_1_64_0.tar.gz
cd boost_1_64_0
./bootstrap.sh
#./b2 -j16 --prefix=$(pwd) --libdir=$(pwd)/lib64 --layout=system link=static install
sudo ./b2 -j8 install
添加 #路径要对
-DBOOST_ROOT=/path/to/boost_1_64_0
11 , 安装torch
BASEDIR=$(dirname "$0")
echo ${BASEDIR}
cd ${HOME}
wget https://nvidia.box.com/shared/static/cs3xn3td6sfgtene6jdvsxlr366m2dhq.whl -O torch-1.7.0-cp36-cp36m-linux_aarch64.whl
sudo apt-get install -y python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install numpy torch-1.7.0-cp36-cp36m-linux_aarch64.whl
echo "-----------------------------------"
echo "Installing torchision v0.8.1"
echo "-----------------------------------"
sudo apt-get update
sudo apt-get install -y libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
git clone --branch v0.8.1 https://github.com/pytorch/vision torchvision && cd torchvision
export BUILD_VERSION=0.8.1
python3 setup.py install --user
git checkout v0.8.1
12 , 安装opencv
version="4.5.0"
folder="workspace"
echo "** Remove other OpenCV first"
sudo sudo apt-get purge *libopencv*
echo "** Install requirement"
sudo apt-get update
sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install -y python2.7-dev python3.6-dev python-dev python-numpy python3-numpy
sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
sudo apt-get install -y libv4l-dev v4l-utils qv4l2 v4l2ucp
sudo apt-get install -y curl
echo "** Download opencv-"${version}
mkdir $folder
cd ${folder}
#可以迅雷下载
#curl -L https://github.com/opencv/opencv/archive/${version}.zip -o opencv-${version}.zip
#curl -L https://github.com/opencv/opencv_contrib/archive/${version}.zip -o opencv_contrib-${version}.zip
curl -L  https:// github.com.cnpmjs.org /opencv/opencv/archive/${version}.zip -o opencv-${version}.zip 
curl -L https:// github.com.cnpmjs.org/opencv/opencv_contrib/archive/${version}.zip -o opencv_contrib-${version}.zip
unzip opencv-${version}.zip
unzip opencv_contrib-${version}.zip
cd opencv-${version}/
echo "** Building..."
mkdir release
cd release/
cmake -D WITH_CUDA=ON -D WITH_CUDNN=ON -D CUDA_ARCH_BIN="5.3,6.2,7.2" -D CUDA_ARCH_PTX="" -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${version}/modules -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j$(nproc)
sudo make install
echo "** Install opencv-"${version}" successfully"
echo "** Bye :)"
#完成
注意:
openjpeg  gtk+-3.0   VTK
下面目录下载都需要更改或者手动下载
opencv_contrib-4.5.0\modules\xfeatures2d\cmake 
目录下更改
opencv4.5.0\cmake\OpenCVDownload.cmake
modules\gapi\cmake
#
如果包
CMakeFiles/Makefile2:7183: recipe for target 'modules/python3/CMakeFiles/opencv_python3.dir/all' failed
类似错误可以
python ./modules/python/src2/gen2.py ./release/modules/python_bindings_generator ./release/modules/python_bindings_generator/headers.txt
后再,编译
13 安装qt5
#sudo apt-get install qt5- default qtcreator -y
有时可以去 PyPI · The Python Package Index 这下载pyqt5  5.15.4   和sip6.1.1
python3 configure.py
make  -j8
make install 
##可以看到有几个东西安装到/usr/local/bin 下面了  也就可以用这几个工具编译pyqt5
Installing sip-build script to /usr/local/bin
Installing sip-distinfo script to /usr/local/bin
Installing sip-install script to /usr/local/bin
Installing sip-module script to /usr/local/bin
Installing sip-sdist script to /usr/local/bin
Installing sip-wheel script to /usr/local/bin
######
# install pyqt
tar xzf PyQt5_gpl-5.15.4.tar.gz
cd PyQt5_gpl-5.15.4
#windows
#python ./configure.py --sip /Users/karsten/.pyenv/versions/3.6.0/Python.framework/Versions/3.6/bin/sip # <-- This #has to point to your sip install location
#endwin
#linux 
#python3  ./configure.py --sip   /usr/bin/sip
#endlinux
#make -j8
#sudo make install
/usr/local/bin/sip-install
或者
/usr/local/bin/sip-build --no-make
make -j8 
sudo make install
或者通过pip3 安装
#pip3 install sip -i Simple Index
#pip3 install PyQt5 -i Simple Index
#pip3 install python-qt5 -i Simple Index
#sudo apt-get purge python3-sip
##注意只有这个qt5 安装后其中包qt_gui_cpp 才能编译成功
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值