栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ROS2+PX4开发环境配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ROS2+PX4开发环境配置

一、ROS2安装

Ubuntu18.04的ros2版本:Eloquent
参考网址:https://docs.ros.org/en/eloquent/Installation/Linux-Install-Debians.html

二、PX4相关环境安装

首先需要安装PX4的编译环境见(主要是编译和下载最新固件,也可用于软件在环)https://docs.px4.io/master/en/dev_setup/dev_env_linux_ubuntu.html
参考网址:

  • FastDDS安装:https://docs.px4.io/master/en/dev_setup/fast-dds-installation.html
  • 使用PX4-ROS2桥接器:https://docs.px4.io/master/en/ros/ros2_comm.html
1、安装JavaSDK8

Java SDK8下载网址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
下载Linux x64 Compressed Archive包
解压软件包到/usr/local,即执行以下命令

cd /usr/local
tar -zxvf /jdk-8u301-linux-x64.tar.gz

然后配置环境变量,在本地用户需要配置~/.bashrc,root用户需要配置/root/.bashrc,我是这两个文件都配置了,在这两个文件中末尾添加如下内容

# Java
export JAVA_HOME=/usr/local/jdk1.8.0_301  #jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

测试java是否安装成功

java -version
2、安装Gradle

构建Fast-RTPS-Gen需要安装Gradle,建议通过sdkman来安装Gradle
首先执行以下命令安装sdkman

curl -s "https://get.sdkman.io" | bash

然后重新打开一个终端执行以下命令

sdk install gradle 7.2
3、源码安装Foonathan memory

为了构建FastDDS我们需要安装foonathan_memory

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

**注意:**如果最后一步失败使用sudo来安装

4、源码安装Fast DDS

注意FastDDS的版本需要是1.8.2及以上

git clone --recursive https://github.com/eProsima/Fast-DDS.git -b v1.8.2 ~/FastDDS-2.0.0
cd ~/FastDDS-1.8.2
mkdir build && cd build
cmake -DTHIRDPARTY=ON -DSECURITY=ON ..
make -j$(nproc --all)
sudo make install
5、源码安装Fast-RTPS-Gen

Fast-RTPS-Gen是Fast RTPS(DDS)的IDL生成工具,必须在FastDDS之后安装。

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

注意:如果提示找不到JAVA_HOME的话,我们回到章节2.1配置一下JAVA的环境变量到/root/.bashrc,然后进入root用户下执行安装指令

sudo su
./gradlew install # not insert sudo
三、构建PX4-ROS2桥接器

ROS 2 使用 px4_msgs和 px4_ros_com包以确保匹配的消息定义用于创建客户端和代理代码(这很重要),并且还消除了在构建 ROS 代码时对 PX4 存在的要求。

  • px4_msgs包含 PX4 客户端消息定义。构建此项目时,它会生成相应的 ROS 2 兼容 IDL 文件。
  • px4_ros_com构建px4_msgs项目,然后使用生成的 IDL 文件创建(和构建)ROS 2 代理。

可以在px4_msgs/msg中找到ROS应用程序可以访问的uORB主题子集

1、安装一些依赖
sudo apt install python3-colcon-common-extensions
sudo apt install ros-foxy-eigen3-cmake-module
sudo pip3 install -U empy pyros-genmsg setuptools
2、构建ROS2PX4工作区

创建工作区目录

mkdir -p /mnt/e/px4_ros_com_ros2/src

克隆px4_ros_com和px4_msgs包在src目录下

cd /mnt/e/px4_ros_com_ros2/src
git clone https://github.com/PX4/px4_ros_com.git
git clone https://github.com/PX4/px4_msgs.git

构建工作区,需要很长时间,耐心等待即可

cd ~/px4_ros_com_ros2/src/px4_ros_com/scripts
source build_ros2_workspace.bash
四、配置PX4及测试

**注意:**此配置需要最新版本的PX4固件,我测试的是2021.9.3的master版本,之前的发行版也还没有rtps的参数配置,需要自己在console中用命令行启动,或者在启动脚本中配置。

1、编译下载最新的固件

需要已经安装完PX4工具链的编译环境,见第二章节中提供的官方文档

cd ~/PX4-Autopilot
make px4_fmu-v5_rtps
make px4_fmu-v5_rtps upload

如果只使用软件在环则使用如下的命令

cd ~/PX4-Autopilot
make px4_fmu-v5_rtps gazebo_typhoon_h480 # 使用typhoon_h480模型
1、通过QGC配置PX4的rtps

将Pixhawk与QGC地面站进行连接,然后在参数设置中找到RTPS项。

然后更改其中的RTPS_CONFIG参数将其在Pixhawk4的TELEM2口输出,如下图所示

更改后重启Pixhawk4,在参数配置中Serial项查看和更改波特率

2、测试

需要USB转串口芯片连接Pixhawk4的TELEM2口(推荐FT232芯片)在电脑终端中执行

micrortps_agent -t UART -d /dev/ttyUSB0 -b 921600

软件在环则不需要硬件连接,直接执行下面命令

micrortps_agent -t UDP

然后另开一个终端执行ros2 topic list即可看到px4的消息主题,如果订阅消息没有输出或遇到问题,注意检查以下几点

  • 串口设备和串口波特率配置
  • 软件版本,PX4一定是2021年9月3日之前的最新版本。
  • 如果连接的是Pixhawk,注意其是否已经初始化成功,否则订阅不到传感器消息。
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016484.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号