简介:小车的动力完全来自于两个电机带动的车轮,在理想状态下,给两个电机同样的驱动参数,两个车轮会以同样的转速带动小车直线行驶,而实际情况是每个电机可能都会有个体差异,也就是说给予同样的驱动参数,表现出的转动速度会有些许不同,两个轮子的差速会导致车辆拐弯,后果就是给了直线行驶的控制命令,但是车走着走着就偏离了原本的方向,所以在开始控制之前,我们需要先平衡两个车轮的转速,保证在同样驱动参数下,两个车轮转速大致相同,也就是可以走直线。

车轮校准分为3步,测试、调整后再测试、保存参数,第二步循环执行若干次,直到小车大致可以走直线。具体过程如下:

首先参考上一节内容,可以通过键盘控制小车行走:

在虚拟机内打开终端,输入命令:

$ dts duckiebot keyboard_control duckiebot1

等待系统开启一个带方向按钮的控制窗口,激活窗口,通过键盘上的↑↓←→键即可控制小车移动。

然后在地面上贴一条直线做参考,可以用胶带,也可以找原本就存在的直线参考(地面不能太滑),将小车放到直线的起点,方向与直线平行,然后控制小车向前行驶2米左右,观察小车位置:

如果小车位置在直线上偏差不大(10cm以内),说明当前配置合适,不需要调整,如果偏差比较大,观察小车偏离方向,根据偏离方向执行以下命令:

偏左的情况下

$ rosparam set /duckiebot1/kinematics_node/trim -0.1

或者偏右的情况下

$ rosparam set /duckiebot1/kinematics_node/trim 0.1

规则为左负右正,设置完以后再次测试,如果依然偏差较大,则增加调整参数的绝对值,直到小车直线行驶偏差不大为止。

然后还有一个参数需要适当调整 /duckiebot1/kinematics_node/gain,该参数整体控制车轮转速,取值为0~1,默认为1,值越大小车速度越快,越小小车速度越慢,如果车辆行驶车轮打滑严重,则需要适当缩小gain的值,调整命令如下:

$ rosparam set /duckiebot1/kinematics_node/gain 0.9

最后保存设置后的参数:

$ rosservice call /duckiebot1/kinematics_node/save_calibration

注:rosparam set paramName paramValue 是修改系统参数的命令,对应有rosparam get paramName,可以查看参数值

附kinematics_node节点其他参数说明:

gain:应用于所需速度的缩放因子,默认是1.0

trim:修剪因子,通常用于抵消左右电机的行为差异,建议使用一个值,当给出forward命令时,该值将导致机器人沿直线移动,默认值为0.0

baseline:机器人的两个轮子之间的距离,默认为0.1

radius:轮子的半径,默认为0.0318

k:电机常数,假设两个电机相等,默认为27.0

limit:限制发送给电机的最终命令,默认为1.0

v_max:限制输入速度,默认为1.0

omega_max :限制输入转向角度,默认为8.0

无人驾驶小车调试笔记(六)-- 车轮校准相关推荐

  1. 无人驾驶小车调试笔记(五)-- 命令行通信

            简介:在这一章节中,我们需要安装有相关环境(虚拟机方式为例,需要安装有ROS系统,安装过程请参考无人驾驶虚拟仿真教程第2节)的电脑一台,组装好并经过初始化设置的无人驾驶小车一台,路由器 ...

  2. 无人驾驶小车调试笔记(三)--小车启动及初始化设置

            准备工作:安装有相关环境的电脑一台,组装好的无人驾驶小车一台,烧录好系统的SD卡一张,与烧录SD卡配置一致的路由器一台. 注:以下内容都以主机名为duckiebot1的小车为例说明. ...

  3. 无人驾驶小车调试笔记(七)-- 相机校准

    简介:在第五节的内容中,我们学习了使用rqt工具集观看摄像头视频流的方法,细心的同学应该会发现camera_node发布的视频数据中的图像有变形现象,图像变形会导致直线不直,部分区域变大,部分区域缩小 ...

  4. 无人驾驶小车调试笔记(一)-- 调试环境部署

    硬件简介:硬件是NVIDA Jetson Nano为主控的差速控制小车,主要由主控板.转接板.两个电机(动力来源).高清摄像头.tof传感器.imu传感器.前后各两组车灯,顶部开关按钮.显示屏以及万向 ...

  5. keil4怎么移植其他人的程序_【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608...

    之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言.我们尽量满足. 1.1 移植思路 先找到驱动:也许内核里已经有,也许需 ...

  6. 【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

  7. 调试笔记--jlink 变量转实时波形小技巧

    调试笔记–jlink 变量转实时波形小技巧 上篇讲了jlink RTT组件在RAM中开辟一段内存,将printf字符串存入然后通过jlink调试接口读取RAM,将printf字符串在jlink-RTT ...

  8. 哇靠靠,这也行?零基础DIY无人驾驶小车(一)

    之前做过一个非常简单粗略版本的无人驾驶小车(点击打开链接).曾经答应过一些朋友出教程的,可是一直没有兑现.现在下定决心要把这个教程写完.而且会重新制作一辆更好的无人驾驶小车(使用标准的4车道,增加其他 ...

  9. 【分享干货】AD9653调试笔记

    标题AD9653调试笔记 一.简介 AD9653是ADI公司于2012年推出的一款四通道.16位.125MSPS模数转换器,内置片内采样保持电路,专门针对低成本.低功耗.小尺寸和易用性设计.该产品转换 ...

最新文章

  1. oracler日期函数相差六个月_Oracle数据库之SQL单行函数---日期函数集锦
  2. 互联网人的《三十而已》:裸辞,催婚,职业瓶颈,逃离北上广深......
  3. Python 计算机视觉(一) —— 数字图像处理基础
  4. boost::process:std_out相关的测试程序
  5. P2626 斐波那契数列(升级版)
  6. tcpmp 编译 源代码分析
  7. python爬虫爬取雪球网_Python爬虫爬取天天基金网基金排行
  8. 华为已经升级鸿蒙系统的机型,鸿蒙系统名单已确认!覆盖55款机型,这些手机将被淘汰!...
  9. 计算机怎么切换到音乐,电脑怎么换开关机背景音乐?电脑换开关机背景音乐的方法...
  10. 移动互联网的发展趋势ios与android哪更有前景,移动互联网是什么?移动互联网现状,发展趋势及前景...
  11. Babel指南——基本环境搭建
  12. Hadoop hdfs编程案例和java交互
  13. 简单工厂模式和策略模式的区别
  14. Lock和synchronized的区别和使用(转载)
  15. mes系统服务器架构,MES系统-#网络架构图.pdf
  16. vue2和vue3 的 keep-alive的用法
  17. 评点2021-2022年上市的那些Go语言新书
  18. URAL 2037 Richness of binary words (回文子串,找规律)
  19. mysql等保测评命令_安全计算环境-二级等级保护测评指导和自动化脚本
  20. 不是你需要中台,而是一名合格的架构师(附各中台建设PPT)

热门文章

  1. html5 lineheight属性,深入理解line-height属性
  2. linux 设置用户有效天数,Linux用户管理:设置用户口令的使用期限
  3. 盘点百位富豪读过的大学:土鳖比海龟更有优势
  4. 浅析negroni-gzip 过滤器的源码
  5. 母爱成就新科诺贝尔奖得主马里奥#183;卡佩奇
  6. cairo之安装配置
  7. Notification通知全文 7.0 and 8.0通知 ,横幅 ,显示,抖动,响铃
  8. GO学习笔记1.5:第一个GO项目常见问题
  9. 仅通过蓝牙HID将安卓手机模拟成鼠标和键盘
  10. 黎明前的黑暗(励志歌)