免费获取 Steam 游戏 Happy’s Humble Burger Farm[Windows] 立省¥76 是一款第一人称恐怖游戏,恭喜!你被录用了!你将独自负责开心小汉堡庄餐馆的夜间经营。不过要小心:如果你搞砸了,情况会很糟糕!下班回家的路上,你需要保持警惕,避开农场伙伴和他们对快餐的变态追捧。 官方: 在 Steam 上购买 Happy's Humble Burger Farm 立省 100% 觉得不错 就来点 小互动 以资鼓励 1 个帖子 - 1 位参与者 阅读完整话题
Steam喜+3: Happy’s Humble Burger Farm (截止6月15日21点) Eets (截止6月16日凌晨1点) The Red Lantern (截止6月19日凌晨1点) 1 个帖子 - 1 位参与者 阅读完整话题
Ubuntu搭建PX4无人机仿真环境 前言 本教程基于 ROS2 ,在搭建之前,需要把 ROS2、QGC 等基础环境安装配置完成。 小白必看 : 本次安装是以 px4 v1.14.0 为例,不适用之前的 px4 版本。(支持 Ubuntu 22.04 ROS2 Humble PX4v1.14.0+,Ubuntu 24.04 ROS2 Jazzy PX4v1.16.0+) 我的配置如下: 虚拟机 Ubuntu 22.04 (运行内存 4G、硬盘内存 80G) 、ROS2 Humble 、QGC v4.4.4 禁止无脑复制:首先大部分命令都有先后顺序,就是要上一个命令执行成下一个才能执行成功,对于不熟悉的命令可以直接复制问 AI 这样还能顺带学习学习;其次在有些情况下多个命令一起执行会出现奇怪的错误,而且有些命令旁边有注释,有时候复制上去可能也会出现错误。 建议使用虚拟机:虽然虚拟机得性能有限,但是对于新手入门阶段是完全够用了,后续大型仿真再用双系统也比较熟悉了。而且虚拟机有一个快照功能,可以保存当前虚拟机的状态 (相当于存档),这样如果后面出了问题要重新搭建环境,可以用快照回到上一个状态,这样就不用重头开始(我一般是安装好 ROS 拍一个、安装好 mavros 拍一个…)。 关于网络:由于一些懂得都得的原因,再加上每个人的网络环境不同,我们下载 GitHub上的资源、安装 Python 包、apt 安装包等会时快时慢,所以大家会换源,比如一开始的换 apt 软件安装源等。但是下载资源一定要耐心,如果是网络问题,可以尝试多执行几次命令,而且有些我也给了相应的解决方案。 1. 准备 1.1 下载源码 方式一: 从 Github 上下载,但是比较考验个人网速 sudo apt install git git clone https://github.com/PX4/PX4-Autopilot.git # 下载源码 mv PX4-Autopilot PX4_Firmware # 更改目录名 cd PX4_Firmware git checkout v1.14.0 # 切换版本 git submodule update --init --recursive # 更新下载子模块 方式二: 从提供的网盘里下,或者从QQ群(961297255)里下载 链接: 百度网盘 请输入提取码 提取码: rbrk 下载后解压,然后执行下面命令: cd PX4_Firmware wget https://gitee.com/tyx6/mytools/raw/main/px4/set_executable.sh chmod +x set_executable.sh ./set_executable.sh 1.2 安装依赖 sudo apt install ros-dev-tools cd ~/PX4_Firmware/Tools/setup 修改文件并备份 (就把 pip 安装源换成了清华源),这一步是可做可不做,如果觉得python 包下载太慢了,可以试试 sed -i.bak 's|\/requirements.txt|\/requirements.txt -i https:\/\/pypi.tuna.tsinghua.edu.cn\/simple|' ./ubuntu.sh chmod +x ubuntu.sh ./ubuntu.sh --no-nuttx --no-sim-tools # 这是官方提供的脚本 有两个可选参数 # --no-sim-tools 不安装仿真环境 # --no-nuttx 不安装交叉编译环境 #(如果需要自己编译飞控固件,烧录到飞控中,那就需要交叉编译环境) # 脚本执行时间,跟个人网络有关,可能需要一段时间 重启电脑 1.3 安装 Gazebo Gazebo是一款强大的3D仿真软件,主要用于机器人学的研究和开发。它提供了高度逼真的物理模拟环境,包括动力学、碰撞检测、传感器模型以及与真实世界相似的物理属性如重力、摩擦力等。Gazebo可以模拟各种类型的机器人,从移动机器人、无人机到机械臂,甚至可以模拟整个城市环境。 根据上图说明,Gazebo 官方做了更新将之前的 Gazebo Ignition 命名为 Gazebo,以前的 Gazebo 现在叫 Gazebo Classic ,而 Ubuntu 22.04 及以后的版本就支持 Gazebo (Gazebo Ignition) 。 因为几年前官方对 Gazebo 进行了重大架构变更,然后将变更后的版本叫 Gazebo Ignition,旧的仍叫 Gazebo。后面Gazebo Ignition 逐渐成熟并经过使用验证,所以他结束了旧的 Gazebo ( Gazebo 11 是 Gazebo Classic 的最后一个版本,支持到 2025 年 ),并重新对它们命了名。 cd ~/PX4_Firmware/Tools/setup ./ubuntu.sh --no-nuttx # 这一步会安装仿真环境,包括 gazebo # 脚本执行时间,跟个人网络有关,可能需要一段时间 再运行一下 gazebo : gz sim 2. 安装 Micro XRCE-DDS Agent 在 ROS2 中 PX4 使用 uXRCE-DDS 中间件来允许在配套计算机上发布和订阅 uORB 消息,就像它们是 ROS2 话题一样。这提供了 PX4 和 ROS2 之间快速可靠的集成,并使 ROS2 应用程序更容易获取车辆信息和发送命令,如上图所示。 这应该跟 ROS2 将中间件改为 DDS 有关,但是官方又说明了在 ROS2 中仍可以使用 MAVROS,可能官方觉得在 ROS2 中 Micro XRCE-DDS Agent 更好用 ,也可能是因为 MAVLink 是外部通信协议,uORB 是内部通信协议。 注:如果想用 Mavros 请参考这篇文章 ubuntu搭建PX4无人机仿真环境(2) —— MAVROS安装(适用于ROS1、ROS2)-CSDN博客 使用方法跟 ROS1 类似,这里不做描述。 Micro XRCE-DDS Agent 与 MAVROS 的对比(来自豆包AI,仅供参考) MAVROS 是 ROS(机器人操作系统)生态中连接 MAVLink 协议设备(如 PX4、ArduPilot 飞控)的主流工具,本质是 ROS 与 MAVLink 的桥梁。二者的核心差异体现在如下方面: 维度 Micro XRCE-DDS Agent MAVROS 核心定位 资源受限设备与 DDS 分布式网络的通信代理,支持多设备协同 ROS 与 MAVLink 设备(如飞控)的通信桥梁,专注无人机控制 生态兼容性 兼容 DDS 生态(如 Fast DDS、Cyclone DDS),可与非 ROS 系统集成 强依赖 ROS 生态,仅支持 ROS 节点与 MAVLink 设备交互 资源占用 客户端(Client)极轻量(适合 MCU 等嵌入式设备),Agent 本身资源消耗中等 依赖 ROS 节点和进程,资源占用较高(不适合极简嵌入式环境) 灵活性 支持自定义数据类型,可灵活扩展消息结构,适应复杂分布式场景 消息类型固定为 MAVLink 标准消息,扩展需修改协议或自定义消息 实时性 原生支持实时性配置(通过 DDS QoS),适合低延迟场景 实时性依赖 ROS 调度,默认配置下实时性中等 适用场景 无人机集群协同、多传感器分布式融合、跨平台设备互联 单无人机与 ROS 系统的通信(如地面站控制、数据日志、任务规划) 优点 1. 分布式架构,支持多设备协同; 2. 轻量级客户端适合嵌入式; 3. 可自定义消息,灵活性高; 4. 强实时性与 QoS 保障 1. 无缝集成 ROS 生态,开发便捷; 2. 成熟稳定,支持 MAVLink 全功能(控制、参数、日志等); 3. 社区活跃,问题易解决 缺点 1. 学习成本高(需理解 DDS 概念),目前资料相比于mavros少很多 ; 2. 与 ROS 集成需额外适配; 3. 对单设备简单通信场景略显复杂 1. 依赖 ROS,非 ROS 环境下使用不便,但非ROS环境也有其他基于mavlink的库可以使用 ; 2. 分布式多设备协同能力弱; 3. 资源占用较高,不适合极简嵌入式 下载源码: git clone -b v2.4.3 https://github.com/eProsima/Micro-XRCE-DDS-Agent.git 编译: cd Micro-XRCE-DDS-Agent mkdir build cd build cmake .. make # make 的时候还会下载代码,跟个人网速有有关,大概要10-20分钟 安装: sudo make install sudo ldconfig /usr/local/lib/ # 更新动态链接器的缓存 3. 编译 cd ~/PX4_Firmware make px4_sitl gz_x500 # 这步可能有点慢 出现这个表示编译成功 错误 :如果在虚拟机中可能遇到下面错误,这是由于在虚拟机设置中开启了 3D 图形加速,导致系统的 OpenGL 版本降低。 参考这个 Issue 中的解决方法,降低仿真使用的渲染引擎的版本 修改处大概在 73 行(PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/px4-rc.simulator): sed -i 's/${gz_command} ${gz_sub_command} -g &/${gz_command} ${gz_sub_command} -g --render-engine ogre \&/' ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/px4-rc.simulator 错误 :如果编译过程中出现类似下面错误,应该是 gz_bridge 启动超时 INFO [gz_bridge] world: default, model name: x500_0, simulation model: x500 ERROR [gz_bridge] Service call timed out ERROR [gz_bridge] Task start failed (-1) ERROR [init] gz_bridge failed to start ERROR [px4] Startup script returned with return value: 256 参考下面链接中给出的解决方法 make px4_sitl gz_x500出错 - 哔哩哔哩 然后,再重新编译 4. 通信 打开一个终端,启动 MicroXRCEAgent: MicroXRCEAgent udp4 -p 8888 打开另一个终端,启动仿真: cd ~/PX4_Firmware make px4_sitl gz_x500 都启动后,可以看到通信成功 5. offboard 测试 创建工作空间: mkdir -p ~/ros2_ws/src 下载源码: cd ~/ros2_ws/src git clone https://github.com/PX4/px4_msgs.git git clone https://github.com/PX4/px4_ros_com.git 编译: cd ~/ros2_ws colcon build 更新环境: echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc source ~/.bashrc #使环境生效 测试: 先启动 QGC 地面站,然后执行下面命令,不然有可能无法起飞 终端一,启动 MicroXRCEAgent: MicroXRCEAgent udp4 -p 8888 终端二,启动仿真: cd ~/PX4_Firmware make px4_sitl gz_x500 终端三,启动官方 offboard 案例(上升5米): ros2 run px4_ros_com offboard_control 注:如果过了一段时间,无人机无法 offboard 起飞,程序都正常启动,这时可以尝试下面命令 cd ~/ros2_ws/src rm -f ./px4_msgs/msg/*.msg cp ~/PX4_Firmware/msg/*.msg ./px4_msgs/msg/ # rm -f ./px4_msgs/srv/*.srv # v1.15.0 之后 # cp ~/PX4_Firmware/srv/*.srv ./px4_msgs/srv/ # v1.15.0 之后 # cp ~/PX4_Firmware/msg/versioned/*.msg ./px4_msgs/msg/ # v1.16.0 之后 然后重新编译 source /opt/ros/humble/setup.bash cd ~/ros2_ws colcon build 编译成功后,记得 source 一下,再重新offboard测试 到这 PX4 无人机基本仿真环境就搭建完成了,大家可以基于此来拓展自己的仿真。 参考 PX4 ROS 2 User Guide PX4 documentation uXRCE-DDS PX4 Ubuntu Development Environment a-new-era-for-gazebo Unable to ros2 topic echo specific topics - PX4 Autopilot - Discussion Forum 如有其他问题,或者发现文章有错误,请在评论区留言 Keep learning! 1 个帖子 - 1 位参与者 阅读完整话题
Ubuntu 安装 ROS2 ROS简介: ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。在某些方面ROS相当于一种“机器人框架(robot frameworks)(来自ROSwiki)。 **ROS2与ROS1的区别: **ROS2作为ROS1的继任者,在保持ROS核心功能的基础上进行了诸多改进和优化。相较于ROS1,ROS2取消了ROS1中的Master中央节点,实现了节点的分布式发现、发布/订阅、请求/响应通讯。ROS1使用自定义的中间件(roscore),而ROS2使用DDS中间件。ROS1使用catkin作为构建系统,而ROS2使用colcon作为构建系统 ROS发展史 安装 ROS1 可以看下面教程 ubuntu安装ROS(1) —— 以 ROS1 melodic 为例(最新、超详细图文教程,包含配置rosdep) 1. ROS2安装 准备 建议准备一个干净、换好源的 ubuntu 20.04 以上的虚拟机(建议[清华源]( ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror )) 查看ubuntu 版本 lsb_release -a 根据自己的 ubuntu 的版本选择 ROS2 版本 (我的是 ubuntu 22.04 所以对应ROS2版本为 humble ) ROS2版本 生命周期 Ubuntu版本 语言依赖 Foxy Fitzroy 2020.5-2023.5 Ubuntu Focal (20.04) C++ >=14、Python >= 3.7 Galactic Geochelone 2021.5-2022.11 Ubuntu Focal (20.04) C++ >=17、Python >=3.6 Humble Hawksbill 2022.5-2027.5 Ubuntu Jammy (22.04)、Ubuntu Focal (20.04)(只能源码安装) C++ >=17 、Python >=3.6 Iron Irwini 2023.5-2024.11 Ubuntu Jammy (22.04) C++ >=17 、Python >= 3.8 Jazzy Jalisco 2024.5-2029.5 Ubuntu Noble (24.04) C++ >=17 、Python >= 3.8 这里只列出了 Foxy 之后的Ubuntu版本支持,更多版本与细节可以看 官方说明 。 方法一(推荐)使用小鱼ROS一键安装 要使用小鱼的一键安装系列,需要下载一个鱼香大佬写的脚本,然后执行这个脚本,进行ROS的安装与环境的配置(此脚本一直在更新,可能会跟示例截图有点区别,根据实际的序号来选择,除了 ROS 还可以安装很多工具,具体可以看 鱼香大佬的说明 ) 下载脚本并执行脚本 wget http://fishros.com/install -O fishros && . fishros 输入密码 然后就会看见选择安装界面,我们看界面可以看到小鱼的脚本还可以支持很多工具安装,这里我们选择 1 ROS安装 大家可以看到这里会显示出你当前的Linux发行版版本,而且他还支持arm平台(我在jetson nano试过,可以)。 让你选择是否按照他提供的源进行安装,因为我己经换了源了这里 选择 2,如果没换源可以选 1。 到这里就是 选择ROS版本 ,这里我选择 1 humble(ROS2) Desktop 版 (推荐)包含: ROS, RViz, demos, tutorials。base版仅包含:Communication libraries, message packages, command line tools.。不包含 GUI tools。(新手直接选桌面版) 这里 选 1 ,后面就进行安装了(大概几分钟) 显示这个表示ROS2安装完成 可以打开用户目录下的 .bashrc 文件**(它是隐藏文件)** ,可以在最后看到 ROS2环境 方法二 使用官方教程(Debian 包) 其实这跟小鱼的脚本本质上差不多,只是小鱼的脚本已经帮你把环境依赖、版本选择、网络问题都跟你封装、解决好了。 Ubuntu (Debian packages) — ROS 2 Documentation: Humble documentation 设置 locale 这是确保你的本地语言支持 UTF-8。 sudo apt update && sudo apt install locales 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 设置源 启用Universe源 sudo apt install software-properties-common sudo add-apt-repository universe 注:红框这里是一个提示,直接按回车键就行 添加 ROS 2 GPG key sudo apt update && sudo apt install curl gnupg2 -y sudo curl -sSL https://gitee.com/tyx6/rosdistro/raw/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 为软件源添加 ROS2 repository 根据自己需要选一个就行 官方源: echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null 清华源: echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null 安装 Desktop 版 (推荐)包含: ROS, RViz, demos, tutorials。(新手直接选桌面版) base版仅包含:Communication libraries, message packages, command line tools.。不包含 GUI tools。 sudo apt update && sudo apt upgrade sudo apt install ros-humble-desktop 设置环境 echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc source ~/.bashrc #使环境生效 可以打开用户目录下的 .bashrc 文件,可以在最后看到 ROS环境 2. 配置rosdep(可选) 在使用许多 ROS 工具之前,需要初始化 rosdep ,有些功能包源码编译需要 rosdep 来安装这些系统依赖项,不配置也不影响ros使用,所以后面需要时再来配置也可以。 方法一(推荐)使用小鱼ROS一键安装 下载脚本并执行脚本 (因为每次执行这个脚本后,都会自动删除脚本,所以需要重新执行) wget http://fishros.com/install -O fishros && . fishros 这里我们 选择 3 配置rosdep 安装好后显示如下 在终端输入 rosdepc update 进行配置,显示这个表示配置成功 (注:使用小鱼ROS一键安装rosdep,在后续使用时请将rosdep替换为rosdepc使用) 方法二 通过修改文件 这个rosdep 请求的是国外的服务器,所以会被墙。有些是通过代理的方式,但这个不稳定,因为时间久了要么代理跑路了,要么被墙了。它需要的文件都官方都放在 github 上的,那么我们可以改url地址即可。 安装依赖 sudo apt install python3-rosdep 自动修改 使用脚本 wget https://gitee.com/tyx6/mytools/raw/main/ros/Mrosdep.py sudo python3 Mrosdep.py 注:如果脚本执行失败可以手动修改,或者在评论区提问 手动修改 修改4个文件,都是将地址 https://raw.githubusercontent.com/ 改为 https://gitee.com/tyx6/rosdistro/raw/master/ sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py # 在大概64行 修改 DEFAULT_SOURCES_LIST_URL = 'https://gitee.com/tyx6/mytools/raw/main/ros/20-default.list' sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py # 大概在68行的地址 sudo gedit /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py # 大概在34行的地址 sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py # 大概在36行的地址 修改sources_list.py文件 修改init.py文件 修改gbpdistro_support.py文件 修改rep3.py文件 开始配置 sudo rosdep init rosdep update 3. 测试 在一个终端中,输入命令: ros2 run demo_nodes_cpp talker 在另一个终端中,输入命令: ros2 run demo_nodes_py listener 运行结果如下图所示: 参考 ROS Documentation Ubuntu (Debian packages) — ROS 2 Documentation: Humble documentation rosdep是什么?怎么用 | 鱼香ROS (fishros.org.cn) 小鱼的一键安装系列 | 鱼香ROS (fishros.org.cn) Ubuntu 22.04 LTS安装ROS2 (ros-humble-desktop)-CSDN博客 如有其他问题,或者发现文章有错误,请在评论区留言 Keep learning! 1 个帖子 - 1 位参与者 阅读完整话题