Skip to content
/ ARC Public

Group 44 2017 senior project code repository

Notifications You must be signed in to change notification settings

TaoChenOSU/ARC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS461 Senior Capstone Project: ARC

ARC header image

The purpose of ARC is to determine if it is possible to build an autonomous RC vehicle using commodity hardware.
We will try to use relatively inexpensive parts, including cameras, computers, and an RC vehicle used as the base, with minimal fabrication. All of the software used is open source, allowing users to tinker and adapt the project to their needs.


Research for ARC took us down several paths as we tested platforms for use in our project. We chose platforms that we could run in simulation to speed up the development process.

We found that the Robotics Operating System (ROS) provides a good base to build from and, consequently, the platforms we chose are implemented on ROS.

Two such simulation environments were Georgia Tech's AutoRally platform and the Stage simulation platform.

Below are instructions for installing and running GT AutoRally and Stage with the ARC project.


GT AutoRally Instructions

Step-by-step instructions on how to run our implementation of the GT AutoRally simulation platform.

  1. Go to GT AutoRally and follow the instructions to install the AutoRally platform. Be sure to follow the instructions carefully and completely, failure to do so may result in an incomplete installation that will require extended time to troubleshoot.

NOTE: It is assumed from this point on that you have already gone through the "Autonomous Driving in Simulation" instructions at GT AutoRally.
The following instructions are intended for after completing the GT AutoRally setup and simulation instructions above.
At this point you should be able to run GT AutoRally

  1. Keep all simulation configuration according to the AutoRally specifications.
    e.g. stateEstimator's InvertY and InvertZ values.

  2. Navigate to the work space where you put the AutoRally package. And then go to the src/autorally directory.

NOTE: All files/folders modified and provided by ARC for AutoRally are found in the arc_autorally folder.

  1. Under autorally_description/urdf, replace the autoRallyPlatform.urdf.xacro file with file of the same name that we provide.

  2. Copy the world folder we provide to autorally_description/models.

  3. Under autorally_description, there is a file named empty_sky_AR.world. Copy the code below to the end of the file (before the last ""):
    model://urdf/models/world

  4. Under autorally_gazebo/launch, there is a file named autoRallyTrackWorld.launch, comment out the last node (named spawn_track).

  5. Copy the autorally_smartdriving folder to src/autorally.

  6. Open a terminal, navigate to your work space. The directory that contains devel/, src/ and build/.

  7. Use catkin_make to compile the package.

  8. Open the bashrc by typing in gedit ~/.bashrc.

  9. At the bottom of the file, add these two lines: source workspace_directory/devel/setup.bash source workspace_directory/src/autorally/autorally_util/setupEnvLocal.sh (Replace the workspace_directory with your actually work space directory)

  10. Copy the run_autorally.sh we provide to your work space.

  11. Open another terminal, navigate to your work space and run the run_autorally.sh script.

run_autorally.sh script automates the initialization processes of the GT AutoRally simulation.

  1. A single terminal window opens opens with sub-divided windows using tmux.

  2. Applications necessary for AutoRally will open next, including Gazebo and rqt_publisher. These applications along with other processes are launched by the script within different tmux sub-windows in the main terminal window.

  3. Find the application window (seperate from the terminal window) titled "rqt_publisher".

  4. Go to rqt_publisher and make sure the topics created during initial setup are still there:
    /runStop /chassisState /constantSpeedController/speedCommand

If rqt_publisher does not have those three topics in the main part of the window, go back to the setup instructions and add them.

  1. Make sure /runStop is set to true and speed (under /speedCommand) is set to 3. Then check the boxes to the left of those three topics.

  2. Run these two commands in two of the tmux windows:
    roslaunch autorally_smartdriving autorally_configuration.launch roslaunch autorally_smartdriving move_base.launch

  3. Go back to the rqt_publisher window and uncheck the constantspeedcontroller message.

  4. Terminate the waypointfollower and the constantspeedcontroller.

  5. Copy the rviz config file we provide.

  6. roslaunch autorally_smartdriving auto_turn.launch

  7. run rviz with the rviz config file. rosrun rviz rviz

  8. Now you can set goals through Rviz and the car should go towards the goal autonomously



Stage installation instructions


All files modified by ARC for use in the Stage simulator are found in the arc_stage folder provided.

  1. Extract the NewArc compressed file. In it there will be two packages named "smart driving" and "stage_launch".
  2. Create a ROS work space, and copy the two packages to the src folder inside the new work space.
  3. On the root of the new work space, run "catkin_make".
  4. On a new terminal, run "roscore".
  5. On the original terminal, run "source devel/setup.bash".
  6. Run "roslaunch stage_launch arc_stage.launch".
  7. A stage simulator and Rviz should show up.
  8. The red blocks on the simulator can be moved around.
  9. Use the "2D Nav Goal" on Rviz to tell the car where to go.

Note:

  1. For all these to work, the autorally_smartdriving package in AutoRally must be functional, because this simulation will launch the "odom" node from there. Also, the topic that the odom node subscribes to should change to "/base_pose_ground_truth". The source code is located in {AutoRally_workspace}/src/autorally/autorally_smartdriving/src/Odom/odom.cpp.
  2. To display rplidar lidar data, uncomment line 48 to 50 in the arc_stage.launch file. Lidar data is not currently used to decide paths, but instead just to visualize the data on Rviz.
  3. If incorparating other external lidars to the car frame, add more "laser_scan_sensor: {}"s after line 28 in costmap_common_params.yaml, and define more rangers in arc_robot.inc. Frame names and topic names must be defined with cautions. Fram names must be unique.

ARC Parts list

The parts list for ARC is a compilation of parts, with prices, used for this project. ARC is designed to be modular, meaning that you can choose the quality/brand component you want to use. Consider this list a minimum-components-needed list. Feel free to add to the number of components used for greater accuracy in data.
Note: The Intel NUC and the RPi3/Arduino require an external monitor, keyboard, and mouse. These would be an additional cost, should you need to purchase them.

Part Description Price
-----------------------------
AutoPilot
Raspberry Pi 3 $45
PXFmini $77.73
OR
PWM Controller $3.95
Arduino $39.90
-----------------------------
Ublox Neo-M8N GPS with Compass $8.85
UM7-LT Orientation Sensor $139.95
3DR radios (2) $100.00
LeddarTech Leddar Evaluation Kit $299 $299.00
Intel NUC Skull Canyon $$994.98
SlamTec RPLIDAR $199.00
Sub total $1,741.78
Totals
With Autopilot Uses PXFMini/RPi3 $1,865
Without Autopilot (Uses PWM/Arduino) $1,785.63
With RC Car
Traxxas Summit RC car $549.95
Totals
With Autopilot Uses PXFMini/RPi3 $2,414.46
Without Autopilot (Uses PWM/Arduino) $2,335.58

The above table was generated using Markdown Table Generators by copy/pasting from Google Sheets using the instructions from that site.

About

Group 44 2017 senior project code repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published