-
Notifications
You must be signed in to change notification settings - Fork 9
Kubo: Overview
Connor Novak edited this page Oct 27, 2018
·
35 revisions
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.
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)
- 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)
- 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)
- 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
.
- 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.
- Turn on the power to Kubo's electronics.
- 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.
- Turn Kubo's wheels to the straight position and install the steering column pin; Attach the actuator clip to the velocity pedal.
- 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 |
- 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.