Skip to content

jones2126/ros1_lawn_tractor_ws

Repository files navigation

This is an Ackermann steering vehicle (i.e. the size of a lawn tractor) that uses move base flex and teb planner.  For simulation purposes we are leveraging Gazebo to create odom messages.  In the real world the vehicle will be localized using precision (i.e. RTK) GPS. The current displayed map in RVIZ was manually created to represent a large open field because I want to test the robot's ability to drive a Dubins path without dealing with obstacles.  Jeff Sampson did a lot of “heavy lifting” to create this repository including the Ackermann style URDF.  

We currently have a Zoom call on Thursday’s at Noon (ET) to discuss this platform and related items.  You are welcome to join in.  You can also join the Slack Group for more details.

To replicate this, start with a clean Ubuntu 20.04 build, load ROS Noetic full desktop and install the following ROS Dependencies:
    • $ sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
    • $ sudo apt install python3-rosdep
    • $ sudo rosdep init
    • $ rosdep update

Next download this repository: $ git clone https://github.com/jones2126/ros1_lawn_tractor_ws.git

I use a Tkinter gui and script to make it easier to run the launch files.  It requires xdotool.  Therefore $ sudo apt-get install xdotool

Update .bashrc
$ nano ~/.bashrc (i.e. At the very end of your ~/.bashrc file add: source ~/ros1_lawn_tractor_ws/devel/setup.bash)

Install additional binaries that are required:
    • $ sudo apt-get install ros-noetic-effort-controllers
    • $ sudo apt-get install ros-noetic-ackermann-msgs
    • $ sudo apt-get install ros-noetic-navigation
    • $ sudo apt-get install ros-noetic-teb-local-planner
    • $ sudo apt-get install ros-noetic-move-base-flex
    • $ sudo apt install python3-pip
    • $ pip install dubins

You should now ready to start up Gazebo, run move_base_flex, Rviz and run the pre-planned Dubins path mission.  The suggested way to start is:
    • $ cd ~/ros1_lawn_tractor_ws/
    • $ python3 ros_starter.py
Then one-by-one, click buttons 1, 2, 3 and the "Run mmbf mission".  Wait for each launch file to complete, then click the next one. If you want to see results from cmd_vel you can click the 5th button.

The alternative way of starting the full package (i.e. without using ros_starter.py):
    • $ roslaunch ackermann_vehicle cub_cadet_gazebo.launch
    • $ roslaunch ackermann_vehicle nav_newteb.launch
    • $ rviz -d ~/ros1_lawn_tractor_ws/src/ackermann_vehicle/maps/tractor.rviz

The folder “project_notes” is for documents that get created in the development effort that might be useful.

The next step are:
1. Determine how to have the robot maintain speed while running the mission path.
2. Finish the physical implementation of the lawn_tractor.
3. Test and tune software.

The intended use case is agriculture related.  I have started with a Cub Cadet lawn tractor before implementation on my John Deere 5055.  The major control components include: electric steering motor, Cytron motor controller, angle sensor, Super Servo for hydrostatic transmission control, and a GNSS capable GPS which receives RTK corrections from my on-site base station.  

The low-level control software(i.e. embedded code) runs on:
a. TTGO LoRa Oled v1 - one for radio control and one on the tractor
b. Two Teensy 3.2 boards for wheel odometry
The embedded code is work-in-process and located here: https://github.com/jones2126/lawn_tractor_embedded_code  

A separate catkin_ws for notes and additional work in progress is at https://github.com/jones2126/tractor_laptop_ROS_workspace

In addition to Jeff Sampson, special thanks to Matt Droter, Vinney Ruia and Juan Eduardo Riva for all their help and contributions leading to this point.

Zoom meeting (Thursdays at Noon (ET)) https://us02web.zoom.us/j/82088036016?pwd=K2lLc1FiWm9MU0dzRStxM2J2b3dpQT09#success

Slack(Lawn Tractor Automation): https://app.slack.com/client/T8WP3RHH7/C8YBK20LX

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published