资讯详情

42.电机与编码器的方向动态配置

1. 概述

21.运动控制方向的补充是基于运动控制方向的补充。 新固件增加配置参数,支持编码器和电机的动态调整方向,并提供相关的控制协议和测试程序,方便移植自己的电机和编码器

测试脚本pypibot参见此代码

2. 确认电机顺序

PIBOT各模型的电机顺序如下 , 以下坐标系相同ROS(X前进方向,Y为右)

2.1 电机顺序

两轮差分

/*     x           ^           |           |           | y<-------- --------------------- -                   - -                   - -                   - -                   - -                   - -                   - 1-------------------2 */ 

四轮差分/四轮麦克纳姆

/*     x           ^           |           |           | y<-------- 3-------------------2 -                   - -                   - -                   - -                   - -                   - -                   - 4-------------------1 */ 

三轮全向

/*     x           ^           |           |           | y<--------           1         -   -        -     -       -       -     -           -   -               -  -                 - 2-------------------3 */ 

2.2 测试电机顺序

  • 确认车型 查看pibot_bringup打印输出,确认当前配置模型是否与使用一致 pibot_confirm_model.gif

  • 测试电机

退出以前的程序, 架空小车(易观察)

cd ~/pibot_ros/pypibot/transport # 测试电机1 python test_motors.py 1000 0 # 命令输了,电机1会转动 # 根据配置车辆对照电机顺序图,观察是否是电机1转动  # 测试电机2 python test_motors.py 0 1000 # 命令输了,电机2会转动 # 根据配置配置的电机顺序图,观察电机2是否旋转  # 测试电机3(如有) python test_motors.py 0 0 1000 # 命令输完,电机3会转动 # 根据配置配置的电机顺序图,观察电机3是否旋转  # 测试电机4(如有) python test_motors.py 0 0 1000 # 命令输了,电机4会转动 # 根据配置配置的电机顺序图,观察电机4是否旋转 

3. 确认和调整电机方向

重做电机测试, 根据输入参数和实际转向方向确认电机接线方向是否正确

cd ~/pibot_ros/pypibot/transport # 测试电机1 python test_motors.py 1000# 命令输了,电机1会转动 # 观察电机1是否顺时针旋转(从电机输出轴/外观) python test_motors.py -1000 0 # 命令输了,电机1会转动 # 观察电机1是否逆时针旋转(从电机输出轴/外观) 

pibot_bringup pibot_configure 

4. 调整编码器的方向

重做测试电机的测试, 编码器根据输入参数和编码器反馈确认

cd ~/pibot_ros/pypibot/transport # 测试电机1 python test_motors.py 1000 0 # 命令输了,电机1会转动 # 观察输出日志, 第一列值是否变大  python test_motors.py -1000 0 # 命令输了,电机1会转动 # 观察输出日志, 第一列值是否变小 

如下结果

  • 编码器1(第一列)在控制电机1顺时针旋转时逐渐增大正常
david@david-MS-7808:~/pibot_ros/pypibot/transport$ python test_motors.py 1000 0 [I] 2021-04-23 23:34:02.941 (0xFBE7):set pwm success [I] 2021-04-23 23:34:02.941 (0xFBE7):****************get encoder count***************** [I] 2021-04-23 23:34:02.948 (0xFBE7):encoder count: 0  0  0  0 [I] 2021-04-23 23:34:03.964 (0xFBE7):encoder count: 636.0  0.0  0.0  0.0 [I] 2021-04-23 23:34:04.472 (0xFBE7):encoder count: 1292.0  0.0  0.0  0.0 [I] 2021-04-23 23:34:04.980 (0xFBE7):encoder count: 1949.0  0.0  0.0  0.0 [I] 2021-04-23 23:34:05.488 (0xFBE7):encoder count: 2609.0  0.0  0.0  0.0 [I] 2021-04-23 23:34:05.996 (0xFBE7):encoder count: 3263.0  0.0  0.0  0.0 [I] 2021-04-23 23:34:06.504 (0xFBE7):encoder count: 3922.0  0.0  0.0  0.0 [I] 2021-04-23 23:34:07.012 (0xFBE7)encoder count: 4584.0		0.0		0.0		0.0
  • 在控制电机1逆时针转动时候,编码器1(第一列)逐渐减少则为正常
david@david-MS-7808:~/pibot_ros/pypibot/transport$ python test_motors.py -1000 0
[I] 2021-04-23 23:35:51.575 (0xD657):encoder count: 5402.0		0.0		0.0		0.0
[I] 2021-04-23 23:35:52.083 (0xD657):encoder count: 4772.0		0.0		0.0		0.0
[I] 2021-04-23 23:35:52.591 (0xD657):encoder count: 4122.0		0.0		0.0		0.0
[I] 2021-04-23 23:35:53.099 (0xD657):encoder count: 3473.0		0.0		0.0		0.0
[I] 2021-04-23 23:35:53.607 (0xD657):encoder count: 2822.0		0.0		0.0		0.0

标签: 单圈碳膜电位器wh54k7单圈电位器ksp102

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台