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

news2024/11/26 9:55:42

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.coloradmin.cn/o/1671514.html

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

相关文章

开源分布式爬虫管理平台:性能强悍!!【送源码】

简介 基于 Golang 的分布式爬虫管理平台,支持 Python、NodeJS、Go、Java、PHP 等多种编程语言以及多种爬虫框架。 谁适合使用 Crawlab? 网路爬虫工程师: 通过集成爬虫程序到 Crawlab,网路爬虫工程师可以聚焦于爬虫的核心解析逻辑&#xff0…

C语言学习【C语言基本数据类型二】

C语言学习【C语言基本数据类型二】 _Bool类型 C99标准添加了_Bool类型,用于表示布尔值,即逻辑值true和false,原则上仅占用1位存储空间; float、double和long double 记数法示例 C标准规定,float类型必须至少能表示…

2024CCPC郑州站超详细题解(含题面)ABFHJLM(河南全国邀请赛)

文章目录 前言A Once In My LifeB 扫雷 1F 优秀字符串H 随机栈J 排列与合数L Toxel 与 PCPC IIM 有效算法 前言 这是大一博主第一次参加xcpc比赛,虽然只取得了铜牌,但是收获满满,在了解了和别人的差距后会更加激励自己去学习,下面…

Linux修炼之路之权限

目录 引言 一:Linux中用户的分类 二:在Linux中的权限 1.权限的两种属性 1.人的属性 2.事物属性 -主要以文件属性为主 3.文件权限值的两种表示方式方法 2.更改文件访问者(拥有者,所属组,其他人)权限属性 3.更改文件的拥有…

vue3专栏项目 -- 四、前后端结合(下)

一、async 和 await 1、使用async 和 await 改造异步请求 在接触后端API以后就遇到了越来越多的异步请求,现在我们就使用async 和 await 改造异步请求。 async function是把返回内容包裹成个Promise返回Promise await 它在async function里面才起作用&#xff0…

【全开源】JAVA上门家政服务系统源码微信小程序+微信公众号+APP+H5

功能介绍 用户端:精准分类、支持家政、维修、万能服务、一口价、报价、线上、各类家政服务、优惠专区、师傅入驻、商家入驻、我的需求、补费明细、我的投诉 师傅端:接单池、消息通知、接单管理、今日订单、师傅入驻、我的钱包、实名认证 商家端&#…

【排序算法】之希尔排序

一、算法介绍 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。希尔排序又称缩小增量排序,因 DL.Shell 于 1959 年提出而得名。它通过比较相距一定间隔的元素来进行,各趟比较所用的距离随着算法的进行而减小&#xf…

系统设计 —— 随用户扩展

单服务器设置: 在单服务器设置中,所有内容都运行在一台服务器上。这包括网页应用程序、数据库、缓存等。 1*HQXZgCc5Vh8KooJHwKfzjw.png 图1.1 请求流程 1.最终用户通过域名(myurl.com)访问网站。请求发送到 DNS,将域名…

字符串函数(一):strcpy(拷贝),strcat(追加),strcmp(比较),及strncpy,strncat,strncmp

字符串函数 一.strcpy(字符串拷贝)1.函数使用2.模拟实现 二.strcat(字符串追加)1.函数使用2.模拟实现 三.strcmp(字符串比较)1.函数使用2.模拟实现 四.strncpy1.函数使用2.模拟实现 五.strncat1.函数使用2.…

[Kubernetes] sealos 部署 K8s v1.25.0 集群

文章目录 1.sealos 介绍2.操作系统基础配置3.安装部署 K8s4.验证 K8s 集群5.部署测试资源 1.sealos 介绍 Sealos 是一个基于 Kubernetes 内核的云操作系统发行版。它采用云原生方式,摒弃传统的云计算架构,转向以 Kubernetes 为云内核的新架构。这使得企…

Python从0到POC编写--函数

数学函数: 1. len len() 函数返回对象(字符、列表、元组等)长度或项目个数, 例如: str "python" len(str)2. range range() 函数返回的是一个可迭代对象(类型是对象),…

安卓短视频一键搬运软件_V1.5.2 高级版

短视频一键搬运app是一款非常实用的视频处理软件,拥有各种各样的视频处理功能,可以帮助用户进行视频的多项处理,首先用户可以在这里为视频去除水印,打开视频文件过后,再把视频里面的水印内容框选出来,这样就…

从“金事通”带给我意想不到的来说--“数据是架构的中心”

背景 上周一个保险的销售人员来找我完成一定的售后流程。其中有一项是请我下载一个叫 金事通的 APP。说实在的我根本没听过。她说这是政治任务。我想不是有你们保险公司的APP了嘛。为什么还要我安装。没办法先安装吧。 经历了注册、人脸识别的步骤后。可以登录了。注册短信发…

Rx(Reactive Extensions)的由来

既然我们已经介绍了响应式编程,现在是时候了解我们的明星了:响应式扩展,通常简称为Rx。微软开发了Reactive扩展库,使其易于处理事件流和数据流。在某种程度上,时变值本身就是一个事件流;每个值更改都是一种类型的事件它会更新依赖…

交通地理信息系统实习教程(二)

这篇文章服务于GIS背景用户以及有志于GIS的朋友 操作源数据位置:【免费】交通地理信息系统实习二源数据资源-CSDN文库 软件安装包位置:【免费】TransCad-交通地理信息系统软件资源-CSDN文库 一、最短路径分析 1.1软件启动说明 这里需要给出一个必要的…

快来参加【顶尖赛事】LIC·2024 语言与智能技术竞赛

语言与智能技术竞赛(LIC)是由中国中文信息学会(CIPS)和中国计算机学会(CCF)联合主办,百度公司、中国中文信息学会评测工作委员会和中国计算机学会自然语言处理专委会承办的中文NLP顶级赛事&…

qt移植到imx6ull运行(qt部署到imx6ull)

这个事情对于小白来说确实不是很友好,会经常出现错误,我弄了两天终于弄好了 我主要参考了https://blog.csdn.net/m0_61738650/article/details/131269561 https://blog.csdn.net/m0_61738650/article/details/131171914这两个教程 我现在来简述一下流程…

AI+新能源充电桩数据集

需要的同学私信联系,推荐关注上面图片右下角的订阅号平台 自取下载。 随着我国新能源汽车市场的蓬勃发展,充电桩的需求量日益增加,充电桩的智能化程度不仅影响充电站运营商的经营效益,也大大影响着用户的充电体验。AI技术可以涵盖…

深入浅出:ConcurrentLinkedQueue源码分析与实战

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

C++青少年简明教程:C++中的常量、变量、表达式和语句

C青少年简明教程:C中的常量、变量、表达式和语句 在C编程中,常量、变量、表达式和语句是基本的编程概念。 常量(Constants):在程序中具有固定值的数据称为常量。常量可以是字面值,如整数、浮点数、字符或…