Ubuntu20.04安装ROS2+ROS2-PX4框架搭建

2023-05-16

目录

  • Ubuntu20.04安装ROS2
    • Set locale
    • Setup Sources
    • Install ROS2 package
    • Environment setup
    • 测试
  • ROS2-PX4框架搭建
    • Install PX4
    • Install ROS2
    • Setup XRCE-DDS Agent & Client
      • Setup the Agent
      • Start the Client
    • Build ROS 2 Workspace
      • Building the Workspace
      • Running the Example
      • ROS 2 Offboard Control Example

Ubuntu20.04安装ROS2

具体步骤参照 官方文档。此外如果安装过程中出现bug,可以参考这篇文章,写得很详细。

Set locale

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

Setup Sources

sudo apt update
sudo apt install curl gnupg2 lsb-release
curl http://repo.ros2.org/repos.key | sudo apt-key add - 
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'

Install ROS2 package

sudo apt update
sudo apt install ros-foxy-desktop

Environment setup

用脚本设置:

source /opt/ros/foxy/setup.bash

但是这样每次打开新终端都得配置一下,如果不想每次打开新终端都输入一遍上述语句,可以这样设置,让终端自动配置好环境:

echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc

测试

可以用下述例程来测试一下环境是否安装成功:
分别在两个终端运行talker和listener

  1. 终端1输入
ros2 run demo_nodes_cpp talker
  1. 终端2输入
ros2 run demo_nodes_cpp listener

可以看到终端1在不断输出hello world,终端2在接收。那么ros2环境就安装好了

ROS2-PX4框架搭建

这个安装教程针对最新的PX4固件(v1.14及以后)。最新的PX4固件直接采用XRCE-DDS中间件来和ROS2连接,用这种最新的方法,环境配置简单了许多。
参照官方教程
在这里插入图片描述

Install PX4

以下步骤需要科学上网:

  1. 下载PX4源码
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
  1. 安装配套的工具
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
  1. 重启电脑

Install ROS2

如果按步骤下来,我们之前已经安装好了ROS2 Foxy,接下来还需要安装一些Python的依赖项

pip3 install --user -U empy pyros-genmsg setuptools

注意上条指令如果报错,可以重新运行一遍,到没有错误信息为止

Setup XRCE-DDS Agent & Client

要让ROS2和PX4通讯,需要在PX4上运行XRCE-DDS的客户端,并在计算机上运行XRCE-DDS的代理

Setup the Agent

  1. 启动一个终端,输入以下指令
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/
  1. 启动代理,连接模拟器运行的XRCE-DDS的客户端
MicroXRCEAgent udp4 -p 8888

这样代理就启动了,但是在启动PX4的客户端之前,代理不会接收到任何信息。
在这里插入图片描述

Start the Client

PX4的仿真环境会自动启动XRCE-DDS的客户端,并连接到UDP 8888端口。我们打开一个新的终端,启动PX4的仿真:

make px4_sitl gazebo-classic

(如果这里报错找不到gazebo-classic,可以重新下载一个最新版的PX4源码,并–recursive更新一下)

PX4的仿真启动完成后,我们就能在之前的终端看到话题了
在这里插入图片描述

Build ROS 2 Workspace

Building the Workspace

默认的ROS2工作区建立在home目录下,当然这个可以根据需求更改

  1. 打开终端,建立一个新的工作区
mkdir -p ~/ws_sensor_combined/src/
cd ~/ws_sensor_combined/src/
  1. 下载例程和px4_msgs
git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git
  1. 配置ros2 foxy的环境,并用colcon编译工作区
cd ..
source /opt/ros/foxy/setup.bash
colcon build

Running the Example

可以利用以下例程测试是否搭建成功

  1. 在终端输入(在~/ws_sensor_combined/目录下
source install/local_setup.bash
  1. 启动示例
ros2 launch px4_ros_com sensor_combined_listener.launch.py

只要PX4的仿真是启动着的,就可以在终端接收到订阅的传感器信息:

在这里插入图片描述

ROS 2 Offboard Control Example

  1. 启动终端,输入
MicroXRCEAgent udp4 -p 8888
  1. 在另一个终端启动PX4仿真
#首先要到PX4源码的目录下
make px4_sitl gazebo-classic
  1. 打开一个新的终端,进入之前创建的ROS2工作区目录下
cd ~/ws_offboard_control/
source install/local_setup.bash
ros2 run px4_ros_com offboard_control

可以看到无人机自动解锁,并上升到5m的高度,定点盘旋

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu20.04安装ROS2+ROS2-PX4框架搭建 的相关文章

  • Ubuntu20.04跑VINS-fusion

    Ubuntu20 04跑VINS Fusion 使用docker 由于工程较大 xff0c 依赖较多 xff0c 环境配置十分繁琐 xff0c 故使用docker环境来运行VINS Fusion Docker 可以让开发者打包他们的应用以及
  • ubuntu20.04安装arduino IDE(亲测可用)

    步骤一 xff1a 在官网下载arduino安装包选择相应的版本 下载链接 步骤二 xff1a 解压下载的安装包在相应的目录下执行下面语句 tar xvf 安装包名 步骤三 xff1a 将解压后的安装包移动到 opt目录下 sudo mv
  • px4无人机常识介绍(固件,px4等)

    专业名词解释 aircraft 任何可以飞或者可以携带物品还是搭载旅客的飞行器统称为飞机 航空器 uav 无人驾驶飞机 vehicle 飞行器 airplane plane aero plane 有机翼和一个或多个引擎的飞行器统称为飞机 D
  • 解决ubuntu20.04虚拟机无法上网的问题

    64 linux虚拟机无法正常上网 前言 刚建立好的linux虚拟机使用NAT方式可以连接外网 xff0c 系统重启几次 xff0c 系统无法上网 xff0c 这是什么问题导致的呢 xff1f 提示 xff1a 以下是本篇文章正文内容 xf
  • ROS2话题入门

    1 订阅发布模式 一个节点发布数据到某个话题上 xff0c 另外一个节点就可以通过订阅话题拿到数据 除了上述这种一个节点发布 xff0c 一个节点接受的形式外 xff0c ROS2话题通信其实还可以是1对n xff0c n对1 xff0c
  • virtualbox上安装ubuntu20.04清华源镜像

    一 下载Ubuntu镜像文件 这里我选择国内清华源下载ubuntu镜像文件 步骤一 xff1a 清华源下载地址 xff1a Index of ubuntu releases 20 04 清华大学开源软件镜像站 Tsinghua Open S
  • ROS2 + Qt5 cmake的CMakeLists.txt文件配置

    ROS2 QT实现学习笔记 1 1 功能包的创建和编译 ROS2 Foxy 43 Qt5 on Linux Platform 按上面两个文章配置后的目录结构 build CMakeLists txt include mainwindow h
  • PX4之常用函数解读

    PX4Firmware 经常有人将Pixhawk PX4 APM还有ArduPilot弄混 这里首先还是简要说明一下 xff1a Pixhawk是飞控硬件平台 xff0c PX4和ArduPilot都是开源的可以烧写到Pixhawk飞控中的
  • Ubuntu20.04 Firefox浏览器设置暗黑主题

    Ubuntu20 04 Firefox浏览器设置暗黑主题 浏览器右上角点击三横线 xff0c 选择扩展 xff0c 搜索Dark Reader 安装并启用即可
  • 树莓派4B Ubuntu20.04 ROS2 DSO realsense d455

    在git上下载dso 并编译 opencv version 61 4 2 0 span class token builtin class name cd span lib dso dso span class token function
  • ubuntu20.04 安装 WPS 2019

    ubuntu自带的文字处理软件对来自windows下office或在WPS创建的ppt有点不兼容 xff0c 看到WPS有linux版本的 xff0c 便果断安装试一试 一 卸载原生liboffice sudo apt get remove
  • 四、无人机知识笔记(初级:基本运动原理)

    笔记来源于 沈阳无距科技 工业级无人机的中国名片 编程外星人 目录 一 多旋翼直升机 二 基本飞行姿态 三 多旋翼飞行原理 四 反扭力与偏航运动 五 螺旋桨 六 有刷电机和无刷电机 七 电调与PWM信号 八 动力电池 九 遥控器 十 机架设
  • 大神浅谈无人机飞控软件设计 系统性总结

    写在前面 深感自己对飞控软件 算法的知识点过于杂乱 很久没有进行系统的总结了 因此决定写几篇文章记录一些飞控开发过程的知识点 主要是针对一些软件 算法部分进行讨论 如内容有错误 欢迎指出 1 飞控软件的基本模块 无人机能够飞行主要是依靠传感
  • ROS2 驱动思岚G4雷达(ydlidar)- Rviz显示

    记录G4雷达的配置 系统环境为 Ubuntu22 04 配置步骤 1 安装雷达SDK 2 构建 G4 雷达 ROS2 项目工程文件 3 使用Rviz可视化界面显示 1 安装雷达SDK 1 1 安装CMake YDLidar SDK需要CMa
  • ROS2 Humble如何使用串口驱动?(Serial)

    目录 1 串口库 Serial Library 简介 2 源码及主页 3 国内git仓库 ROS2 humble已测试可用 4 可能出现的问题
  • ROS2中创建 Python 和 C++包

    创建 Python 包 在本教程中 您将学习如何创建和设置 ROS2 Python 包 我将向您展示每一步 并解释文件之间的关系 在哪里编写节点 如何添加启动文件等 设置 ROS2 Python 包 Python包内文件说明 package
  • Exception sending a multicast message:Network is unreachable故障

    出现这个故障就是没有连接到网络 如果虚拟机没有连接到本机 那么就会出现这个情况 当虚拟机连接到本机就会自动消失 同时如果是用电脑直接安装Ubuntu运行也会出现这个情况 应该是要连接到一个路由器里面这个情况才会消失
  • ros2 基础学习 15- URDF:机器人建模方法

    URDF 机器人建模方法 ROS是机器人操作系统 当然要给机器人使用啦 不过在使用之前 还得让ROS认识下我们使用的机器人 如何把一个机器人介绍给ROS呢 为此 ROS专门提供了一种机器人建模方法 URDF Unified Robot De
  • ros2 基础学习14-- Launch:多节点启动与配置脚本

    到目前为止 每当我们运行一个ROS节点 都需要打开一个新的终端运行一个命令 机器人系统中节点很多 每次都这样启动好麻烦呀 有没有一种方式可以一次性启动所有节点呢 答案当然是肯定的 那就是Launch启动文件 它是ROS系统中多节点启动与配置
  • 使用 docker-compose up 运行时如何优雅地停止 Dockerized Python ROS2 节点?

    我有一个基于 Python 的 ROS2 节点在 Docker 容器内运行 我试图通过捕获来处理节点的正常关闭SIGTERM SIGINT信号和 或通过捕捉KeyboardInterrupt例外 问题是当我使用以下命令在容器中运行节点时do

随机推荐

  • AirSim中运行VIO算法(VINS-Mono)

    VINS Mono在AirSim上跑通 文章目录 VINS Mono在AirSim上跑通一 IMU参数配置二 相机参数设置三 AirSim发布数据问题 关于相机 IMU内外参的完整解释 xff0c 可以参考我的另一篇文章 一 IMU参数配置
  • AirSim中获取视觉、惯性数据方法研究

    AirSim中获取视觉 惯性数据方法研究 文章目录 AirSim中获取视觉 惯性数据方法研究1 获取ROS bag格式数据2 获取文件形式 EuRoc数据集格式 3 其他方案 最近在做AirSim中部署V SLAM xff0c 抽空将之前尝
  • 如何引用开源库(BibTex转为endnote)方法

    前言 xff1a 我们在写论文时 xff0c 论文的工作有时可能会用到别人的开源算法库 xff0c 那么我们如何在参考文献中引用呢 以Ceres库为例 xff0c 该库是谷歌开发的一款求解非线性优化问题的库 xff0c 相信做SLAM相关的
  • 关于MAC 安装 laravel4 的一些经验 二

    unix 和windows 完全不同 xff0c 只好恶补了一些UNIX的知识 xff0c 找到了 profie 这个是隐藏文件 xff0c 在find里面找不到的 接下来只能自己配置PHP环境或者下载其他软件 我下载了XAMPP xff0
  • AirSim相机、IMU内外参分析(VIO、vSLAM)

    作者 朱贞欣 xff0c 公ZH xff1a SLAM学习er 文章目录 0 引入1 世界坐标系2 IMU2 1 IMU数据生成2 2 关于IMU噪声 3 相机3 1 相机外参3 2 内参 0 引入 假设你想通过AirSim获取仿真数据运行
  • C++ cout输出小数位数

    方法一 xff1a 使用setiosflags span class token macro property span class token directive hash span span class token directive
  • kubeadm init 运行时kebelet启动失败问题

    最近在部署kebeedge xff0c 需要先在云服上部署k8s xff0c 期间通过kubeadm init config的方式进行master的部署 xff0c 记录一下遇到的kubelet相关的错误 在通过kubeadm init c
  • 2288hv5超融合服务器 数码管报888

    问题现象 2288hv5超融合服务器 xff0c 前面板数码管报888 xff0c 电源灯黄灯闪烁 xff0c 开不了机 xff0c ibmc网络是通的 xff0c 但是web网页打不开 问题原因 iBMC的版本过低 xff0c iBMC在
  • 跟我一起写操作系统(二)——史上最简单的内核

    跟我一起写操作系统 二 史上最简单的内核 转载注明出处 xff1a http www cnblogs com lucasysfeng p 4847662 html 上一讲地址 xff1a http www cnblogs com lucas
  • k8s中文文档

    http www cnblogs com huangzhenyou p 8066145 html k8s概念比较多 xff0c 有什么概念的疑惑的推荐看k8s中文文档 me的环境 操作系统 xff1a centos7 docker xff1
  • 阿里云 CentOS7 安装图形化界面 。安装图形化界面看这一篇就够了。

    阿里云centos7 下执行eclipse 响应学校老师的要求安装eclipse用于与hadoop的操作 在这之前想过两种方法来解决服务器无图形化界面 xff0c 来操作eclipse 1 在主机上下载eclipse把需要编译的代码编译成j
  • 把ESXi中的虚拟机通过OVA/OVF导出的方式迁移到Proxmox 5

    一 前言 之前发现ESXi是免费的时候 xff0c 非常兴奋地把几台服务器都装上了 xff0c 用着确实还行 xff0c 但是用久了之后就发现 xff0c 很多高端功能需要进一步付费才能使用 xff0c 比如HA等 另外就是它还有很多局限性
  • PX4 ThoneFlow光流使用

    PX4官方光流介绍 xff1a PMW3901 Based Flow Sensors PX4 User Guide 与飞控连接 接线 xff1a G接GND xff1b V接3 3V xff1b T是TX接飞控的RX口 xff1b Y接地开
  • Ubuntu PX4无人机仿真环境配置

    目录 一 VM虚拟机安装ubuntu18 04 1 VMware安装 2 新建虚拟机 二 Ubuntu系统配置 1 更改软件安装源 2 安装中文输入法 三 PX4环境搭建 1 安装git 2 下载px4源码 3 安装ROS 4 安装MAVR
  • larave5安装过程分享-MAX OSX版本

    MAC上的平台是XAMPP xff0c 自带的版本低 我用的是XAMPP MAC版本 一 本地php环境配置 which php php xff0d v xff5c php xampp php PASH 61 34 xff0f applic
  • PX4二次开发 创建进程

    目录 一 创建进程 二 仿真测试 PX4官方手册 xff1a Module Template for Full Applications PX4 User Guide 编写参照PX4源码 src templates xff1a PX4 Au
  • 【Matlab】Matlab基础绘图整理

    Matlab基础绘图整理 一张图绘制多个子图在图片文本中添加希腊字母和特殊字符其他常用函数限制坐标轴范围添加坐标轴说明添加图例修改线条类型 标记修改线条粗细 一张图绘制多个子图 主要命令 xff1a figure 第几张图 subplot
  • PX4 磁罗盘干扰分析

    磁罗盘干扰分析 推力与磁场关系正常情况干扰情况与推力相关解决方法 与推力不相关 罗盘补偿操作流程获取用于分析的日志分析日志调整罗盘补偿参数 推力与磁场关系 无人机上的电机电流会干扰无人机上搭载的磁罗盘 xff0c PX4官方提供了一些方式
  • 【C++】进制

    目录 一 进制转换1 十进制转二进制2 十进制转八进制 xff08 同上 xff09 3 二进制转八进制4 二进制转十六进制5 八进制转二进制6 十六进制转二进制 二 位运算1 原码 反码 补码2 位运算符3 变换操作 一 进制转换 1 十
  • Ubuntu20.04安装ROS2+ROS2-PX4框架搭建

    目录 Ubuntu20 04安装ROS2Set localeSetup SourcesInstall ROS2 packageEnvironment setup测试 ROS2 PX4框架搭建Install PX4Install ROS2Se