Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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.
- Ubuntu 16
- ROS Kinetic
** TURNING CONSTRAINTS**
Left max: 45 degrees Right max: 30 degrees
- 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)
Running Teleop System
Make sure the steering is straight, the brake is off, the RPM is set to the minimum, and the tractor is set to low gear.
Turn the tractor electronics on
Plug controller and Teensy into your laptop
Run roslaunch hindbrain_min.launch
Add pins, start tractor, raise hitch
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
- In a new Terminal, execute
rosrun gravl DriveState DriveState.cpp.
- This command starts the program that takes commands from either
/teledriveand 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 Vert||R. Joy Horiz||B Button||A Button|
|Function||Vel. Pedal||Steer||E-Stop Toggle||Auto Toggle|
- 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.