Skip to content

Kubo: Ackermann Steering

Connor Novak edited this page Feb 1, 2020 · 8 revisions

Overview

    Kubo drives via Ackermann Steering, controlled via a linear actuator on the velocity pedal and a rotational actuator on the steering wheel. The basic concept behind Ackermann steering is that the inner wheel in a turn turns a greater angle than the outer wheel to prevent excess wear and increase steering effectiveness. For more on Ackermann steering, read the following RcTek article (link).

    Ackermann steered vehicles function differently from differential-driver vehicles in that they cannot instantly reach a given heading, and must instead approach a heading by turning the wheels, driving forward for a certain period of time, then straightening the wheels. The hind-brain deals with Ackermann steering by taking in a ROS Ackermann steering message (reference)

Setup for Ackermann Steering Class

Setup Ackermann Steering Messages - Arduino

  • Installed ROS ackermann steering messages via sudo apt-get install ros-indigo-ackermann-msgs
  • Re-setup rosserial on arduino IDE (tutorial)
  • Go into /opt/"your arduino ide"/libraries/ros_lib/ArduinoHardware.h and find the following line of code:
  • Update the line to look like this:

Setup Ackermann Steering Messages - Python

  • Install ROS ackermann steering messages via sudo apt-get install ros-kinetic-ackermann-msgs
  • Use catkin_make -DCATKIN_WHITELIST_PACKAGES="ackermann_msgs" (after doing this, you may want to use catkin_make -DCATKIN_WHITELIST_PACKAGES="")
  • At the top of your python file include the line from ackermann_msgs.msg import AckermannDrive
  • Documentation for ackermann_msgs (Documentation)
  • To use in code:
Clone this wiki locally