《机器人学一(Robotics(1))》_台大林沛群 第 6 周 【轨迹规划_直线转折处抛物线平滑】Quiz 6

news2024/9/30 13:27:42

步骤:
1、 编程 将PPT 的例子 跑一遍, 确保代码无误
2、根据题目 修改 相关参数

文章目录

        • 求解代码_Python

解决的问题: 线段间转折点 的 速度 不连续
解决方法: 将直线段 两端 修正为 二次方程式
在这里插入图片描述
二次项圆滑
在这里插入图片描述

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

在这里插入图片描述

求解代码_Python

import numpy as np
np.set_printoptions(precision=2,suppress = True) 

t0, t1, t2, tf = 0, 2, 4, 9
x0, x1, x2, xf = -4, -5, 2, 5
y0, y1, y2, yf = 0, 5, 3, -3 
θ0, θ1, θ2, θf = 120, 45, 30, 0
tk = 0.5

### 1、求 各 DOF(X, Y, θ) 在每段的速度  及 加速度

## 中间 线段 计算
def getV_in(x1, x2, t1, t2):
    return (x2 - x1)/(t2 - t1)

## 头尾 线段  计算 
def getV_0f(x1, x2, t1, t2):
    return (x2 - x1)/(t2 - t1 - tk/2)

### 2、 建立 各 DOF(X, Y, θ) 在每段的方程
"""
平滑  t ∈ [0, 0.5]
直线  t ∈ [0.5, 1.75]
平滑  t ∈ [1.75, 2.25]
直线  t ∈ [2.25, 3.75]
平滑  t ∈ [3.75, 4.25]
直线  t ∈ [4,25, 8.5]
平滑  t ∈ [8.5, 9]
"""
## 求解 X(t)
##  平滑化  段  
def getX_parabolic(x, V, a, ti0, ti1, t):
    return x + V * (t - ti0) + 0.5 * a * (t - ti1)**2

## 直线段  
def getX_linear(x, V, ti, t):
    return x + V * (t - ti)


############# 求解 X 部分
print('X:')
V0 = 0
V1 = getV_0f(x0, x1, t0, t1)
V2 = getV_in(x1, x2, t1, t2)
V3 = getV_0f(x2, xf, t2, tf)
Vf = 0
print('V1[0.5 ~ 1.75]:', np.round(V1, 2))
print('V2[2.25 ~ 3.75]:', np.round(V2, 2))
print('V3[4.25 ~ 8.25]:', np.round(V3, 2))  


def geta(V1, V2):
    return (V2 - V1)/tk

a0 = geta(V0, V1)
a1 = geta(V1, V2)
a2 = geta(V2, V3)
af = geta(V3, Vf)
print('a0:', np.round(a0, 2))
print('a1:', np.round(a1, 2))
print('a2:', np.round(a2, 2))
print('af:', np.round(af, 2))

print('t ∈ [3.75, 4.25]  t = 4 , X5 = :', np.round(getX_parabolic(x1, V2, a2, 2, 3.75, 4), 2))

############# 求解 Y 部分
print('Y:')
V0 = 0
V1 = getV_0f(y0, y1, t0, t1)
V2 = getV_in(y1, y2, t1, t2)
V3 = getV_0f(y2, yf, t2, tf)
Vf = 0
print('V1:', np.round(V1, 2))
print('V2:', np.round(V2, 2))
print('V3:', np.round(V3, 2))  


def geta(V1, V2):
    return (V2 - V1)/tk

a0 = geta(V0, V1)
a1 = geta(V1, V2)
a2 = geta(V2, V3)
af = geta(V3, Vf)
print('a0:', np.round(a0, 2))
print('a1:', np.round(a1, 2))
print('a2:', np.round(a2, 2))
print('af:', np.round(af, 2))

print('t ∈ [3.75, 4.25]  t = 4 , Y5 = :', np.round(getX_parabolic(y1, V2, a2, 2, 3.75, 4), 2))

############# 求解 θ 部分
print('θ:')
V0 = 0
V1 = getV_0f(θ0, θ1, t0, t1)
V2 = getV_in(θ1, θ2, t1, t2)
V3 = getV_0f(θ2, θf, t2, tf)
Vf = 0
print('V1:', np.round(V1, 2))
print('V2:', np.round(V2, 2))
print('V3:', np.round(V3, 2))  


def geta(V1, V2):
    return (V2 - V1)/tk

a0 = geta(V0, V1)
a1 = geta(V1, V2)
a2 = geta(V2, V3)
af = geta(V3, Vf)
print('a0:', np.round(a0, 2))
print('a1:', np.round(a1, 2))
print('a2:', np.round(a2, 2))
print('af:', np.round(af, 2))

print('t ∈ [3.75, 4.25]  t = 4 , θ5 = :', np.round(getX_parabolic(θ1, V2, a2, 2, 3.75, 4), 2))

在这里插入图片描述

第1题答案: -0.57//2.86//-42.86
在这里插入图片描述
第2题答案: 3.5//-1//-7.5
在这里插入图片描述
第3题答案: 0.63//-1.26//-6.32
在这里插入图片描述
第4题答案: -1.14//5.71//-85.71
在这里插入图片描述
第5题答案: 8.14//-7.71//70.71
在这里插入图片描述
第6题答案: -5.74//-0.53//2.37
在这里插入图片描述
第7题答案: -1.26//2.53//12.63
在这里插入图片描述
第8题答案: 1.82//2.98//30.07

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

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

相关文章

图床项目性能测试

文章目录 一、FastDFS文件性能测试1.1 上传文件测试1.2 下载测试1.3 删除文件测试1.4 如何提高 二、图床项目wrklua性能测试2.1 wrk2.2 MySQL索引优化2.2 注册测试2.2.1 无索引性能2.2.2 有索引性能 2.3 登录测试2.3.1 无索引性能2.3.2 有索引性能 2.4 读取文件测试2.4.1 无索引…

ctfshow-web-新年好?

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 0x01 题目 0x02 Write Up 尝试访问之后返回了源码。可以看到重点是在setTimeout 首先来看setTimeout,setTimeout的意思就是说在一段时间后执行指定…

H5页面,上下滑动翻页(整页翻书切换效果)

使用 H5页面&#xff0c;上下滑动翻页 修改 页面间的切换&#xff1a;整页翻书的切换效果 demo代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEe…

突破传统显示技术,探索OLED透明屏的亮度革命

OLED透明屏作为未来显示技术的颠覆者&#xff0c;其亮度性能成为其引人注目的特点之一。 那么&#xff0c;今天尼伽便深入探讨OLED透明屏的亮度&#xff0c;通过引用数据、报告和行业动态&#xff0c;为读者提供高可读性和专业性强的SEO软文&#xff0c;增加可信度和说服力。 …

计算机丢失mfc140.dll怎么办,分享几种常见解决方案[dll修复工具下载】

一、mfc140.dll 的详细介绍 1.mfc140.dll 的作用 MFC140.dll 是 MFC 的一个组件&#xff0c;它提供了许多用于创建 Windows 应用程序的类和函数&#xff0c;如窗口管理、控件、对话框、菜单、消息处理等。这些类和函数可以帮助开发者更轻松地开发图形用户界面&#xff08;GUI&a…

【Linux】shell脚本和bat脚本:

文章目录 一、脚本对应环境&#xff1a;【1】shell&#xff1a;linux环境&#xff1b;后缀名为.sh【2】bat&#xff1a;windows环境&#xff1b;后缀名为.bat或者.cmd 二、脚本执行&#xff1a;【1】shell执行【2】bat脚本执行 三、脚本相关命令&#xff1a;1. shell命令【1】s…

【UE】材质描边、外发光、轮廓线

原教学视频链接&#xff1a; ue4 材质描边、外发光、轮廓线_哔哩哔哩_bilibili 步骤 1. 首先新建一个材质&#xff0c;这里命名为“Mat_outLine” 在此基础上创建一个材质实例 2. 在视口中添加一个后期处理体积 设置后期处理体积为无限范围 点击添加一个数组 选择“资产引用”…

如何将JACOCO应用到企业实战中~测试过招,只需6点

1、下载 jacoco 官网&#xff1a;https://www.jacoco.org/jacoco/index.html 如果你想学习自动化测试&#xff0c;我这边给你推荐一套视频&#xff0c;这个视频可以说是B站播放全网第一的自动化测试教程&#xff0c;同时在线人数到达1000人&#xff0c;并且还有笔记可以领取及…

Win10右键 nvidia rtx desktop manager 怎么删除(最新)

在更新了最新的 nvidia后原来的隐藏鼠标右键菜单后不行了&#xff0c;新方法如下&#xff1a; 步骤一&#xff1a;在键盘“WINR”键同时操作下&#xff0c;启动运行框&#xff0c;在框内输入“regedit”&#xff0c;打开深度系统win7 的注册表编辑器。 步骤二&#xff1a;为防…

Spring学习|Bean的作用域、自动装配Bean、注解实现自动装配、Spring注解开发

Bean的作用域 单例模式(Spring默认机制) 原型模式:每次从容器中get的时候&#xff0c;都会产生一个新对象! Bean的自动装配 自动装配是Spring满足bean依赖一种方式! Spring会在上下文中自动寻找&#xff0c;并自动给bean装配属性! 在Spring中有三种装配的方式 1.在xml中显示的…

在字节跳动和拼多多干了5年测试,熬夜总结出来的划水经验....

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入字节&#xff0c;之后跳槽到了拼多多&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是5年的工作经验吧。 这5年之间完成了一次晋升&#xff0c;换了一家公司&#xff0c;…

java八股文面试[数据库]——MySQL死锁的原因和处理方法

1) 表的死锁 产生原因: 用户A访问表A&#xff08;锁住了表A&#xff09;&#xff0c;然后又访问表B&#xff1b;另一个用户B访问表B&#xff08;锁住了表B&#xff09;&#xff0c;然后企图访问表A&#xff1b;这时用户A由于用户B已经锁住表B&#xff0c;它必须等待用户B释放…

ZooInspector

一、在window&#xff0c;使用我们先打开Zookeeper,目录bin下的zkServer.cmd&#xff0c;把Zookeeper运行起来 ​编辑https://img.111com.net/attachment/art/187687/5f0c25fbe580c.png 二、可以使用目录bin下的zkCli.cmd&#xff0c;查询Zookeeper数据的方式&#xff0c;但是…

大模型浪潮席卷!和鲸科技入选创业邦“2023值得关注的125家AIGC企业”榜单

为以专业视角发掘现阶段积极探索 AIGC 技术和应用的企业&#xff0c;对接企业与场景&#xff0c;推动技术落地&#xff0c;创业邦于近日发布了“2023 值得关注的 125 家 AIGC 企业”榜单&#xff0c;和鲸科技凭借旗下 ModelWhale 数据科学协同平台在承载气象大模型的构建与应用…

企业怎么选择广告片的投放途径

TVC广告片和宣传片都是常见的企业营销工具&#xff0c;每种形式都有各自的特点和适用场景。选择哪种形式更适合企业投放&#xff0c;取决于多个因素&#xff0c;包括目标受众、营销目标、预算和信息传递需求等。接下来由深圳TVC广告片制作公司老友记小编从以下几个方面介绍它们…

【Python报错解决方案】DeprecationWarning: `np.float` is a deprecated

报错amoconda libsite-packages sklearn linear model least ngl.py30: Deprecationmarming: mp.float is a deprecated alias for the builtinfloat , To silence this warning, wse flat by itself. Doing this will not modify amy behavior and is safe. If you specifical…

机器学习基础算法--回归类型和评价分析

目录 1.数据归一化处理 2.数据标准化处理 3.Lasso回归模型 4.岭回归模型 5.评价指标计算 1.数据归一化处理 """ x的归一化的方法还是比较多的我们就选取最为基本的归一化方法 x(x-x_min)/(x_max-x_min) """ import numpy as np from sklea…

python超详细基础教程:元组和集合

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 元组和集合是Python中的基本类型 python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 一&#xff0c;元组 元组&#xff08;tuple&#xff09;由小括号、逗号和数据对象构成的集合&#xff0c;各个项通过逗号…

毕业设计-摄像头识别二维码

本毕业设计采用imx6ull-linux4.1.15-qt5.6开发板进行测试 相关交叉编译包和摄像头测试程序已上传&#xff1a;https://download.csdn.net/download/qq_42952079/88282608 将zbar和opencv下的lib库文件拷贝到开发板的lib目录下&#xff0c;将camera可执行文件拷贝到开发板目录下…

解锁前端Vue3宝藏级资料 第四章 VUE常用 UI 库 1 ( element-plus,Ant ,naiveui,ArcoDesign)

现在常用的前台UI 分别是以下几种&#xff0c;我们将从中间选择介绍几个主流的UI的用于后台的系统搭建与开发。 Ant Design Vue element-plusnaiveuiArcoDesignBootstrap Vue Buefy Chakra UI Framevuerk Oruga Tachyons Tailwind CSS NutUI Vant Vuetify.js第一章 Vue3项目创建…