实现在Unity3D中仿真汽车,而且还能使用ros2控制


文章目录

    • 前言(Introduction)
    • 搭建开发环境(Setup Development Environment)
    • 在window中安装Unity(Install Unity in window)
    • 创建Docker容器,并安装相关软件(Create Docker containers and install related software)
    • 运行测试(Run test)

前言(Introduction)

使用gazebo仿真可以进行机器人与环境交互的仿真,但是仿真环境搭建起来比较复杂,尤其是对于初学者来说,并且难以构建复杂的仿真环境。因此,使用Unity搭建仿真环境会更加简单,并且可以构建更加复杂的仿真环境。

反正我用gazebo有时候挺抓狂的,各种报错😅。

参考:

  • docker-ros2-unity-tcp-endpoint
  • Robotics-Nav2-SLAM-Example
  • unity坐赛车游戏,简单三分钟了解一下
  • How to Setup Unity and ROS2 in less than 5 minutes!
  • ros2-for-unity
  • moveit2_yolobb_ws
  • Unity-Robotics-Hub

在这里插入图片描述

实现在unity3d中仿真小车,还能用机器人开发框架ros2控制喔

code:https://github.com/laoxue888/DockerRos2UnityCar/tree/main

搭建开发环境(Setup Development Environment)

  • Unity:2022
  • Ubuntu:24.04
  • Ros2:jazzy

在window中安装Unity(Install Unity in window)

先安装Unityhuyb,然后再安装Unity

https://unity.cn/releases

创建Docker容器,并安装相关软件(Create Docker containers and install related software)

❇️创建Docker容器

docker run -it -p 6080:80 -p 10000:10000 -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=host.docker.internal:0.0 --gpus=all --name=Ros2UnityCar docker.1ms.run/ubuntu:24.04  /bin/bash

😂【可选】介绍另外一种方法:借助Docker的网页桌面功能,可以不用安装vncserver。docker-webtop

# 可选
docker run -d --name Ros2UnityCar --security-opt seccomp=unconfined --gpus=all -e PUID=1000 -e PGID=1000 -e TZ="Asia/Shanghai" -p 3000:3000 -p 3001:3001 -p 10000:10000 lscr.io/linuxserver/webtop:ubuntu-xfce # ubuntu:24.04 科学上网下载速度更快# 查看Ubuntu版本的命令
lsb_release -a

❇️安装相关软件

# 按照鱼香ros一键安装ros2
apt-get update
apt install wget -y
wget http://fishros.com/install -O fishros && bash fishros# 打开新的终端,安装gz
sudo apt-get update
sudo apt-get install curl lsb-release gnupg -y
sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
sudo apt-get update -y
sudo apt-get install gz-harmonic -y# 安装远程显示服务程序
apt-get install x11-xserver-utils
apt install libxcb* -y
apt-get install x11-apps -y# 安装moveit
apt install ros-${ROS_DISTRO}-moveit* -y# 安装ros2的控制功能包
sudo apt install ros-${ROS_DISTRO}-controller-manager -y
sudo apt install ros-${ROS_DISTRO}-joint-trajectory-controller -y
sudo apt install ros-${ROS_DISTRO}-joint-state-broadcaster -y
sudo apt install ros-${ROS_DISTRO}-diff-drive-controller -y# 安装其他功能包
# apt install ros-${ROS_DISTRO}-ros-gz -y
apt-get install ros-${ROS_DISTRO}-joint-state-publisher-gui -y
apt install ros-${ROS_DISTRO}-moveit-ros-planning-interface -y
# apt install ros-jazzy-gz-ros2-control 这个很重要 https://github.com/ros-controls/gz_ros2_control
apt install ros-${ROS_DISTRO}-gz-ros2-control -y# 用于调试,可不安装
apt-get install gdb -y# 安装python第三方库
apt install python3-pip -y
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyside6 xacro ultralytics NodeGraphQt --break-system-packages
pip install -U colcon-common-extensions vcstool --break-system-packagespip install pygame --break-system-packages

运行测试(Run test)

❇️打开Unity项目

在这里插入图片描述

在这里插入图片描述

❇️打开ROS2项目

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为配置篇-BGP实验

BGP 一、简述二、常用命令总结三、实验 一、简述 IBGP 水平分割:从一个 IBGP 对等体学到的路由,不会再通告给其他的 IBGP 对等体。在一个 AS 内部,路由器之间通过 IBGP 交换路由信息。如果没有水平分割机制,当多个路由器之间形成…

Python视频标签工具详解:基于wxPython和FFmpeg的实现

在当今数字媒体时代,视频内容的管理和标记变得越来越重要。无论是研究人员需要对实验视频进行时间点标记,教育工作者需要对教学视频添加注释,还是个人用户希望对家庭视频进行分类整理,一个高效的视频标签工具都是不可或缺的。本文…

国产三维CAD「皇冠CAD」在汽车零部件领域建模教程:刹车片

本教程深度融合三维皇冠CAD(CrownCAD)的MBD(Model-Based Definition)设计理念,通过参数化建模、智能约束管理、动态装配验证等功能,实现数据驱动设计,精准解决了汽车制动系统中精密制动组件的设…

C#从入门到精通(3)

目录 第九章 窗体 (1)From窗体 (2)MDI窗体 (3)继承窗体 第十章 控件 (1)控件常用操作 (2)Label控件 (3)Button控件 &…

关于跨域与.NET的处理方案

在 Web 开发里,浏览器的同源策略是一项关键的安全机制。同源指的是两个 URL 的协议、域名和端口都相同。当浏览器从一个源(域名、协议、端口)的网页去请求另一个源的资源时,就会产生跨域问题。例如,从 http://www.exam…

react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析--react18

React 18 是一次重大的版本升级(发布于2022年),引入了并发渲染(Concurrent Rendering) 和一系列新特性,旨在提升应用性能、用户体验和开发灵活性。 一、核心新特性 并发模式(Concurrent Mode&a…

基于Spring Boot的平面设计课程在线学习平台系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

Scala-面向对象

Scala 包 基本语法 package 包名 Scala 包的三大作用(和 Java 一样) 区分相同名字的类 当类很多时,可以很好的管理类 控制访问范围 包的命名、说明、对象 包的命名 命名规则 只能包含数字、字母、下划线、小圆点.,但不能用数字…

Excel 使用技巧:excel 合并不同列内容; excel 将公式转化为文本

Excel 使用技巧 目录 Excel 使用技巧excel 合并不同列内容="A:"&C1&"、B:"&D1&"、C:"&E1&"、D:"&F1excel 将公式转化为文本右键选择行粘贴某一列均填入“提示词”单击拖动双击某一列均填入“1”清除1…

【数字化转型,企业应用上云】---持续集成能力重塑企业软件交付新范式

在数字化转型浪潮中,软件交付的速度与质量已成为企业核心竞争力的关键。如何高效管理从代码开发到生产上线的全流程,实现开发与运维的无缝协作?如何通过自动化手段减少人为失误、加速迭代周期?我们出的研发效能管理平台&#xff0…

OpenCV图像形态学:原理、操作与应用详解

一、引言 图像形态学(Image Morphology)是图像处理领域的一个重要分支,它基于集合论、格论、拓扑学和随机函数理论,主要用于分析和处理图像的几何结构。形态学操作通过特定的结构元素(Structuring Element)…

jenkins 参数化发布到服务器 publish over ssh、label、Parameterized publishing

前言 jenkins 参数化发布到服务器 jenkins可匹配标签通过一个字符串或者正则表达式来匹配jenkins 可通过参数配置发布到服务器,比如打包后,根据参数配置,只发布到某个服务器。 设置选项参数 新增选项参数,比如填入myParameter…

第十二章网络规划设计

文章目录 12-1考点分析12-2综合布线(历年高频考点)12-3网络设计与分析12-4网络结构与功能12-5广域网接入技术12-6网络故障诊断与排查章节总结 12-1考点分析 12-2综合布线(历年高频考点) 结构化布线系统 网络规划和设计是一个迭代和优化的过程。 ■ 结构化综合布线系统是基于…

Qt基本框架(1)

本篇主要介绍Qt的基本框架,并实现简单的按钮事件 本文部分ppt、视频截图原链接:[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1. Qt基本框架介绍 Qt基本框架主要分为两部分:Qt实例对象和Qt窗口。Qt实例对象负责初始化Qt运行时…

数据仓库项目启动与管理

数据仓库项目启动与管理 确定项目 评估项目就绪情况 项目就绪的三个条件 强力型高级业务管理发起人 对数据仓库解决方案的影响有先见之明是所在组织内有影响的领导者要求严格,但是又比较现实,会为其他成员提供强力支持 强制型业务动机 数据仓库系统和战略性业务动机紧密结合…

C 标准库 - `<ctype.h>`

C 标准库 - <ctype.h> 在C语言编程中&#xff0c;标准库函数 <ctype.h> 提供了一组用于检查字符类型、转换大小写以及其他字符处理的函数。这些函数对于字符处理和字符串操作至关重要&#xff0c;特别是在处理用户输入或文件内容时。以下是关于 <ctype.h> 标…

安装完 miniconda3 ,cmd无法执行 conda 命令

提示&#xff1a;安装 miniconda3 文章目录 前言一、安装二、安装完&#xff0c;cmd 无法执行 conda 前言 提示&#xff1a;版本 系统&#xff1a;win10 codna: miniconda3 安装完 miniconda3 &#xff0c;cmd无法执行 conda 命令 提示&#xff1a;以下是本篇文章正文内容&am…

RedisTemplate 的 6 个可配置序列化器属性对比

RedisTemplate 的 6 个可配置序列化器属性对比 RedisTemplate 提供了以下 6 个核心属性&#xff0c;用于分别配置键、值、哈希类型数据的序列化方式&#xff1a; 1. keySerializer 作用&#xff1a;定义 Redis 键的序列化方式。默认值&#xff1a;JdkSerializationRedisSeria…

设计模式之适配器模式(二):STL适配器

目录 1.背景 2.什么是 STL 适配器&#xff1f; 3.函数对象适配器 3.1.std::bind 3.2.std::not1 和 std::not2 3.3.std::mem_fn 4.容器适配器 4.1.std::stack(栈) 4.2.std::queue&#xff08;队列&#xff09; 4.3.std::priority_queue&#xff08;优先队列&#xff0…

LabVIEW故障诊断数据处理方法

在LabVIEW故障诊断系统中&#xff0c;数据处理直接决定诊断的准确性和效率。工业现场常面临噪声干扰、数据量大、实时性要求高等挑战&#xff0c;需针对性地选择处理方法。本文结合电机故障诊断、轴承损伤检测等典型案例&#xff0c;详解数据预处理、特征提取、模式识别三大核心…