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

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

        车轮校准分为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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 基于STM32的GPS导航无人驾驶小车是一种智能化的交通工具,它可以通过GPS定位系统来实现自主导航和自动驾驶。该小车采用STM32芯片作为控制核心,通过传感器获取周围环境信息,实现对车辆的控制和调度。同时,它还可以通过无线通信技术与其他设备进行数据交互,实现更加智能化的控制和管理。这种小车具有高效、安全、环保等优点,是未来智能交通领域的重要发展方向之一。 ### 回答2: 现在,GPS导航无人驾驶小车已经成为现代科技的新宠。它们通常用于环境监测、采集、遥感、地质勘探等应用领域。而基于STM32的GPS导航无人驾驶小车则更加迎合了现代人对于快速、便捷、精准、高效的需求。 第一步,我们需要购买和准备相关硬件和软件。硬件可选用包括GPS芯片、STM32微控制器、驱动电机以及传感器等;而软件需要编写嵌入式程序并实现相关驱动程序,完成定位、导航、控制等功能。 其次,根据我们的需求,可以通过选用不同的传感器来实现不同的功能。例如,我们需要通过传感器获取环境数据,通过这些数据对小车进行控制和导航;而电子罗盘则可以帮助我们确认小车的运动方向并对其进行调整。 接下来,在整个系统设计过程中,需要将GPS芯片和STM32微控制器中的程序进行协调,实现精准的导航。同时,我们需要设置传感器的阈值来激活其响应,使小车能够更加精准地感知环境信息。此外,我们还需要考虑小车的构造,包括其机械设计、动力系统等因素,来保证小车稳定、高效地完成各种导航任务。 最后,我们需要进行实验验证,对于整个系统进行稳定性测试,确保小车可以正常运行且导航精度达到要求。在实际应用过程中,我们需要对小车进行简单操作即可自主完成导航任务,并按照预先设置的路径行驶。经过多次测试后,我们可以将其应用到更广泛的领域中,使之成为各行各业中的有效工具。 ### 回答3: GPS导航无人驾驶小车是当前自动驾驶领域的研究热点之一。基于STM32的GPS导航无人驾驶小车,其核心是STM32单片机芯片,结合GPS定位系统,可以实现车辆的自主导航、执行指定任务和自主控制等多种功能。下面从硬件和软件两个方面分别介绍这一系统。 硬件方面,这个系统需要选择合适的车载硬件设备。首先是GPS模块,因为是导航无人驾驶小车,所以GPS模块是不可或缺的核心部分。其次是电机驱动模块,用来控制小车的输出功率和方向。再次是传感器,包括陀螺仪、加速度计等,用来检测小车的运动状态和环境信息。最后是避障模块,利用超声波和红外线信号来探测障碍物,并完成车辆避障功能。 软件方面,STM32单片机芯片将成为系统的大脑,运行着自主控制程序和导航算法。程序主要有以下几个模块:定位模块、导航模块、控制指令模块、演算法模块、传感器模块以及通讯模块。其中,定位模块主要是GPS定位,获取车辆当前的经度和纬度等信息,并传送给导航模块进行处理。导航模块则是使用导航算法计算车辆行驶路径,判断车辆前进方向和速度,并将控制指令传递给电机驱动模块。演算法模块负责处理车辆与其周围环境的信息,用于预测和防范车辆可能遇到的障碍物和危险情况。传感器模块则是监测车辆的运动状态、周围环境和其他情况,并更新车辆的状态信息。通讯模块负责与地面控制系统进行数据通讯和指令传递,从而实现远程监控和控制功能。 总之,基于STM32的GPS导航无人驾驶小车是一个复杂的系统工程,在硬件和软件等方面都需要高水平的技术和丰富的经验。它的实现需要涉及多个领域,包括电子、自动控制、机器人和计算机,需要多学科的协作和深入的研究。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溪风沐雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值