gazebo的安装

2023-05-16

  1. 安装ros 1.1设置软件源: 清华源或者阿里都可 sudo sh -c '. /etc/lsb-release && echo "deb Index of /ros/ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list' 1.2设置密钥: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654 1.3安装Ros-melodic: sudo apt-get update sudo apt-get install ros-melodic-desktop-full sudo apt-get install ros-melodic-rqt*

1.4 配置环境变量: echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc 1.5 安装rosdepc(一个外部软件接口) sudo apt-get install python3-pip sudo pip3 install rosdepc 1.6 初始化rosdep: sudo rosdep init rosdep update

1.7 打开bashrc sudo nano gedit ~/.bashrc

1.8 加上两行内容 export ROS_HOSTNAME=localhost

export ROS_MASTER_URI=http://localhost:11311

1.9 运行source ~/.bashrc 更新 .bashrc

到此,安装结束,ros安装参考 Ubuntu18版本安装ROS_每日亿学的博客-CSDN博客_ubuntu18安装ros^v10^pc_search_result_control_group,157^v5^new_style2&utm_term=ubuntu18%E7%89%88%E6%9C%AC%E5%AE%89%E8%A3%85ros&spm=1018.2226.3001.4187

  1. 安装gazebo 2.1先卸载原来的: sudo apt-get remove gazebo* sudo apt-get remove libgazebo* sudo apt-get remove ros-melodic-gazebo* 2.2安装gazebo9.1 2.2.1.设置源packages.osrfoundation.org. sudo sh -c 'echo "deb Index of /gazebo/ubuntu-stable/ lsb_release -cs main" > /etc/apt/sources.list.d/gazebo-stable.list'

2.2.2 cat /etc/apt/sources.list.d/gazebo-stable.list

2.2.3设置Key wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

2.2.4.安装 sudo apt-get update sudo apt-get install gazebo9=9.1* 2.2.5 更新 sudo apt upgrade 2.2.6启动测试 gazebo

  1. MAVROS安装 3.1 安装 sudo apt install ros-kinetic-mavros sudo apt install ros-melodic-mavros ros-melodic-mavros-extras wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh sudo chmod a+x ./install_geographiclib_datasets.sh sudo ./install_geographiclib_datasets.sh #这步需要装一段时间,请耐心等待PX4配置

  2. 安装px4 4.1 git clone https://github.com.cnpmjs.org/PX4/PX4-Autopilot.git(或者https://github.com/PX4/PX4-Autopilot.git)

4.2 cd PX4-Autopilot/ git submodule update --init --recursive bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools #安装python依赖

这部分按照教程给出的更新即可 最后 make px4_sitl_default gazebo 4.3 安装一部分依赖(可以避免后面的一些错误) sudo apt-get install libgstreamer-plugins-base1.0-dev sudo pip3 install pyquaternion sudo pip install pyquaternion

  1. 下载XTDrone 5.1 下载安装 git clone XTDrone: 基于PX4、ROS和Gazebo的无人机通用仿真平台 cd XTDrone git submodule update --init --recursive cp sensing/gimbal/gazebo_gimbal_controller_plugin.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src/ cp sitl_config/init.d-posix/rcS ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/ cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/ cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/ cp -r sitl_config/launch/* ~/PX4_Firmware/launch/ cd ~/.gazebo/models/ rm -r stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/

提示没有model,这个是需要自己下载的,下载链接在上面,将其放置在指定位置即可

更新: make px4_sitl_default gazebo

5.2 后面就可以使用键盘控制无人机了: cd ~/PX4_Firmware roslaunch px4 indoor1.launch

cd ~/XTDrone/communication/ python multirotor_communication.py iris 0

cd ~/XTDrone/control/keyboard python multirotor_keyboard_control.py iris 1 vel 推荐起飞流程,按i把向上速度加到0.3以上,再按b切offboard模式,最后按t解锁。

解析: 首先看launch文件: "$(find mavlink_sitl_gazebo)/worlds/indoor1.world" 使用了这个gazebo模型,还使用到了MAVROS和"$(find px4)/launch/single_vehicle_spawn_xtd.launch" 后面中国launch为一架飞行器飞行的launch文件 注意,现在mavros话题与服务前带有了无人机名字,如:/iris_0/mavros/state

5.3 PX4飞控EKF配置 PX4默认使用的EKF配置为融合GPS的水平位置与气压计高度。如果我们想使用视觉定位,就需要把修改配置文件。 gedit ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/rcS 将部分内容替换: # GPS used #param set EKF2_AID_MASK 1 # Vision used and GPS denied param set EKF2_AID_MASK 24


# Barometer used for hight measurement
#param set EKF2_HGT_MODE 0
# Barometer denied and vision used for hight measurement
param set EKF2_HGT_MODE 3  

替换后输入: rm ~/.ros/eeprom/parameters* rm -rf ~/.ros/sitl*

5.5 上面说了控制单一飞行器的方法,现在修改机型,修改方式是修改launch文件: 5.5.1打开lacunch文件 cd ~/PX4_Firmware/launch/ gedit outdoor3.launch 若不改,打开后是车的模型,我们将其更改为无人机: 将rover改成solo 同时打开/home/a/PX4_Firmware/Tools/sitl_gazebo/models文件夹,查看对应车型使用的传感器型号文件,将其对应的名称修改在 <arg name="sdf" value="solo_stereo_camera"/>即可 总共需要修改4处,一处传感器,3处solo

我们将机型选为solo,注意由于地面高度较高,需要把launch文件中初始z位置设为1,不然飞机就在地面以下了。 <arg name="z" default="1"/> 除了solo,还有以下对应的机型可以选择,具体如下: “XTDrone目前支持多旋翼飞行器(multirotor)、固定翼飞行器(plane)、可垂直起降固定翼飞行器(vtol)以及车辆(rover)四个大类机型,multirotor下有iris、solo和typhoon_h480三个机型,vtol下有tailsitter、quadplane(模型叫standard_vtol)和tiltrotor三个机型,plane和rover没有下属机型。” 5.5.2 启动仿真: cd ~/PX4_Firmware roslaunch px4 outdoor3.launch

5.5.3 启动通信 cd ~/XTDrone/communication python multirotor_communication.py solo 0 5.5.4 启动键盘控制: cd ~/XTDrone/control/keyboard python multirotor_keyboard_control.py solo 1 vel

对于多旋翼飞行器,Offboard控制起飞很容易,给一个大于0.3m/s的期望z向速度即可,因此可以不使用Takeoff模式(按键中的v),Takeoff模式的相关参数(起飞高度,起飞速度)需要在rcS设置,比较麻烦。 不断按i把期望z向速度加到0.3m/s以上,然后按b切到offboard模式,再按t解锁即可起飞,飞到合适的高度后,按s即可实现悬停。

其他机型类似,具体看原文

因此大概思路就是,找到你想使用的世界,打开对应的世界的launch文件,修改里面的机型即可

5.6 多机编队 5.6.1 在上面的基础上,想要在一个世界里面加入多种不同的机型,并且控制的话,需要先生成多机launch文件: cd ~/XTDrone/coordination/launch_generator python3 generator.py

输入0-7选择机型,enter确认后输入该机型的数量,之后输入该机型占据的行数(这样可以构成矩形阵列)。添加结束后输入f进行launch文件的生成。

假如我想1x6,则先输入6,再输入1,以此类推 5.6.2 将生成出来的launch文件复制到PX4固件的launch文件夹 cp ~/XTDrone/coordination/launch_generator/multi_vehicle.launch ~/PX4_Firmware/launch/

5.6.3启动: cd ~/PX4_Firmware/ roslaunch px4 multi_vehicle.launch

5.6.3修改传感器(可选) 实际上,generator.py生成的launch文件中的无人机自带了特定的传感器,如果不需要此传感器,或者需要别的传感器,需要修改launch文件中的模型SDF部分,也就是5.5讲的

5.6.4 多机器通信(重点),首先启动脚本 gedit ~/XTDrone/communication/multi_vehicle_communication.sh

修改对应机型的数量: #!/bin/bash iris_num=6 typhoon_h480_num=3 solo_num=6 plane_num=3 rover_num=3 standard_vtol_num=3 tiltrotor_num=3 tailsitter_num=6 这些就是机型,你自己创建了多少个对应的机型就修改上 运行脚本: bash multi_vehicle_communication.sh 5.6.5 关闭通信: bash stop_communication.sh 建立通信后,可以在control目录下分别启动对应机型的键盘控制脚本,即可实现利用键盘同时控制多机型。当然多机型的控制,实际肯定是要编写脚本,不依赖手动控制的无人驾驶,这些就有待后续的开发了。 键盘控制脚本(solo部分,其他一样): cd ~/XTDrone/control/keyboard python multirotor_keyboard_control.py solo 1 vel

5.7多无人机编队: 5.7.1 先生成对应的机型环境 cd ~/XTDrone/coordination/launch_generator python3 generator.py 选择6架iris,2行,生成文件,将该文件复制到~/PX4_Firmware/launch/ cp ~/XTDrone/coordination/launch_generator/multi_vehicle.launch ~/PX4_Firmware/launch/ 5.7.2 因为用不到传感器,就先把这传感器文件删除 cd ~/PX4_Firmware/launch 找到对应的multi_vehicle.launch文件 将iris_stereo_camera替换为iris即可 <arg name="sdf" value="iris_stereo_camera"/> 5.7.3 启动编队环境 cd ~/PX4_Firmware roslaunch px4 multi_vehicle.launch 5.7.4 修改通信的脚本(类似于5.6.4) gedit ~/XTDrone/communication/multi_vehicle_communication.sh 将其改为iris为6,其他为0即可 5.7.5 建立通信 cd ~/XTDrone/communication bash multi_vehicle_communication.sh

5.7.6给9个iris提供位姿信息,注意这里使用的是Gazebo位姿真值,因为只有这样,它们的局部位置(local_position)才是在统一的坐标系下。注意这里不能使用GPS定位(仿真里的GPS的局部坐标系以无人机起飞点为原点,使得不同的无人机的坐标系不统一),需要修改EKF的输入,也就是5.3 cd ~/XTDrone/sensing/pose_ground_truth python get_local_pose.py iris 6

使用键盘控制所有无人机起飞(注意要飞的高一些,防止编队过程中有的无人机触地) cd ~/XTDrone/control/keyboard python multirotor_keyboard_control.py iris 6 vel

无人机悬停后,键盘按g键,进入leader-follower模式,然后启动多机协同脚本。 cd ~/XTDrone/coordination/formation_demo bash run_formation.sh iris 6

然后再返回刚刚的键盘控制终端,按1or2or3即可切换队形

5.7.7(*拓展:以上编队控制为速度控制,且每个follower直接和leader通信,协同策略简单且有效。更复杂的通信拓扑和一致性控制算法,则需要运行 bash run_formation_consensus.sh iris 9 vel #一阶系统假设,速度控制 bash run_formation_consensus.sh iris 9 accel #二阶系统假设,加速度控制)

来自 <NVIDIA Jetson Nano安装和使用Anaconda - 翟亚峰 - 博客园>

点此处直达下载地址,进入以上下载地址之后,按照需求下载相应版本即可。这里下载的版本为0.2.3

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

gazebo的安装 的相关文章

随机推荐

  • 双系统之kali

    双系统之kali 所用工具制作kali的引导盘硬盘分区安装kali设置启动引导设置root密码U盘恢复 下面文章多为图片形式 xff0c 每个图片中包含详细的步骤 所用工具 16G的U盘一个 xff0c 电脑一台 所有的软件均已上传至百度网
  • 连接GitHub提示远程主机关闭连接

    连接GitHub提示远程主机关闭连接 发现问题排查问题反思 错误代码 xff1a kex exchange identification Connection closed by remote host 发现问题 今天晚上使用git连接了G
  • Linux - Nginx安装

    Linux Nginx安装 下载 amp 配置启动优化nginx添加新模块 本文由于是学习 xff0c 所以使用tar包安装 xff0c Linux版本CentOS7 xff0c nginx 1 20 2 xff0c 本次安装路径为 usr
  • 异常记录-3

    异常记录 3 异常类名描述问题原因解决方案异常重现 异常类名 org springframework beans BeanInstantiationException 描述 Failed to instantiate javax servl
  • 异常记录-22

    异常记录 22 异常描述问题原因解决方案异常重现 异常 ssl SSLEOFError EOF occurred in violation of protocol ssl c 997 描述 urllib3 exceptions MaxRet
  • Linux - RabbitMQ部署

    Linux RabbitMQ部署 准备部署账户创建使用 准备 span class token function cat span etc redhat release 查看自己的服务器什么版本的 xff0c 本人使用的CentOS8 安装
  • Linux - MongoDB部署

    MongoDB部署 准备部署mongoDB部署 启动优化角色 参考 准备 MongoDB下载 官方下载 选择自己需要的版本 xff0c 以及服务器版本 xff0c 以及安装方式 xff0c 本篇文章我们安装6 0MongoDB使用CentO
  • 异常记录-23

    异常记录 23 异常描述问题原因解决方案异常重现 异常 64 WebFilter 描述 Java 过滤器 64 WebFilter不起作用 问题原因 64 WebFilter需要注册到Bean中 xff0c 只写注解不起作用的 解决方案 在
  • Vscode黑色主题很难看到鼠标

    Vscode黑色主题很难看到鼠标 xff0c 像瞎了一样 xff0c 找半天不知道鼠标在哪里 xff0c 解决办法 xff1a 控制面板 鼠标 指针 看 自定义 选择 文本选择 点击 浏览 选择 beam r xff0c 这个是光标周围带白
  • python中变量前面加单下划线和双下划线的区别&python的私有属性

    一 在py文件中 变量名字前面加单下划线和双下划线都是对变量的保护 xff0c 一种约定 xff0c 用来指定变量私有 程序员用来指定私有变量的一种方式 不能用from module import 导入 xff0c 其他方面和公有一样访问
  • APM、PIXHAWK、PX4的关系

  • QT小记:QT程序异常结束的可能原因

    一 问题 xff1a 程序异常结束 二 解决 1 解决思路 xff08 1 xff09 QT程序异常结束的原因之一可能引用了某个库 xff0c 但是某个库QT找不到 xff0c 就会出现崩溃的问题 解决 xff1a 1 检查pro文件是否正
  • C语言:十进制转换成十六进制字符串和数组

    1 十进制转换成十六进制字符串 include lt stdio h gt 函数 xff1a 将十进制数字转换为十六进制 xff0c 并将转换后的数字存储在字符串中并输出 void dec2hex int n char str 100 in
  • 【统计计算】课程总结笔记

    传统的主成分分析法 xff08 PCA xff09 缺陷在于 xff1a 对于 小样本问题 xff08 样本维数d远大于样本个数N xff09 xff0c 样本协方差矩阵规模 d d 太大了 xff0c 在后续求特征值问题中计算量较大 于是
  • ros --- 双目相机内参与外参标定

    ros 双目相机内参与外参标定 小觅相机直接获取参数手动重新标定1 双目相机内外参标定生成标定板录制 stereo calibra bag标定标定结果标定验证 2 双目 43 imu外参标定录制 stereo 43 imu calibra
  • RT-Thread之入门跑代码

    本文将讲述如何在window10中利用tensorflow跑代码 xff0c 并且编译成bin文件 xff0c 最后在k210中运行 一 在window上安装tensorflow框架 xff08 python3 7 xff09 1 安装An
  • keil5的基本使用

    项目文件后缀 硬件下载 1 编译 2 下载 软件仿真 一 基本知识 1 选择软件仿真选项 2 编译 3 启动软件仿真 4 运行代码 二 软件仿真的具体使用 1 我们想运行到 哪一步就在那一步添加断点 xff08 在左边的空白处左键点一下就可
  • pytorch之池化层

    实际图像里 xff0c 我们感兴趣的物体不会总出现在固定位置 xff1a 即使我们连续拍摄同一个物体也极有可能出现像素位置上的偏移 这会导致同一个边缘对应的输出可能出现在卷积输出 Y中的不同位置 xff0c 进而对后面的模式识别造成不便 在
  • 串口通信协议

    通信协议的基本概念 用于定义通信过程及细节规则的协议称为通信协议 xff0c 通信系统之间为了完成通信所必须遵循的规则和约定 xff08 数据包格式 字段的内容 字段的含义 发送的时间 接收的时间等细节 xff09 个人理解 xff1a 就
  • gazebo的安装

    安装ros 1 1设置软件源 xff1a 清华源或者阿里都可 sudo sh c 39 etc lsb release amp amp echo 34 deb Index of ros ubuntu 清华大学开源软件镜像站 Tsinghua