wheel_can_driver(轮组驱动模块)

作者 版本 修改时间
dy.zhang v1.0 2025-2-11

模块功能

  • 该模块接收其他模块发来的线速度角速度指令,驱动底层按照指令运动。
  • 同时输出当前轮胎的速度,编码器位置以及四个轮胎的总电流值。

输入接口(As Subscriber)

  • /cmd_vel,类型为geometry_msgs/msg/Twist。其中linear.x以及angular.y代表机器人的线速度与角速度,单位为米/每秒。
  • /wheels/reset,类型为std_msgs/msg/Empty。接收到该消息后,机器人重启底层驱动器。

输出接口

  • /odom_wheel,类型为nav_msgs/msg/Odometry,代表机器人的标准里程信息。
  • /instant_power,类型为std_msgs/msg/Float32MultiArray,代表机器人当前的轮胎电流消耗,共5个值形成数组,第一个数值为总电流,后面四个分别为各个电机的电流。
  • /encoder_raw,类型为std_msgs/msg/Float32MultiArray,代表机器人当前四个轮子的编码器原始数据(已转化为单位为米的数值)
  • /speed_raw,类型为std_msgs/msg/Float32MultiArray,代表机器人当前四个轮子的编码器的当前速度(已转化为单位为米的数值)
  • /error,类型为std_msgs/msg/String,代表提示给用户的错误信息。

参数信息

  • robot_width,机器人横向轮间距。
  • v2rpm,机器人各个轮胎下发的转速绝对值=v*v2rpm
  • enc_pluse_per_meter每米编码器的增长数值

其它信息

  • 线速度角速度向左右轮速度的计算公式为:

    vl=cmd.linear.x-self.robot_width*cmd.angular.z/2
    vr=cmd.linear.x+self.robot_width*cmd.angular.z/2
  • 左右轮编码器向机器人位置位移的转化:

作者:admin  创建时间:2025-02-11 14:09
最后编辑:admin  更新时间:2025-04-13 15:00