机器人学导论实验1—CoppeliaSim 平台介绍及初步使用BJTU

1. 实验内容分析

对实验内容的理解及关键点:

理解这个实验的关键点在于理解如何使用CoppeliaSimMATLAB来控制和操作机器人。需要熟悉这两个工具的基本操作,例如如何加载场景、如何修改机器人参数、如何使用MATLAB客户端程序来控制机器人等。此外,还需要理解机器人的基本运动原理,例如,改变车轮的速度会如何影响机器人的运动。这些知识和技能将对我们在机器人技术领域的进一步学习和研究有很大的帮助。

任务一及任务二的实验思路:

任务一:加载场景、修改机器人参数

  1. 首先,需要加载预设的场景文件。这可以通过菜单栏的File–> Open Scene…选项来完成,或者直接双击场景文件。
  2. 加载场景后,需要点击开始按钮(场景视图上方的播放按钮)来启动场景。
  3. 接下来,需要展开场景层次中的机器人模型,双击Bob_leftMotor的图标来打开joint property对话框。
  4. 在joint property对话框中,点击Show dynamic parameters来打开动力学参数对话框。
  5. 在动力学参数对话框中,更改选定电机的Target velocity(目标速度)。将其设置为90度/秒,这样机器人就会开始移动。
  6. 最后,对机器人的另一个电机Bob_rightMotor执行同样的操作,然后按下停止按钮。

任务二:利用MATLAB客户端程序实现对机器人的控制

  1. 首先,需要启动CoppeliaSim并加载场景文件。
  2. 然后,需要启动MATLAB,打开测试程序(test.m),并设置断点,按F10单步执行程序,观察每一步执行后场景的变化。
  3. 在程序的循环部分,添加代码向机器人发送不同的命令。可以添加一行代码bob_setWheelSpeeds(connection , 10, 10)将左右车轮速度设置为10 rad/s。
  4. 如果程序运行没有报错,并且CoppeliaSim成功执行仿真,那么这个实验就完成了。

2. 实验过程分析

  1. 机器人的运动:通过观察机器人在模拟过程中的运动,我们可以了解到机器人的运动状态,包括速度、方向等。如果机器人能够按照预期的路径和速度进行运动,那么说明我们对机器人的控制是成功的。
  2. 地图和路径的变化:通过观察地图和路径的变化,我们可以了解到机器人对环境的认知。如果地图和路径能够准确地反映出环境的实际情况,那么说明我们的环境感知和地图构建是成功的。
  3. 机器人的参数的变化:通过观察机器人的参数的变化,我们可以了解到机器人的内部状态。例如,我们可以通过观察轮速、编码器值、位置和方向的变化,来了解机器人的运动状态和位置状态。
  4. 全局地图的显示:全局地图显示了机器人的当前环境,包括地图段和路径段。如果全局地图能够准确地反映出环境的实际情况,那么说明我们的环境感知和地图构建是成功的。
  5. 目标位置的显示:目标位置显示了机器人的预期位置和方向。如果机器人能够按照预期的路径和速度进行运动,那么说明我们对机器人的控制是成功的。

3. 实验结果分析

3.1 加载场景、修改机器人参数

加载场景文件

修改Bob_leftMotor电机参数

修改Bob_ right Motor电机参数

3.2 利用 MATLAB 客户端程序实现对机器人的控制

设置断点,按F10单步执行程序,观察每一步执行后场景的变化。

可以看到目标位置在每一步模拟中的显示。目标位置显示了机器人的预期位置和方向

在循环中添加一行代码,将左右车轮速度设置为10 rad/s

全局地图

运行截图

实验结果分析:

     通过观察机器人的参数的变化,我了解到机器人的内部状态。通过观察轮速、编码器值、位置和方向的变化,了解到了机器人的运动状态和位置状态。

4. 遇到的问题和心得

遇到的问题

  1. 在修改机器人参数,更改电机速度的时候不能够点击对话框按钮,最后发现是因为程序正在执行中不能够修改参数,关闭程序后,重新点击对话框按钮就可以设置参数了。
  2. 不理解test.m中的代码作用,通过单步执行,可以实时观察到地图场景以及机器人运行路线,方向。对代码有了更加清晰的认识和理解。

实验心得

        通过这个实验我理解了机器人运动的基本原理:通过控制机器人的轮速,我可以观察到改变轮速会如何影响机器人的运动,从而理解机器人运动的基本原理。

        熟悉了机器人模拟器的操作:通过加载场景、修改机器人参数、添加地图和路径段等操作。掌握了MATLAB和CoppeliaSim的使用:通过编写和执行MATLAB代码来控制CoppeliaSim中的机器人,掌握了如何使用MATLAB和CoppeliaSim来进行机器人仿真。

        我不仅学会了这些操作和机器人运动背后的原理也提高了问题的解决能力:在实验过程中,可能会遇到各种问题,如代码错误、模拟器崩溃等,都会一直锻炼着我的能力,让我直面困难,勇于实践。

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

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

相关文章

Docker 部署 Prometheus 实现一个极简的 QPS 监控

背景 : Prometheus 是近年来最流行的开源监控框架, 其功能强大且易于使用, 拥有各种主流后端语言(Java/Go/Python/Node.js等)与各种场景(如web handler/ k8s/Nginx/MySQL等)的客户端, 并自带图形化显示页面。分享一个快速入门Prometheus 的教程, 实现一个极简的, 后端开发需要特…

Nginx-基础-基础配置-Location

Location 参数匹配模式 参数匹配方式匹配模式说明注意事项精准匹配普通字符串匹配用于标准uri前,要求请求字符串与uri精准匹配,成功则立即处理,nginx停止搜索其他匹配。~正则匹配正则表达式匹配用于正则uri,表示uri包含正则表达…

使用 Docker 轻松部署 Spring Boot 应用

当今软件开发领域,Docker 和 Spring Boot 的组合已成为开发和部署应用程序的黄金标准。在这篇博客中,我们将详细探讨如何将 Spring Boot 应用容器化并使用 Docker 进行部署,确保你的部署过程既高效又可靠。 引言 Docker 提供了一个标准化的…

基于SSM的理发店会员管理系统的设计和实现(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的理发店会员管理系统的设计和实现(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&#xff0…

Docker安装达梦数据库

1.确保已安装Docker 可参考:Linux安装Docker-CSDN博客 2.上传dm镜像并导入安装包 可以从:产品下载 | 达梦数据库下载dm镜像,如下图: docker load -i dm8_20230808.tar 3.导入后查看镜像 docker images 4.启动容器 docker run …

图的概念、性质和存储与简单遍历

前置知识:树的基本概念及性质 为了保证学习效果,请保证已经掌握前置知识之后,再来学习本章节!如果在阅读中遇到困难,也可以回到前面章节查阅。 学习目标 掌握图的基本概念掌握图的一些性质 图的概念 基本概念 图 (…

Pytorch如何计算网络参数

方法一. 利用pytorch自身 PyTorch是一个流行的深度学习框架,它允许研究人员和开发者快速构建和训练神经网络。计算一个PyTorch网络的参数量通常涉及两个步骤:确定网络中每个层的参数数量,并将它们加起来得到总数。 以下是在PyTorch中计算网…

如何在 CloudFlare 里屏蔽/拦截某个 IP 或者 IP 地址段

最近除了接的 CloudFlare 代配置订单基本很少折腾自己的 CloudFlare 配置了,今天给大家简单的讲解一下如何在 CloudFlare 里屏蔽/拦截 IP 地址和 IP 地址段,虽然明月一直都很反感针对 IP 的屏蔽拦截,但不得不说有时候还是很有必要的。并且,既然可以拦截屏蔽 IP 自然也可以但…

鸿蒙内核源码分析(VFS篇) | 文件系统和谐共处的基础

基本概念 | 官方定义 VFS(Virtual File System)是文件系统的虚拟层,它不是一个实际的文件系统,而是一个异构文件系统之上的软件粘合层,为用户提供统一的类Unix文件操作接口。由于不同类型的文件系统接口不统一&#x…

Flink HA模式下JobManager切换时发送告警

资源&版本信息 Flink版本1.14.6 运行平台:K8s HA使用ZK(使用K8s的ETC应该是一个道理) 详解Flink HA原理 Flink启动时会创建HighAvailabilityServices提供HA和相关基础服务,其中包括leaderRetrievalService和LeaderElecti…

搜索引擎的设计与实现(二)

目录 3 搜索引擎的基本原理 3.1搜索引擎的基本组成及其功能 l.搜索器 (Crawler) 2.索引器(Indexer) 3.检索器(Searcher) 4.用户接口(UserInterface) 3.2搜索引擎的详细工作流程 4 系统分析与设计 4.1系统分析 4.2系统概要设计 4.2系统实现目标 前面内容请移步 搜索引…

Rust 语言不支持 goto 语句

一、Rust 不提供 goto 语句 Rust 语言并没有提供 goto 语句。goto 语句在很多现代编程语言中已经不再被推荐使用,因为它可能导致代码的流程变得难以跟踪和理解,特别是在复杂的程序中。Rust 语言设计者选择了更加结构化和可预测的控制流语句,…

关于C++多态的复习总结

多态 简介: 面向对象的三大特性之一,多态顾名思义即具有多种形态,即去执行某个行为时,当不同的对象去执行时会产生不同的状态 构成多态的条件 条件一 必须通过基类(父类)的指针或者引用调用虚函数(函数…

宁夏银川市起名专家的老师颜廷利:死神(死亡)并不可怕,可怕的是...

在中国优秀传统文化之中,汉语‘巳’字与‘四’同音,在阿拉伯数字里面,通常用‘4’来表示; 湖南长沙、四川成都、重庆、宁夏银川最靠谱最厉害的起名大师的老师颜廷利教授指出,作为汉语‘九’字,倘若是换一个…

FreeRTOS中断管理

FreeRTOS中断管理 基于STM32_stm32 freertos 按键中断-CSDN博客 更加详情请看以上链接↑ 中断优先级 任何中断的优先级都大于任务! 在我们的操作系统,中断同样是具有优先级的,并且我们也可以设置它的优先级,但是他的优先 级并不是从 0~15 ,默认情况下它是从 5~15 ,…

[ACTF新生赛2020]SoulLike

没见过的错误: ida /ctg目录下的hexrays.cfg文件中的MAX_FUNCSIZE64 改为 MAX_FUNCSIZE1024 然后就是一堆数据 反正就是12个字符 from pwn import * flag"actf{" k0 for n in range(12):for i in range(33,127):pprocess("./SoulLike")_flag…

94.二叉树的中序遍历

刷算法题: 第一遍:1.看5分钟,没思路看题解 2.通过题解改进自己的解法,并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步,下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

Python爬虫入门:网络世界的宝藏猎人

今天阿佑将带你踏上Python的肩膀,成为一名网络世界的宝藏猎人! 文章目录 1. 引言1.1 简述Python在爬虫领域的地位1.2 阐明学习网络基础对爬虫的重要性 2. 背景介绍2.1 Python语言的流行与适用场景2.2 网络通信基础概念及其在数据抓取中的角色 3. Python基…

今日总结2024/5/13

今日学习了01背包求具体方案的方法 Acwing.12 背包问题求具体方案 由于背包是从小到大枚举物品,只能从后往前判断是从哪个状态递推过来的,而该题要求按字典序顺序输出字典序最小的最优方案 因此要将物品从大到小枚举,判断时从小到大判断是…

在Windows上有哪些好用的网络抓包工具?

2024年5月12日,周日上午 在Windows上,有多种好用的网络抓包工具,以下是一些常见的选项: Wireshark: Wireshark 是一款功能强大的网络协议分析工具,它可以捕获并分析计算机网络上的数据包。它支持广泛的协议…