gazebo仿真

news/2024/11/8 4:34:41/

常用的仿真器

nvidia 场景非常真实,收费
在这里插入图片描述
物理仿真比较好,渲染差一点在这里插入图片描述
为什么用仿真器,因为比较穷

gazebo与ros集成的比较好,有很多插件,机器人开发
刚体仿真器

ode

在这里插入图片描述

在这里插入图片描述

安装gazebo

在这里插入图片描述ros自带
机器人算法开发与验证
在这里插入图片描述
打开gazebo在这里插入图片描述gazbon界面

在这里插入图片描述红色的是x轴,蓝色的是z轴,绿色的是y轴

在这里插入图片描述
在这里插入图片描述物理引擎,重力,碰撞
在这里插入图片描述光照
在这里插入图片描述在这里插入图片描述仿真器每秒一千次计算动力学特性

模型可以保存为xml格式

可以自己创建模型
在这里插入图片描述在这里插入图片描述模型目录

在这里插入图片描述
可以网上下载模型
在这里插入图片描述
场景在这里插入图片描述机器人
在这里插入图片描述在这里插入图片描述
控制机器人
在这里插入图片描述ros和gazebo如何进行交互得?

在 ROS(Robot Operating System)和 Gazebo 之间进行交互,可以通过以下方法实现:

  1. 在 Gazebo 中加载 ROS 插件:使用 Gazebo 提供的插件系统,加载 ROS 插件,将 Gazebo 和 ROS 进行连接。ROS 插件通常使用 ROS 提供的 gazebo_ros_pkgs 包提供,可以通过 apt-get 或源码安装。

  2. 在 ROS 中加载 Gazebo 插件:使用 ROS 提供的插件系统,加载 Gazebo 插件,将 ROS 和 Gazebo 进行连接。Gazebo 插件通常使用 Gazebo 提供的 gazebo_plugins 插件提供,可以通过 apt-get 或源码安装。

  3. 在 ROS 中发布控制指令:通过在 ROS 中发布控制指令,来控制 Gazebo 中的模型。可以使用 ROS 提供的消息类型,例如 geometry_msgs/Twist,也可以自定义消息类型。

  4. 在 Gazebo 中接收控制指令:通过在 Gazebo 中加载 ROS 插件,接收 ROS 中发布的控制指令,并将其转换为 Gazebo 中的模型控制指令。可以使用 Gazebo 提供的 ros::Subscriber 类和 gazebo::physics::Model 类,分别订阅控制指令和控制模型。

  5. 在 Gazebo 中发布传感器数据:通过在 Gazebo 中模拟传感器并将传感器数据发布到 ROS 中,来模拟真实环境中的传感器数据。可以使用 Gazebo 提供的传感器模型和 ROS 提供的消息类型,例如 sensor_msgs/Imagesensor_msgs/LaserScan,也可以自定义消息类型。

  6. 在 ROS 中接收传感器数据:通过在 ROS 中加载 Gazebo 插件,接收 Gazebo 中模拟的传感器数据,并进行处理。可以使用 ROS 提供的消息类型,例如 sensor_msgs/Imagesensor_msgs/LaserScan,也可以自定义消息类型。

需要注意的是,ROS 和 Gazebo 之间的交互是异步的,即 ROS 发布的消息和 Gazebo 接收的消息之间可能存在延迟。为了保证交互的实时性和准确性,需要根据具体的需求和应用场景进行相应的配置和调整。

以上是 ROS 和 Gazebo 进行交互的基本方法。在实际应用中,还需要根据具体的需求和应用场景进行相应的配置和调整。可以参考 ROS 和 Gazebo 的官方文档和相关教程,了解更详细的信息。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
可视化传感器信息在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述gazebo可以向外发布一些传感器数据,而且可以接受一些控制命令

blender

在这里插入图片描述贴图
编辑模式
在这里插入图片描述在这里插入图片描述

meshlab是什么

MeshLab是一款免费的开源3D网格处理软件,可以用于处理、编辑和修复3D网格模型。它支持多种3D文件格式,包括STL、PLY、OBJ、OFF、3DS、VRML、U3D、X3D和COLLADA等。MeshLab提供了丰富的3D模型处理工具,可以进行网格滤波、重构、切割、平滑、修复、测量、纹理映射等操作,还可以进行3D模型的可视化、分析和比较等。

MeshLab的功能非常强大,适用于各种3D网格模型的处理和编辑,例如数字造型、计算机辅助设计、计算机图形学、虚拟现实、游戏开发等领域。MeshLab还提供了许多插件和扩展程序,可以进一步拓展其功能和应用范围。

MeshLab的界面简洁、易用,支持多语言,适用于不同操作系统,例如Windows、Mac和Linux等。MeshLab是一个强大的3D网格处理工具,对于3D模型的处理和编辑具有非常重要的作用。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
grzebo是ros的一个节点,通过加载插件与ros进行交互

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
更新频率在这里插入图片描述在这里插入图片描述

TurtleBot3

https://blog.csdn.net/zbw1185/article/details/121151640
里面的教程文档特别多
在这里插入图片描述

如何安装开发环境

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
建图 slam 导航

在这里插入图片描述在这里插入图片描述控制机器人的运动
在这里插入图片描述

import rospy
from geometry_msgs.msg import Twist
rospy.init_node("vel_test")
pub = rospy.Publisher("/cmd_vel",Twist,queue_size = 5)
cmd = Twist()
cmd.Linear.x = 0.1
while not rospy.is_shutdown():pub.publish(cmd)rospy.sleep(0.1)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述小车慢慢前进
slam建图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述保存地图
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
如何通过程序实现自主导航

在这里插入图片描述
启动导航
在这里插入图片描述
在这里插入图片描述

import rospy
import actionlib
from move_base_msgs.msg import MoveBaseAction,MoveBaseGoal
rospy.init_node('turtlebot_nav')
client = actionlib.SimpleActionClient("move_base",MoveBaseAction)
client.wait_for_server()
move_goal = MoveBaseGoal()
move_goal.target_pose.pose.position.x = 1.4781
move_goal.target_pose.pose.position.y= -0,4752
move_goal.target_pose.pose.orientation.w = 1
move_goal.target_pose.header.framp_id = 'map'
client.send_goal(move_goal)
client.wait_for_result()

在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述记录鼠标点的坐标

在这里插入图片描述修改x,y
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

仿真器做机械臂开发

在这里插入图片描述
从github上下载软件包

在这里插入图片描述在这里插入图片描述

在这里插入图片描述编译
在这里插入图片描述
https://blog.csdn.net/sinat_16643223/article/details/113935412

启动仿真器

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述同步场景

在这里插入图片描述在这里插入图片描述


http://www.ppmy.cn/news/64097.html

相关文章

【EKF】卡尔曼滤波原理

前言 本篇是最近在学习云台以及姿态融合时,想学习一下卡尔曼滤波的原理,基于 DR_CAN 老师的卡尔曼滤波的视频做的笔记,基本上是按照 DR_CAN 老师的思路自己推导计算了一遍,推荐还是看一下原视频,讲解得很不错&#xf…

代码随想录算法训练营第三十四天 | 加油站题、左右贪心

1005. K次取反后最大化的数组和 文档讲解:代码随想录 (programmercarl.com) 视频讲解:贪心算法,这不就是常识?还能叫贪心?LeetCode:1005.K次取反后最大化的数组和_哔哩哔哩_bilibili 状态:能做出…

C++语言练习题位运算

位运算(01)基础 位运算(02)从一个 16 位的单元中取出某几位 题目描述 从一个 16 位的单元中取出某几位(即该几位保留原值,其余位为 0. 使用 value 存放该 16 位的数,n1 为欲取出的起始位,n2 为欲取出的结束位。&#xff…

凌恩生物文献分享|南农大胡锋教授团队揭示苯并[a]芘胁迫影响蚯蚓肠道病毒组生态适应策略机制

蚯蚓被誉为“土壤生态系统工程师”,对于土壤结构改良、有机质分解、土壤污染修复具有重要意义,同时蚯蚓也被作为评估污染物生态风险的灵敏指示者。蚯蚓肠道微生物对于蚯蚓生态功能的发挥至关重要,为了充分利用蚯蚓的生态和生物技术效益&#…

【自学网络安全】从零开始学习网络渗透的核心知识点,助你入门宝典

前言 上周旁听了一个大学学长组织的线上网络安全交流会,里边不乏充斥着各位行业大牛,讲的内容确实精彩,可能对于网络安全经验5年的人来说,是受益匪浅,欢迎程度极高,恨不得跳出屏幕来表示赞同,毕…

JVM-字节码详解

介绍 ​ 在cpu层面看来,计算机中所有的操作都是一个个指令的运行汇集而成的,java是高级语言,只有人类才能理解其逻辑,计算机是无法识别的,所以java代码必须要先编译成字节码文件,jvm才能正确识别代码转换后…

ESP32学习笔记19-I2C

21.IIC 参考文章:ESP32 的 I2C 原理 & 应用入门_esp32 i2c_25March的博客-CSDN博客 21.1概述 ESP32 有2个 I2C 控制器(也称为端口),负责处理在 I2C 总线上的通信。每个控制器都可以设置为主机或从机 所选择的频率越高,需要的上拉电阻越小(但是不要小于 1 K 欧姆)。…

【牛客刷题专栏】0x27:JZ29 顺时针打印矩阵(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录 前言问…