Airsim动态 | 安装ROS包装器(AirSim ROS Wrapper)

2023-05-16

file 本期内容我们将带来在Airsim环境下使用ROS Wrapper的相关教程,以下是AirSim客户端库上的一些ROS Wrapper相关配置。

一、启动

以下步骤适用于 Linux 系统。如果是在 Windows 上运行 AirSim,可以使用 Windows Subsystem for Linux (WSL) 来运行 ROS 包装器,如果不想在主机上安装ROS相关工具,也可以使用Docker容器进行安装。请检查下方内容并按照需求安装,具体内容可以参照最后网址。

如果您的默认 GCC 版本不是8或更高版本(检查使用命令gcc --version)

a) 安装 gcc >= 8.0.0:sudo apt-get install gcc-8 g++-8 b) 验证安装 gcc-8 --version

如果是Ubuntu 18.04版本 a) 安装ROS melodic版本 b) 安装 tf2 传感器和 mavros 包: sudo apt-get install ros-kinetic-tf2-sensor-msgs ros-kinetic-tf2-geometry-msgs ros-kinetic-mavros*

如果是Ubuntu 16.04版本 a) 安装ROS Kinetic版本 b)安装 tf2 传感器和 mavros 包: sudo apt-get install ros-melodic-tf2-sensor-msgs ros-melodic-tf2-geometry-msgs ros-melodic-mavros*

如果是Ubuntu 20.04版本 a) 安装ROS noetic版本 b) 安装 tf2 传感器和 mavros 包: sudo apt-get install ros-melodic-tf2-sensor-msgs ros-melodic-tf2-geometry-msgs ros-melodic-mavros*

安装catkin_tools: sudo apt-get install python-catkin-tools 或pip install catkin_tools. 如果使用的Ubuntu是20.04版本,请使用以下安装命令: pip install "git+https://github.com/catkin/catkin_tools.git#egg=catkin_tools"

网址推荐: 1.WSL在Win10上构建环境: https://microsoft.github.io/AirSim/airsim_ros_pkgs/#setting-up-the-build-environment-on-windows10-using-wsl1-or-wsl2

2.使用Docker: https://microsoft.github.io/AirSim/airsim_ros_pkgs/#using-docker-for-ros

二、构建环境

构建AirSim: git clone https://github.com/Microsoft/AirSim.git; cd AirSim; ./setup.sh; ./build.sh; 确定已按照上述界面安装好并为ROS 设置了环境变量。方便起见,将“source”命令添加到自己的【.bashrc】上(替换melodic为特定版本名称)。 echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc

构建ROS包 cd ros; catkin build; # or catkin_make

请注意,如果自己默认GCC版本不是8以上的版本,则会导致编译失败,在这种情况下,可以使用【gcc-8】明确这一点: catkin build -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8

三、运行 source devel/setup.bash; roslaunch airsim_ros_pkgs airsim_node.launch; roslaunch airsim_ros_pkgs rviz.launch; 注意:如果运行时出现错误:

注意:如果运行时出现错误: roslaunch airsim_ros_pkgs airsim_node.launch 则可以使用命令catkin clean清除并重新运行。

四、使用AirSim ROS wrapper功能包 ROS wrapper由两个 ROS 节点组成——第一个是 AirSim 的多旋翼C++ 客户端库的包装器,第二个是一个简单的 PD 位置控制器。

关于订阅和发布节点,参数与service可以参考网址: https://microsoft.github.io/AirSim/airsim_ros_pkgs/#airsim-ros-wrapper-node

PID位置控制器节点可以参考: https://microsoft.github.io/AirSim/airsim_ros_pkgs/#simple-pid-position-controller-node

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。 阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!

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

Airsim动态 | 安装ROS包装器(AirSim ROS Wrapper) 的相关文章

  • 基本类型的 C++ 类包装器

    我见过 使用的许多库都有 typedef 来提供可移植的 固定大小的变量 例如 int8 uint8 int16 uint16 等 无论平台如何 它们都是正确的大小 并且 c 11 本身使用头文件 stdint txt 来实现 H 最近在我
  • 在 Ubuntu 18.10 上安装 ROS Melodic

    I can t是唯一对 Cosmic 与 Wayland 和 Melodic 的组合感兴趣的人 我会坦白说 我似乎已经在 XPS 13 9370 上成功管理了此操作 或者至少安装脚本 最终 成功完成 然而 有一个非常棘手的解决方法 无论结果
  • Java 包装器到 Perl/Python 代码

    我必须在仅支持 Java 的服务器上部署一些 Web 服务 但其中一些将使用 perl 或 python 完成 我想知道是否可以开发一个 Java 包装器来调用用 perl 或 python 编写的特定代码 因此 我希望所有的 Web 服务
  • 如何访问 Heroku 中的 docker 容器?

    我已按照此处构建图像的说明进行操作 https devcenter heroku com articles container registry and runtime getting started https devcenter her
  • 将 C++ lambda 传递给旧的 C 函数指针

    我必须为旧的 C 库创建一个 C 包装器 在类方法中 我必须调用一个 c 函数 该函数还需要一个函数指针 它是一个事件处理程序 并且该函数需要一个在事件发生时触发的函数 一个简单的例子是这样的 void myclass add handle
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • Log4j 单例包装器的好处?

    我最近继承了一些Java代码 需要将其集成到我正在开发的项目中 我的项目是一个处理和转换 XML 消息的服务代理 在查看新代码时 我发现了以下日志记录类 import org apache log4j BasicConfigurator i
  • 如何检查 php://input 是否设置?

    我需要检查是否php input存在 设置 它可以与 PHP 一起使用吗isset https php net isset 正确的检查方法是什么 尝试用以下方法测试它file get contents http php net file g
  • 如何在 .NET 应用程序中使用 C++ 项目?

    我是一名普通的 NET 开发人员 旨在将 C 库集成到 NET 项目中 我有一些想法 但由于我总体上是 C 新手 所以我不知道我正在尝试使用的技术的局限性 C 项目本质上是一个快速声音渲染器 可以使用一堆不同的后处理技巧来播放多轨音频文件
  • 在 JSF 2.0 组件中包含子元素

    这一定很简单 我正在尝试将子元素传递到 JSF 组件中 我的组件声明为
  • 如果包装器使用拆箱,那么 intValue() 方法需要什么?

    例如 看看这段代码 Integer myInt new Integer 5 int i1 myInt intValue int i2 myInt System out println i1 System out println i2 正如您
  • R:如何在省略号中使用列表元素(如参数)?

    我不确定我的问题标记是否正确 但我试一试 我想使用一个带有使用省略号的函数的包 func 我所有的课堂论点My Class都在一个列表中 因为我有很多争论 所以我想避免func arg1 arg2 arg3 所以理想情况下我想做func m
  • 片段 - 您是否必须在包含整个活动的片段周围使用活动包装器?

    考虑以下示例应用程序开发者 android com http developer android com images fundamentals fragments png 这描述了如何使用 Fragment 如下所示 在电话上 您可以在活
  • 包含 unistd.h 的 write() 包装例程会导致错误

    我正在编写一个包装例程write 要覆盖原始系统功能 并在其中我需要通过执行另一个程序execve 我为其添加了头文件unistd h 我收到错误conflicting types for write usr include unistd
  • 同时从多个应用程序访问网络摄像头

    问题背景 有两个不同的 Windows 应用程序正在尝试同时访问计算机上的网络摄像头 目前 只有一个应用程序能够访问它 我希望能够允许两个应用程序同时访问网络摄像头 我的问题的一个常见示例是 Skype 和 yahoo Messenger
  • 所有原始包装类都是不可变对象吗?

    Java 中的所有原始包装类都是不可变对象吗 字符串是不可变的 其他不可变对象是什么 Any type which doesn t give you any means to change the data within it is imm
  • 最近用 Java 编写的 FFTW 包装器

    我正在寻找最新版本的最小 Java 包装器FFTW http www fftw org FFTW 网站上列出的包装器要么已过时 jfftw 1 2 zip ftp ftp fftw org pub fftw jfftw 1 2 zip 或包
  • R:使用带有 .Call 和 C/C++ 包装器的 Fortran 子例程而不是 .Fortran 的优点?

    我有一个 R 包 它使用大量 Fortran 子例程来进行递归线性代数计算的嵌套循环 很大程度上依赖于 BLAS 和 LAPACK 例程 作为 Fortran 的接口 我使用 Fortran功能 我刚刚读过乔纳森卡拉汉的博客文章 http
  • 如何在Windows上安装机器人操作系统ROSJava?

    ROS 的文档很糟糕 一个很大的讽刺是 ROS 的 Groovy 和 ROSJava 版本的创建是为了让 Windows 等平台上的开发人员能够利用出色的机器人 SDK 而所有安装说明仍然面向 Linux ubuntu 用户 The ROS
  • 使用 fopen() 包装器创建 ZIP 文件

    如何使用以下命令创建 ZIP 文件fopen 包装器 http es php net manual en wrappers compression php 这显然是not道路

随机推荐