首页 > 其他分享 >ROS笔记[1]-搭建Gazebo仿真环境

ROS笔记[1]-搭建Gazebo仿真环境

时间:2024-04-15 14:55:54浏览次数:30  
标签:仿真 ROS Gazebo Firmware PX4 ros gazebo sudo

摘要

在阿里无影云电脑Ubuntu20.04上搭建ROS1-Noetic环境及Gazebo环境;搭建XTDrone仿真环境.

关键信息

  • 系统:Ubuntu20.04
  • ROS1版本:Noetic
  • Gazebo版本:9

原理简介

阿里无影云电脑

[https://www.aliyun.com/product/ecs]
[https://wuying.aliyun.com/]
无影云电脑(WUYING Workspace)是一种易用、安全、高效的云上桌面服务,支持快速便捷的创建、部署和统一运维管控。自带多重安全管控能力,支持随时随地访问,资源灵活弹性。广泛应用于安全办公、协同研发、教育实训、私域运营、分支门店、客服办公等领域。
使用云电脑可以替代本地虚拟机中安装Ubuntu系统方式,不用下载系统镜像和虚拟机软件.

开通信息 开通成功

ROS1简介

[https://wiki.ros.org]
[​​https://www.ros.org/​​]
ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。
ROS Noetic Ninjemys is primarily targeted at the Ubuntu 20.04 (Focal) release, though other systems are supported to varying degrees.

Gazebo简介

[http://www.lxshaw.com/tech/drone/2021/04/13/无人机编程入门(九):gazebo简介、安装与测试/]
[https://gitee.com/wentao02/gazebo/tree/master]
[http://gazebosim.org]
Gazebo是一个很有效的仿真工具,可以用来测试算法、设计机器人、进行测试,提供一个三维视窗来让你观察机器人的表现。
Gazebo - A dynamic multi-robot simulator

This is the Gazebo simulator. Gazebo simulates multiple robots in a 3D environment, with extensive dynamic interaction between objects.

鱼香ROS简介

[https://fishros.org.cn/forum/]
[https://blog.csdn.net/yitiaoxiaolu/article/details/137265190]
鱼香ROS是由机器人爱好者共同组成的社区.
目前支持工具(Ubuntu系统):适用于国内网络环境

  • 一键安装:ROS(支持ROS和ROS2,树莓派Jetson) 贡献@小鱼
  • 一键安装:VsCode(支持amd64和arm64) 贡献@小鱼
  • 一键安装:github桌面版(小鱼常用的github客户端) 贡献@小鱼
  • 一键安装:nodejs开发环境(通过nodejs可以预览小鱼官网噢) 贡献@小鱼
  • 一键配置:rosdep(小鱼的rosdepc,又快又好用) 贡献@小鱼
  • 一键配置:ROS环境(快速更新ROS环境设置,自动生成环境选择) 贡献@小鱼
  • 一键配置:系统源(更换系统源,支持全版本Ubuntu系统) 贡献@小鱼
  • 一键安装:Docker(支持amd64和arm64) 贡献@alyssa
  • 一键安装:cartographer 贡献@小鱼&Catalpa
  • 一键安装:微信客户端 贡献@小鱼

XTDrone简介

[https://www.gitlink.org.cn/studying/XTDrone]
[https://gitee.com/robin_shaun/XTDrone]
[https://www.yuque.com/xtdrone/manual_cn]
XTDrone是基于PX4、ROS与Gazebo的无人机通用仿真平台。支持多旋翼飞行器(包含四轴和六轴)、固定翼飞行器、复合翼飞行器(包含quadplane,tailsitter和tiltrotor)与其他无人系统(如无人车、无人船与机械臂)。在XTDrone上验证过的算法,可以方便地部署到真实无人机上。

实现

  1. 开通云电脑并登录桌面
  2. 打开终端
wget http://fishros.com/install -O fishros && bash fishros
# 然后根据提示输入对应数字安装ROS1

# 测试ROS1 Noetic的安装
roscore

# 配置工作空间
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts
cd catkin_ws && catkin init
catkin build

# 卸载Gazebo11,安装Gazebo9
sudo apt-get remove gazebo* 
sudo apt-get remove libgazebo*
sudo apt-get remove ros-noetic-gazebo* 
sudo apt-get install -y ros-noetic-moveit-msgs ros-noetic-object-recognition-msgs ros-noetic-octomap-msgs ros-noetic-camera-info-manager  ros-noetic-control-toolbox ros-noetic-polled-camera ros-noetic-controller-manager ros-noetic-transmission-interface ros-noetic-joint-limits-interface
sudo apt-get install -y gazebo9
sudo apt-get install -y libgazebo9-dev
sudo apt upgrade

# 下载gazebo模型资源:[https://www.yuque.com/xtdrone/manual_cn/basic_config#6BsYA] models.zip(663.6 MB)
unzip models
mkdir ~/.gazebo
mv ~/models ~/.gazebo
ls ~/.gazebo/models

# 下载PX4源码完整包:[https://www.yuque.com/xtdrone/manual_cn/basic_config#gIkoB] Firmware.zip(918.1 MB)
cd ~
unzip PX4_Firmware.zip

# 下载XTDrone源码
sudo apt install -y git
git clone https://gitee.com/robin_shaun/XTDrone.git
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/

# 配置MAVROS
sudo apt install -y ros-noetic-mavros ros-noetic-mavros-extras

# 配置PX4
cd ~/PX4_Firmware
pip3 install --user toml
sudo apt-get install -y libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
make px4_sitl_default gazebo

# 编译XTDrone
cd ~/catkin_ws
cp -r ~/XTDrone/sitl_config/gazebo_ros_pkgs src/
catkin build

# 启动gazebo
source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware ~/PX4_Firmware/build/px4_sitl_default
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/home/WUYING_2557877116_196072867/PX4_Firmware/Tools/sitl_gazebo/models
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo
source ~/.bashrc
cd ~/PX4_Firmware
sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh
roscore
roslaunch px4 mavros_posix_sitl.launch

# 配置QGroundControl 4:下载[https://github.com/mavlink/qgroundcontrol/releases]
cd ~
sudo chmod +x ~/*.AppImage
sudo usermod -a -G dialout $USER
sudo apt remove modemmanager
~/QGroundControl.AppImage

# 用键盘控制无人机:重启gazebo
killall -9 gzclient
killall -9 gzserver
cd ~/PX4_Firmware
sudo apt install -y xmlstarlet
roslaunch px4 indoor1.launch
cd ~/XTDrone/communication/
pip3 install pyquaternion
python3 multirotor_communication.py iris 0
cd ~/XTDrone/control/keyboard
python3 multirotor_keyboard_control.py iris 1 vel

如果之前没有catkin_ws,则需要新建工作空间,之后除去PX4仿真环境启动外,其余ROS相关工程在此工作空间下管理。

Gazebo有很多开源的模型文件,将该附件解压缩后放在~/.gazebo中,此时在~/.gazebo/models/路径下可以看到很多模型。如果不做这一步,之后运行Gazebo仿真,可能会缺模型,这时会自动下载,Gazebo模型服务器在国外,自动下载会比较久。

便可以通过键盘控制1架iris的解锁/上锁(arm/disarm),修改飞行模式,飞机速度等。使用v起飞利用的是takeoff飞行模式,相关参数(起飞速度、高度)要在rcS中设置。一般可以使用offboard模式起飞,这时起飞速度要大于0.3m/s才能起飞(即:upward velocity 需要大于0.3)。注意,飞机要先解锁才能起飞!飞到一定高度后可以切换为‘hover’模式悬停,再运行自己的飞行脚本,或利用键盘控制飞机。
推荐起飞流程,按i把向上速度加到0.3以上,再按b切offboard模式,最后按t解锁。

所有以indoor开头的场景,都有一个不可见的天花板,它具有碰撞属性,因此无人机不能飞出室内.

效果

使用键盘控制无人机运行 QGroundControl运行

标签:仿真,ROS,Gazebo,Firmware,PX4,ros,gazebo,sudo
From: https://www.cnblogs.com/qsbye/p/18135952

相关文章

  • Redis报错:CROSSSLOT Keys in request don't hash to the same slot的解决方案
    最近,项目上线的时候,出现了一个Redis的报错:CROSSSLOTKeysinrequestdon'thashtothesameslot,这个在内网环境下无法复现,因为正式环境的Redis是cluster集群模式,而我们内网环境是单机模式。(后面我在内网也部署了一个Redis集群,具体见我这一篇文章《使用Docker搭建RedisCluste......
  • microsoft全球GlobalMLBuildingFootprints下载方法
    website:https://github.com/microsoft/GlobalMLBuildingFootprints?tab=readme-ov-filePython代码Start"""Thissnippetdemonstrateshowtoaccessandconvertthebuildingsdatafrom.csv.gztogeojsonforuseincommonGIStools.Youwillneedtoi......
  • [Microservices] Serverless Overview
    IntriductiontoSeverlessComputingDefineserverlesscomputinganddescribeitsconceptsServerlesscomputingistheconceptofbuildingandrunningapplicationsthatdonotrequireservermanagementItdescribesafiner-graineddeploymentmodelwherea......
  • 制造工艺流程仿真 —— 工艺仿真软件巡礼
    原文地址:https://www.sohu.com/a/572121705_649545以下只给出原文的部分摘抄,详细内容参见原文。铸造工艺仿真软件ProCAST、MAGMASOFT、AnyCasting、NOVACAST、JSCAST、FLOW-3DCAST等,注塑工艺仿真软件Moldflow、Moldex3D、3DTIMON等,锻造工艺仿真软件DEFORM、FORGE、QForm......
  • Visual Components对重型机械工业的影响 衡祖仿真
    一、重型机械行业面临的挑战此行业制造商面临着许多挑战,首先是世界各地实施的环境法规不断增多,可持续建筑实践、改善空气质量和减少排放已成为产品设计和开发背后的主要驱动力,健康和安全标准也在不断发展,给已经面临熟练劳动力短缺问题的制造商带来了新的负担。二、为什么使用Vi......
  • 【转载】冲压过程仿真模拟及优化 —— 冲压仿真的方法分类PPT
    地址:https://www.renrendoc.com/paper/310415051.html......
  • 模具仿真软件FASTAMP —— 华中科技大学材料成形及模具技术国家重点实验室
    相关介绍:https://www.ruanfujia.com/software/9525/FASTAMP是由华中科技大学材料成形及模具技术国家重点实验室独立设计开发的,是专业的板料冲压成形快速分析软件。具有优秀的前后处理系统,包括兼容性极高的CAD数据接口,质量和速度具佳的曲面网格剖分器,丰富的点/线/曲面/单元编......
  • 【转载】冲压工艺仿真软件
    原文地址:https://www.ruanfujia.com/10627805/1、AutoFormForming可用于估价、设计、模拟、评估和验证金属板材成形工艺,由可制造的金属板材零件设计AutoForm-StampingAdviser、仿真设置于结果评估AutoForm-Explorer、用于改进冲压工艺获得稳健制造过程的AutoForm-Sigma、数......
  • D. Cross Coloring
    原题链接题解设想每一个\(x,y\)代表中控台,中控台颜色改变它控制的颜色也会跟着改变,我们倒过来求,这样就能确保每个中控台有没有控制的颜色code#definelllonglong#include<bits/stdc++.h>usingnamespacestd;constllmod=998244353;llxs[200005]={0};llys[200005]......
  • 工业辅助制造:冲压/压铸模具设计为什么需要仿真建模
    相关:https://isite.baidu.com/site/wjzz90of/4c6cf443-336f-4dcb-9830-1db415cee29d?fid=nHnvnWb3rHn4nH6drHn1nHfYnjuxnWcdg1D&ch=4&bd_vid=8058739110555694506&bd_bxst=EiaKu83a0D3TFeL900DD0c3dNfKOg40h000000ew8IUqcQ5-YUb6VtQN4Mp6ZaD000002bf4nb7KnbcYf1n4......