系统环境
MacBook Pro M1
Parallels Desktop 17.0
Ubuntu 20.04 arm64
Ubuntu 20.04 amd64 完全可以参考本教程。
ROS2 foxy 安装
从源码安装 ROS2 foxy
通过源码,可以安装最新的发布版本。
参考网址:https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Binary.html
sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
进入https://github.com/ros2/ros2/releases,下载:
mkdir -p ~/ros2_foxy
cd ~/ros2_foxy
tar xf ~/Downloads/ros2-foxy-20201211-linux-focal-arm64.tar.bz2
sudo apt update
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update
rosdep install --from-paths ~/ros2_foxy/ros2-linux/share --ignore-src --rosdistro foxy -y --skip-keys "console_bridge fastcdr fastrtps osrf_testing_tools_cpp poco_vendor rmw_connextdds rti-connext-dds-5.3.1 tinyxml_vendor tinyxml2_vendor urdfdom urdfdom_headers"
sudo apt install -y libpython3-dev python3-pip
pip3 install -U argcomplete
测试:
. ~/ros2_foxy/ros2-linux/setup.bash
ros2 run demo_nodes_cpp talker
安装 rqt:
sudo apt install ~nros-foxy-rqt*
通过 Debian 软件包安装 ROS 2 foxy
参考网址:https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html
ROS2 只能在 UTF-8 编码的系统上安装,即系统语言是美式英语的,中文的不可以安装!
sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
sudo apt install ros-foxy-desktop
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc # 配置环境变量
source ~/.bashrc # 加载环境变量
测试:
# 终端 1
ros2 run demo_nodes_cpp talker
# 终端 2
ros2 run demo_nodes_py listener
卸载:
sudo apt remove ~nros-foxy-* && sudo apt autoremove
安装 mavros
基于 ROS1 noetic 安装
参考链接:https://github.com/mavlink/mavros/blob/master/mavros/README.md#installation
sudo apt install python3-catkin-tools python3-rosinstall-generator python3-osrf-pycommon -y
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
wstool init src
rosinstall_generator --rosdistro kinetic mavlink | tee /tmp/mavros.rosinstall
rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
catkin build
echo "source ~/mavros1_ws/devel/setup.bash" >> ~/.bashrc
基于 ROS2 foxy 安装
mavros2.0 是针对 ROS2 foxy 进行开发的,官方 GitHub 给出的安装命令中使用的是 colcon build
进行编译,而不是 catkin build
,所以需要先安装 colcon
。
colcon
官方文档给出的安装方法见:https://colcon.readthedocs.io/en/released/user/installation.html
# 官方在 ROS2 项目的背景下使用 Debian 软件包安装方法摘取如下
sudo sh -c 'echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
sudo apt install python3-colcon-common-extensions
接下来正式安装 mavros2(参考来源:https://github.com/mavlink/mavros/blob/ros2/mavros/README.md):
mkdir -p ~/mavros2_ws/src
cd ~/mavros2_ws
rosinstall_generator --format repos mavlink | tee /tmp/mavlink.repos
rosinstall_generator --format repos --upstream mavros | tee -a /tmp/mavros.repos
vcs import src < /tmp/mavlink.repos
vcs import src < /tmp/mavros.repos
rosdep install --from-paths src --ignore-src -y
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
echo "source ~/mavros2_ws/install/setup.bash" >> ~/.bashrc # 这里的路径与 catkin build 得到的不同,值得注意!
配置 PX4
安装必要的依赖:
sudo apt install ros-foxy-eigen3-cmake-module # 安装 ros2 时已经安装过
sudo pip3 install -U empy pyros-genmsg setuptools
安装 Fast DDS
安装 Java JDK 8
PX4 官方推荐安装 Java JDK 8。
下载链接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
安装过程参考了这篇博客:https://blog.csdn.net/zbj18314469395/article/details/86064849
# Java JDK 安装
sudo mkdir /usr/lib/jvm
sudo tar -zxvf jdk-8u301-linux-aarch64.tar.gz -C /usr/lib/jvm
gedit ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_301 # 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 系统注册此 jdk
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_301/bin/java 300
# 查看 java 版本
java -version
安装 Gradle(可跳过)
需要先安装 sdkman ,这是一个包管理器,用它可以方便地安装 Gradle 。
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version # 检查版本,确保安装成功
# 通过 sdkman 安装 gradle
sdk install gradle 7.2
我在使用 sdkman 时出现了如下问题:
于是我老老实实从源码安装。
sudo mkdir -p /opt/gradle/ # 新建目录
sudo chmod 777 /opt/gradle/ # 赋予修改权限
gedit ~/.bashrc # 添加环境变量
# 在文件最后添加如下代码:
export PATH=$PATH:/opt/gradle/gradle-7.2/bin
gradle --version
安装 Foonathan memory
git clone https://github.com/eProsima/foonathan_memory_vendor.git
cd foonathan_memory_vendor
mkdir build && cd build
cmake ..
sudo cmake --build . --target install
从源码安装 Fast-RTPS (DDS)
git clone --recursive https://github.com/eProsima/Fast-DDS.git -b v2.0.0 ~/FastDDS-2.0.0
cd ~/FastDDS-2.0.0
mkdir build && cd build
cmake -DTHIRDPARTY=ON -DSECURITY=ON ..
make -j$(nproc --all)
sudo make install
安装 Fast-RTPS-Gen
似乎官方提供的如下命令会自动下载 gradle 5.6.2 ,但是并没有添加到环境变量中。
# Fast RTPS Gen是Fast RTPS(DDS)IDL代码生成器工具。
# 它应该安装在Fast RTPS(DDS)之后,并确保Fast RTPSGEN应用程序在您的路径中。
# 您可以使用fastrtpsgen进行检查。
git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git -b v1.0.4 ~/Fast-RTPS-Gen \
&& cd ~/Fast-RTPS-Gen \
&& ./gradlew assemble \
&& sudo ./gradlew install
构建 ROS2 工作区
mkdir -p ~/px4_ros_com_ros2/src
git clone https://github.com/PX4/px4_ros_com.git ~/px4_ros_com_ros2/src/px4_ros_com
git clone https://github.com/PX4/px4_msgs.git ~/px4_ros_com_ros2/src/px4_msgs
cd ~/px4_ros_com_ros2/src/px4_ros_com/scripts
source build_ros2_workspace.bash
PX4 固件安装
这里安装的是 GitHub 主分支上的源码。
git clone https://github.com/PX4/PX4-Autopilot.git --recursive # 这是一个漫长的等待过程
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools # 脚本会自动安装 gazebo9 ,ros2 用的不是 gazebo9 ,所以这里添加参数,不安装仿真工具,安装 nuttx 也出错了,我暂时没有解决,所以也不安装
关于 nuttx 的安装错误,也许后面在该问题中会解决:https://github.com/PX4/PX4-Autopilot/issues/18180
sudo apt install gstreamer1.0-plugins-bad
sudo apt install gstreamer1.0-plugins-base
sudo apt install gstreamer1.0-plugins-good
sudo apt install gstreamer1.0-plugins-ugly
sudo apt install libeigen3-dev
sudo apt install libgstreamer-plugins-base1.0-dev
make px4_sitl gazebo
评论(17)
您还未登录,请登录后发表或查看评论