< >
Home » linorobot入门教程 » linorobot入门教程-里程

linorobot入门教程-里程

linorobot入门教程-里程

说明:

  • 里程信息用于评估机器人相对于原地的位置。
  • 为了使用里程信息更可靠,这里使用了两种来源的里程信息
  • 主要来源是安装在电机上的编码器,机器人的线速度通过计算随时间变化的脉冲数并发布到/raw_vel话题来计算。
  • 然而,计算机器人角速度的方法可能由于噪音和车轮滑动而容易产生误差
  • 使用IMU通过测量陀螺仪的转速来计算机器人的角速度。
  • 订阅/raw_imu话题的节点使用AHRS算法通过imu_filter_madgwick包过滤掉IMU中的噪音
  • 滤波后的输出发布到/imu/data,以提供lino_base_node机器人的角速度和可靠的IMU数据,以用于需要加速计,磁力计和陀螺仪测量的节点。

使用rostopic查看里程:

  • 在机器人电脑执行:
roslaunch linorobot bringup.launch
  • 在开发电脑,需要打开二个终端
  • 第一个终端,执行teleop_twist_keyboard:
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
  • 第二个终端,显示里程话题
rostopic echo odom
  • 向前驱动机器人,查看第二终端输出的结果

  • 如果x轴的线速度近似等于teleop_twist_keyboard中定义的速度(即0.5 m/s)如下所示。

  • 当您向前推动时,线性速度必须为正值,在您反转机器人时为负值。

  • 如图:

请输入图片描述

  • 对于mecanum驱动机器人,您还需要检查y轴上的线速度。
  • 首先,您需要通过按SHIFT + j向左移动并按SHIFT + l向右移动机器人
  • 这一次,检查y轴的线速度。 速度必须近似等于teleop_twist_keyboard中定义的速度。
  • 当向左移动时,返回正线速度,向右移动返回负线速度
  • 接下来,逆时针旋转机器人(按teleop_twist_keyboard上的'j')
  • 并检查/odom角速度是否与teleop_twist_keyboard中定义的速度(即1 rad/s)几乎相同。
  • 顺时针为正值,逆时针为负值
  • 如图:

请输入图片描述

使用rviz查看里程信息:

  • 在机器人电脑执行:
roslaunch linorobot bringup.launch
  • 在开发电脑,需要打开二个终端
  • 第一个终端,执行teleop_twist_keyboard:
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
  • 第二个终端,打开rviz
roscd lino_visualize/rviz
rviz -d odometry.rviz
  • 通过按teleop_twist_keyboard中的'j'旋转机器人360度。
  • 检查rviz是否机器人回到初始角度。
  • 对于阿克曼转向机器人,因为它不能原地旋转,携带机器人并将其旋转360度。
  • 检查rviz是否机器人回到初始角度。
  • 如图:

请输入图片描述

  • 接下来,驱动机器人前进约1米。
  • 检查rviz机器人是否位移是约1m, rviz的每个方格都是1平方米。
  • 如图:

请输入图片描述

  • 最后,以正方形的方式驱动机器人。
  • 检查rviz是否机器人的位置大致靠近其原点
  • 如图:

请输入图片描述

问题:

  • 如果线速度符号错误,请尝试交换编码器引脚
  • 如果角速度符号不正确,请检查IMU是否以正确的方向安装(X - 朝前,Y-朝左)。
  • 如果角速度根本没有读数,请检查IMU的接线。
  • 如果rviz机器人的位移与机器人的实际位移不匹配,请检查机器人的配置 (linorobot /teensy /firmware/lib /config/lino_base_config.h)
  • COUNTS_PER_REV = no of ticks per wheel revolution (每圈的脉冲数)
  • MAX_RPM = max motor's RPM (最大电机转速)
  • WHEEL_DIAMETER = wheel's diameter (车轮直径)
  • TRACK_WIDTH = mounting plate's width (轮子间距)

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: linorobot入门教程