我是靠谱客的博主 俊秀果汁,最近开发中收集的这篇文章主要介绍麦克纳姆轮小车matlab仿真,学习使用Python控制麦克纳姆轮底盘,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

学习使用Python控制麦克纳姆轮底盘

这里小龟给大家分享如何使用Python控制麦克纳姆轮底盘的小龟小车。

首先小伙伴得参考小龟提供的改造手册进行先把小龟小车改造成麦克纳姆轮底盘,假如小伙伴在改造过程中碰到问题,记得问小龟获得帮助。

体验麦克纳姆轮

首先您可以直接使用小龟小车提供的操控台来先体验一把麦克纳姆轮的操作体验。

c0717a2177be0aafc8f95048f3755912.png

编程快速体验麦克纳姆轮

小龟小车提供了最简单的驱动麦克纳姆轮的编程方法,这个方法适合您只想学习理解麦克纳姆轮的各种运动效果如何实现。

函数接口:

car.driver.wheels(左前轮速度, 左后轮速度, 右前轮速度, 右后轮速度)

每个轮速度的值为 -100 到 100 ,其中-100代表轮子全速反转;100代表轮子全速前进;0代表轮子停止转动。

下面的代码范例可以让小伙伴们体验一下麦克纳姆轮的单轮运动效果#麦克纳姆轮单轮运动

#左前轮向前

car.driver.wheels( 100, 0, 0, 0)

sleep(1)

#左前轮向后

car.driver.wheels(-100, 0, 0, 0)

sleep(1)

#左后轮向前

car.driver.wheels(0, 100, 0, 0)

sleep(1)

#左后轮向后

car.driver.wheels(0, -100, 0, 0)

sleep(1)

#右前轮向前

car.driver.wheels(0, 0, 100, 0)

sleep(1)

#右前轮向后

car.driver.wheels(0, 0, -100, 0)

sleep(1)

#右后轮向前

car.driver.wheels(0, 0, 0, 100)

sleep(1)

#右后轮向后

car.driver.wheels(0, 0, 0, -100)

sleep(1)

#刹车

car.driver.wheels(0, 0, 0, 0)

下面是小车基础运动效果的代码#麦克纳姆轮基础运动效果

#小车前进

car.driver.wheels(100, 100, 100, 100)

sleep(1)

#小车后退

car.driver.wheels(-100, -100, -100, -100)

sleep(1)

#小车左转

car.driver.wheels(-100, -100, 100, 100)

sleep(1)

#小车右转

car.driver.wheels(100, 100, -100, -100)

sleep(1)

#小车停车

car.driver.wheels(0, 0, 0, 0)

下面是难度高一点,效果也酷一点的麦克纳姆轮酷炫运动效果#麦克纳姆轮酷炫的复杂运动效果

#小车横向左移(左前轮前进,左后轮后退,右前轮后退,右后轮前进)

car.driver.wheels(100, -100, -100, 100)

sleep(1)

#小车横向右移(左前轮后退,左后轮前进,右前轮前进,右后轮后退)

car.driver.wheels(-100, 100, 100, -100)

sleep(1)

#小车左前横移(左前轮停止,左后轮前进,右前轮前进,右后轮停止)

car.driver.wheels(0, 100, 100, 0)

sleep(1)

#小车左后横移(左前轮后退,左后轮停止,右前轮停止,右后轮后退)

car.driver.wheels(-100, 0, 0, -100)

sleep(1)

#小车右前横移(左前轮前进,左后轮停止,右前轮停止,右后轮前进)

car.driver.wheels(100, 0, 0, 100)

sleep(1)

#小车右后横移(左前轮停止,左后轮后退,右前轮后退,右后轮停止)

car.driver.wheels(0, -100, -100, 0)

sleep(1)

#小车停车

car.driver.wheels(0, 0, 0, 0)

高手基于I2C控制PCA9685的方式编程

假如你是想学习更深入的专业知识,可以基于Python的I2C指令来控制小车的驱动芯片PCA9685的方式来编程体验

下面是基于原生的I2C操作方法进行的编程范例#发送I2C指令开启PCA9685模块

car.i2c.write(64, 0, 0x20)

sleep(0.1)

#配置单个轮子基础运动的I2C指令

#该指令参考PCA9685芯片的Datasheet,以100%占空比进行对应电机的设置

FORWARD = [0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10]

BACKWARD = [0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00]

STOP = [0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10]

#运动执行函数

#参数(左后轮运动指令,左前轮运动指令,右后轮运动指令,右前轮运动指令)

def action(L2, L1, R2, R1):

arr = []

arr.extend(L2)

arr.extend(L1)

arr.extend(R2)

arr.extend(R1)

return arr

#麦克纳姆轮基础运动指令

action_go = action(FORWARD, FORWARD, FORWARD, FORWARD)

action_stop = action(STOP, STOP, STOP, STOP)

action_left = action(BACKWARD, BACKWARD, FORWARD, FORWARD)

action_right = action(FORWARD, FORWARD, BACKWARD, BACKWARD)

action_back = action(BACKWARD, BACKWARD, BACKWARD, BACKWARD)

action_hleft = action(FORWARD, BACKWARD, BACKWARD, FORWARD)

action_hright = action(BACKWARD, FORWARD, FORWARD, BACKWARD)

action_top_right = action(STOP, FORWARD, FORWARD, STOP)

action_bottom_left = action(STOP, BACKWARD, BACKWARD, STOP)

action_top_left = action(FORWARD, STOP, STOP, FORWARD)

action_bottom_right = action(BACKWARD, STOP, STOP, BACKWARD)

#测试运动效果

car.i2c.write(64, 0x06, action_hleft)

sleep(2)

car.i2c.write(64, 0x06, action_hright)

sleep(2)

car.i2c.write(64, 0x06, action_stop)

最后

以上就是俊秀果汁为你收集整理的麦克纳姆轮小车matlab仿真,学习使用Python控制麦克纳姆轮底盘的全部内容,希望文章能够帮你解决麦克纳姆轮小车matlab仿真,学习使用Python控制麦克纳姆轮底盘所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部