机器人学导论实验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.hqwc.cn/news/696913.html

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

相关文章

【联合索引】最左匹配原则是什么?

什么是联合索引 联合索引(Composite Index)是一种索引类型,它由多个列组成。 MySQL的联合索引(也称为复合索引)是建立在多个字段上的索引。这种索引类型允许数据库在查询时同时考虑多个列的值,从而提高查询…

HCIP的学习(17)

BGP基础配置 使用直连接口IP地址来建立EBGP对等体关系 1、启动BGP协议 [r1]bgp 100 ----启动BGP协议,并且规定其AS号2、配置设备的RID数值,一般选择设备的loopback接口的IP地址 [r1-bgp]router-id 1.1.1.13、配置BGP对等体信息,包含了对等体…

【C++杂货铺】红黑树

目录 🌈前言🌈 📁 红黑树的概念 📁 红黑树的性质 📁 红黑树节点的定义 📁 红黑树的插入操作 📁 红黑树和AVL树的比较 📁 全代码展示 📁 总结 🌈前言…

如何判断海外住宅ip的好坏?

在海外IP代理中,住宅IP属于相对较好的资源,无论是用于工作、学习、还是娱乐,都能得到较好的使用效果。作为用户,该如何判断海外住宅IP的好坏呢? 稳定性与可靠性:海外住宅IP相比动态IP地址,通常具…

嵌入式学习-时钟树

时钟树 时钟分类 时钟树框图 LSI与LSE HSI、HSE与PLL 系统时钟的产生 AHB、APBx的时钟配置 相关寄存器 寄存器部分的细节内容请参考手册。 相关库函数

基于Springboot的实习生管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的实习生管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&a…

volatile详解、原理

文章目录 一、Volatile的定义和作用1.1 Volatile简介1.2 Volatile作用 二、并发编程中的三个问题:可见性、原子性、有序性二、Java内存模型(JMM)三、volatile变量的特性3.1 线程可见性3.2 禁止重排序禁止重排序原理禁止重排序举例 3.3 volati…

ONVIF系列一:ONVIF介绍

感谢博主OceanStar的学习笔记,ONVIF系列二和系列三中安装操作过程及代码实现参考了这位博主的博客。 ONVIF系列: ONVIF系列一:ONVIF介绍 ONVIF系列二:Ubuntu安装gSOAP、生成ONVIF代码框架 ONVIF系列三:ONVIF客户端实现…

2024 年中国大学生程序设计竞赛全国邀请赛(郑州)暨第六届CCPC河南省大学生程序 设计竞赛Problem L. Toxel 与 PCPC II

//sort bug下标 遍历dp. //没修负的bug肯定连续 #include<bits/stdc.h> using namespace std; #define int long long const int n1e611; int a,b,c[n],dp[n]; signed main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>a>>b;for(int i1;…

升级! 测试萌新Python学习之连通数据库Pymsql增删改及封装(四)

pymysql 数据库概述python对数据库的增删改查pymysql核心操作事务事务操作pymysql工具类封装每日复习ChatGPT的回答 数据库概述 分类 关系型数据库: 安全 如, mysql oracle SQLite…database tables 行列 非关系型数据库: 高效 如, redis mongoDB…数据存储结构多样 键值对…

本来还挺喜欢……

前阵子买了个天空星开发板&#xff0c;到手之后发觉不对劲。 之前我们玩玩开发板都是用的面包板的&#xff0c;就算是ESP那种比较宽的板子用两个面包板拼一下也勉强可以用。 但是天空星它的引脚是分为两组&#xff0c;每组有两排&#xff0c;如果我们还是直接使用面包板的话&a…

【MYSQL】一颗B+树可以保存多少条数据

引言 事万物都有自己的单元体系&#xff0c;若干个小单体组成一个个大的个体。就像拼乐高一样&#xff0c;可以自由组合。所以说&#xff0c;如果能熟悉最小单元&#xff0c;就意味着我们抓住了事物的本事&#xff0c;再复杂的问题也会迎刃而解。 存储单元 存储器范围比较大…