Skip to content

Kubo: Overview

Connor Novak edited this page Apr 26, 2018 · 35 revisions

Kubo head-on image

Overview

Kubo is a Kubota tractor being developed as the first large Olin unmanned ground vehicle (UGV) to be run using C++, ROS, and Arduino rather than LabView hardware and software.

Documentation

  • Ackermann Steering: Overview of Ackermann steering and explanation of corresponding ROS data type (documentation)
  • Hardware: List of the current navigational units, computational platforms, sensors, and other electrical hardware currently installed on Kubo as part of its autonomous system. (documentation)
  • NUC: Documentation on Kubo's mid-brain, its interface, and how to use it. (documentation)
  • Roboclaw Setup: Steps taken to set up Roboclaw Motor Controller for Kubo hind-brain (documentation)
  • TF Transforms: Documentation of coordinate frames and references for Kubo and its sensors. (documentation)

Missions

  • IMPACT-HCP: Developing an autonomous supply chain for the army's front-line using autonomous ground and air vehicles to transport goods.
  • Target Tracking: Kubo follows a set distance behind a moving object, rejecting disturbances and stopping when the object stops. Can be used to follow people or other vehicles.
  • Road Repair: Kubo uses an autonomously controlled box blade and grading blade to repair a weather-damaged or erosion-damaged road template. (documentation)

Robot Behaviors

  • GPS Waypoint Navigation: Uses GPS data from robot to publish heading and velocity commands to navigate robot to pre-selected waypoints
  • LiDar Obstacle Avoidance Uses LiDar data from Hokuyo to publish change in steering to avoid obstacles. (documentation)

Running Teleop System

  1. Plug in the Logitech Gamepad F310. Then, in a new Terminal, execute roslaunch gravl teleop.launch.
  • This launch file initializes the software necessary to read the controller and publish heading and velocity commands to /teledrive.
  1. In a new Terminal, execute rosrun gravl DriveState DriveState.cpp.
  • This command starts the program that takes commands from either /autodrive or /teledrive and publishes them to /drive, to which the hind brain listens.
  1. Turn on the power to Kubo's electronics.
  2. Plug in the Tractor Teensie. Then, in a new Terminal, execute rosrun rosserial_python serial_node.py _port:=[insert port here] baud:=115200. Test steering and velocity actuators BEFORE moving onto the next step.
  • Example port: /dev/ttyACM0. Use Arduino IDE to see to which port the Teensy has connected.
  • This command connects to the Teensie via rosserial. The port (usually in the form /dev/ttyACM#) can be found through the Arduino IDE by selecting "Tools", then mousing over "Ports". This command also specifies the baud rate of the connection.
  1. Turn Kubo's wheels to the straight position and install the steering column pin; Attach the actuator clip to the velocity pedal.
  2. Release the brakes; Verify that velocity pedal is released; Start the engine.
Control L. Joy R. Joy B Btn A Btn L. Bump R. Bump
Function Vel. Pedal Steer E-Stop Activate Auto Mode Teleop Mode
  1. After estop, stop all terminals, remove steering pin, restart electronics, and reinstall steering pin. Currently, the velocity actuator does not recover from e-stop and must undergo a full system cycle to respond.

Links

  1. Kubota B7510 Data Page (link)
Clone this wiki locally