Ubuntu20.04下ROS2-foxy版本与PX4开发环境配置教程

        我自己当时配得要吐了。。。


本教程参考了Ubuntu20.04下PX4 + ROS2环境配置踩坑记录 - 知乎

 (我是跟着这个大佬配置的,但是我们两个的ros版本不一样,所以在此作一些修改,我也是个小白,只是按部就班地配置,然后踩坑。。。)你要是按照我的方法来配置出现了一些奇奇怪怪的问题我也解决不了。


注意!!!

本教程不为你解决网络问题,github上clone不下来的项目自己想办法找镜像(清华源)或者配置代理。


目录

注意!!!

1.安装ROS2-foxy版本

2.安装JAVA的jdk

3.安装交叉编译器arm-none-eabi-gcc 和 arm-none-eabi-g++ 

4.安装Asio(一个跨平台的C++库,FastDDS的依赖库之一)

5.安装PX4 v1.13.1

6.安装Fast DDS & Fast-RTPS-Gen

7.安装px4_ros_com & px4_msgs

8.安装QGroundcontrol


1.安装ROS2-foxy版本

鱼香ROS提供了一键安装脚本,很牛逼!

小鱼的一键安装系列 | 鱼香ROS

我把命令直接写在这里吧:

wget http://fishros.com/install -O fishros && . fishros 

运行之后很简单易懂了。

用这个指令安装好ROS2的foxy版本,桌面版

还是用这个指令安装好VScode,然后在VScode里面装好对应的拓展

全部装好之后验证一下ros能不能正常运行:(打开2个终端,分别运行下面的命令,有输出就是装好了)

ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_py listener

2.安装JAVA的jdk

我装的是jdk-11.0.10_linux-x64_bin.deb的。(这个包自己去官网下载然后安装)

sudo dpkg -i jdk-11.0.10_linux-x64_bin.deb

配置home目录下的.bashrc文件(没有的话右上角三道杠显示隐藏文件)

打开.bashrc之后在末尾加上

export JAVA_HOME=/usr/lib/jvm/jdk-11.0.10
export JRE_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

根据自己的具体目录和版本来配置(应该看得懂吧)


(以下是GPT给的树梅派的安装方法,测试过了,可以用)

1. 打开终端(Ctrl + Alt + T)。

2. 在浏览器中访问Oracle JDK 11下载页面:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
3. 在下载页面中,找到适用于ARM架构的Linux版本的JDK 11.0.10,并下载对应的.tar.gz文件。
4. 在终端中,使用`cd`命令进入您下载JDK文件的目录。例如,如果文件下载到`/home/pi/Downloads`目录中,可以使用以下命令进入该目录:
   ```
   cd /home/pi/Downloads
   ```
5. 解压JDK文件,使用以下命令:
   ```
   tar -xzf 文件名.tar.gz
   ```
   将`文件名`替换为您下载的JDK文件的实际文件名。
6. 将解压后的JDK文件夹移动到`/usr/lib/jvm`目录,使用以下命令:
   ```
   sudo mv 文件夹名 /usr/lib/jvm/
   ```
   将`文件夹名`替换为解压后的JDK文件夹的实际名称。
7. 配置JDK的环境变量,使用以下命令:
   ```
   sudo nano /etc/environment
   ```
   在打开的文件中,在`PATH`行的末尾添加JDK的路径。例如,如果您的JDK文件夹名为`jdk-11.0.10`,则添加以下内容:
   ```
   :/usr/lib/jvm/jdk-11.0.10/bin
   ```
   按Ctrl + X保存并关闭文件。
8. 刷新环境变量,使用以下命令:
   ```
   source /etc/environment
   ```
9. 验证安装,输入以下命令并按Enter键:
   ```
   java -version
   ```
   如果成功安装,您将看到JDK 11的版本信息。

3.安装交叉编译器arm-none-eabi-gcc 和 arm-none-eabi-g++ 

sudo apt-get install gcc-arm-none-eabi

然后配置.bashrc文件,在末尾加上

export PATH=$PATH:/opt/gcc-arm-none-eabi-9-2020-q2-update/bin

这个也根据自己的版本来

配置好之后终端

source ~/.bashrc

(或者直接把终端关了重新打开也行)

4.安装Asio(一个跨平台的C++库,FastDDS的依赖库之一)

sudo apt install libasio-dev

 然后继续配置.bashrc

在末尾添加

export ASIO_INCLUDE_DIR=/path/to/asio/include

别直接复制粘贴啊,找到自己asio的安装路径替换

5.安装PX4 v1.13.1

跟着这个大佬的教程走这一步就行(不过我pip3 install rclpy这一句失败了,但是好像没有影响)

Ubuntu20.04下PX4 + ROS2环境配置踩坑记录 - 知乎

6.安装Fast DDS & Fast-RTPS-Gen

虽然他说官方教程靠谱,我这里还是解释一下吧

Fast DDS Installation | PX4 User Guide

1.安装JAVA JDK 11(在前面我已经教过了)

2.安装依赖

git clone https://github.com/eProsima/foonathan_memory_vendor.git
cd foonathan_memory_vendor
mkdir build && cd build
cmake ..
cmake --build . --target install

 最后一行命令可能会出现权限问题,在前面加个sudo应该就行了

3.安装Fast DDS

git clone --recursive https://github.com/eProsima/Fast-DDS.git -b v2.0.2 ~/FastDDS-2.0.2
cd ~/FastDDS-2.0.2
mkdir build && cd build

 然后

$ cmake -DTHIRDPARTY=ON -DSECURITY=ON ..
$ make -j$(nproc --all)
$ sudo make install

这会把Fast DDS装在/usr/local下

4.安装Fast-RTPS-Gen

git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git -b v1.0.4 ~/Fast-RTPS-Gen

然后打开/Fast-RTPS-Gen/gradle/wrapper目录里面的gradle-wrapper.properties文件

修改这一句(要用6.8.3版本的gradle)

distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip

然后打开终端

cd ~/Fast-RTPS-Gen
./gradlew assemble
sudo env "PATH=$PATH" ./gradlew install

(gradle-6.8.3的安装方法如下)

在Ubuntu系统上安装Gradle 6.8.3二进制版本,您可以按照以下步骤进行操作:

  1. 打开终端窗口。

  2. 使用以下命令下载Gradle 6.8.3二进制版本的压缩包

    wget https://services.gradle.org/distributions/gradle-6.8.3-bin.zip
    
  3. 安装unzip工具(如果尚未安装):

    sudo apt-get install unzip
    
  4. 解压缩下载的压缩包到您选择的目录:

    unzip gradle-6.8.3-bin.zip -d /opt
    
  5. 配置环境变量:

    • 打开终端窗口,并输入以下命令:

      sudo nano /etc/profile.d/gradle.sh
      
    • 在打开的文件中,输入以下内容:

      export GRADLE_HOME=/opt/gradle-6.8.3
      export PATH=$PATH:$GRADLE_HOME/bin
      
    • 按下Ctrl + X,然后按Y保存更改。

  6. 运行以下命令使配置生效:

    source /etc/profile.d/gradle.sh
    
  7. 运行以下命令验证Gradle是否正确安装:

    gradle -v
    

    如果Gradle版本信息显示为6.8.3,则表示安装成功。

现在,您已成功在Ubuntu系统上安装了Gradle 6.8.3二进制版本,并可以在终端窗口中使用Gradle命令。


7.安装px4_ros_com & px4_msgs

大佬的教程很靠谱(对我来说),我反正当时复制粘贴就行了

但是!在他的“编译”部分,你还是最好在编译之前就把px4_ros_com_ros2/src/px4_ros_com/src/examples/offboard/offboard_control.cpp这个文件里面的

msg.position = {0.0, 0.0, -5.0};

注释掉!

改成:

msg.x = 0.0; 
msg.y = 0.0; 
msg.z = -5.0;

然后再编译(colcon build)

之后source /px4_ros_com_ros2/install/setup.bash

(肯定是有这个东西的,要是终端提示你没找到就手动进到目录里面去source)

Ubuntu20.04下PX4 + ROS2环境配置踩坑记录 - 知乎(这是他的教程)

8.安装QGroundcontrol

官方教程:Download and Install · QGroundControl User Guide

(这个我没遇到过问题)

好了,搞完了,要是你中途遇到了非网络问题,就在评论区提出来吧,我说不定漏了什么,看看能不能继续补充这个教程。

说了我是小白。。。

你可能感兴趣的:(vscode,ubuntu)