作者:xnjust、ycznjust
前言:本人在十六届智能车竞赛现场失误果断白给,后来校赛的时候补上遗憾,“不小心”搞出“漂移算法”,大家在我B站那边看的还挺乐呵,有两个小伙伴后台问阿克曼车型该怎么写这个运动解算的东西,毕竟C车模还是屁股上面俩电机,不是机械式的差速器,不搞差速的话基本上是没法搞。现在毕业之后的社畜去处也定好了,就抽点时间填坑,各位不要再说我是鸽子了,鸽子也是要脸的。
综述:智能车竞赛的C车模还是一款不错的车模,两个后轮通过两个电机直接驱动,前桥通过舵机进行驱动,前桥的转向效果比较真实,内侧轮和外侧轮角度是由一定的差值的,因此不可以把C车模照着众多的CSDN帖子简化成“单车模型”,毕竟大家估计都是冲着通过舵机打角计算后轮差速来的,估计困惑大家的都是这个问题。CSDN上面很多帖子都是“单车模型”或者是“曲率控制”,要么就是不管差速,要么就是默认大家都是摄像头的车子,觉得大家都可以想办法拿到曲率,这不直接耍流氓,咱们这个帖子就是从电磁车出发,想办法通过舵机打角计算出后轮差速,个人水平有限,欢迎各位大佬指出问题,方便我改正问题:B站UID:26149458 B站艺名:找寻着你呐
问题一:如何获得阿克曼车型的后轮差速?
大家在做智能车的过程中,肯定会先做电机闭环,然后闭环做好之后,肯定会用全局变量什么的指定车轮的固定速度,走直线的时候可以直接用这个速度指定左右两轮的速度,但问题是转弯的时候怎么办,大家肯定做过两轮车,转弯肯定要差速,阿克曼的肯定也是要用差速,但是这个差速该怎么差速?这个差速和舵机打角有什么关系?
那么我们先来解决差速该怎么差速这个问题:
首先放个图:

图中的标识相信大家很容易就能看明白,通过以上符号,再运动初中数学,大家肯定可以很容易列出以下基本公式:





通过图片大家可以看到,阿克曼车型在转弯的时候,其实是在做圆周运动,这个圆心呢就和别人帖子里写的这个曲率有关,那么我们现在思考一下,这个圆心和后轮在一个轴上面,要做圆周运动,那是不是就代表了,两个轮子的角速度其实应该是一致的,那么既然角速度一致,是否就可以根据初中物理的圆周运动知识知道一下公式:

假设我们设置的速度是两轮中心的速度,那么有:


那么很容易就可以得到两轮的速度:


现在看这个式子,我们的差速是不是自然而然就可以拿到了,但是还有一个问题,就是这个R,这个R也就是关乎其他博主说的曲率,关于这个我们继续讨论。
问题二:R或者曲率怎么拿到?
大部分博主都在说,用摄像头,多点法或者两点法拿到曲率,但是还有广大的同志是电磁车啊喂,电磁车就是通过电磁信号获得当前的偏差,然后用PID或者别的方法,算出一个舵机的打角,那么我们怎么通过打角来计算出后轮的差速呢?
照旧,还是先贴一张图:
此处需要注意一个问题,图中的L4标注错误,L4应该是红色的臂长
该图是简单模拟C车上由舵机驱动的前桥,图中的M还有T还有L4,都是前桥中机械结构中的已知参数,大家可以自己测量一下,通过上下的对比图不难得出以下公式和结果:



根据L4的正确标注,正确公式应该参照如下公式
同理可得左边的α角,那么如何得到R呢,我们回头看第一张图的公式:



此时α和β都知道了,就可以带入上式,算出R,然后就可以算出后轮的实际速度了!
小结:不知道各位看官都看明白没有,如果看明白了,请给俺的B站点点关注走一走,因为我老是和实验室的大伙儿攀比粉丝数量
B站跳转链接:找寻着你呐的个人空间_哔哩哔哩_bilibili
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02 数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我正在寻找用于Rails的优质管理插件。似乎大多数现有的插件/gem(例如“restful_authentication”、“acts_as_authenticated”)都围绕着self注册等展开。但是,我正在寻找一种功能齐全的基于管理/管理角色的解决方案——但不是简单地附加到另一个非基于角色的解决方案。如果我找不到,我想我会自己动手......只是不想重新发明轮子。 最佳答案 RyanBates最近做了两个关于授权的railscast(注意身份验证和授权之间的区别;身份验证检查用户是否如她所说的那样,授权检查用户是否有权访问资源
我正在根据Rakefile中的现有测试文件动态生成测试任务。假设您有各种以模式命名的单元测试文件test_.rb.所以我正在做的是创建一个以“测试”命名空间内的文件名命名的任务。使用下面的代码,我可以用raketest:调用所有测试require'rake/testtask'task:default=>'test:all'namespace:testdodesc"Runalltests"Rake::TestTask.new(:all)do|t|t.test_files=FileList['test_*.rb']endFileList['test_*.rb'].eachdo|task|n
我想要像“嘿那里”这样的东西变成,例如,#316583。我希望将任意长度的字符串“归结”为十六进制颜色。我不知道从哪里开始。我在想,每个字符串的MD5散列都是不同的-但如何将该散列转换为十六进制颜色数字? 最佳答案 你可以只取几位前几位:require'digest/md5'color=Digest::MD5.hexdigest('Mytext')[0..5] 关于ruby-如何使用Ruby基于字母数字字符串生成颜色?,我们在StackOverflow上找到一个类似的问题:
目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标
前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型
文章目录1.自动驾驶实战:基于Paddle3D的点云障碍物检测1.1环境信息1.2准备点云数据1.3安装Paddle3D1.4模型训练1.5模型评估1.6模型导出1.7模型部署效果附录show_lidar_pred_on_image.py1.自动驾驶实战:基于Paddle3D的点云障碍物检测项目地址——自动驾驶实战:基于Paddle3D的点云障碍物检测课程地址——自动驾驶感知系统揭秘1.1环境信息硬件信息CPU:2核AI加速卡:v100总显存:16GB总内存:16GB总硬盘:100GB环境配置Python:3.7.4框架信息框架版本:PaddlePaddle2.4.0(项目默认框架版本为2.3