GithubHelp home page GithubHelp logo

azheng36 / igvc-software Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robojackets/igvc-software

0.0 0.0 0.0 318.33 MB

The code base for our Intelligent Ground Vehicle Competition team.

Home Page: https://robojackets.org/teams/intelligent-ground-vehicle-competition/

License: MIT License

Shell 0.20% CMake 0.31% C++ 34.89% C 60.64% Arduino 0.21% Makefile 1.05% Processing 2.06% Assembly 0.43% Python 0.15% Perl 0.06%

igvc-software's Introduction

RoboJackets IGVC Build Status

Welcome to the RoboJackets IGVC software repo! This document will give you a brief description of the repo's layout and some simple instructions for building the documentation and project. For more detailed information, please visit wiki.robojackets.org

For online API documentation generated by Doxygen, go to robojackets.github.io/igvc-software/

Folder Structure

The repo is comprised of two ROS packages and one sandbox folder for miscelaneous resources. FOLDERS

  • igvc This is the primary ROS package that houses all of our source code.
    • launch This folder holds all of our ros launch files that start one or more ros nodes
    • src This folder contains ros nodes which does all the computation and is modular
  • igvc_msgs This package defines custom message types for our code.
  • sandbox This folder contains miscelaneous resources. This includes source code for our robot's Arduinos and Ardupilot IMU, udev rules for our robot's hardware, and other files.

Building Documentation

Documentation for our code can be generated via the rosdoc_lite tool.

Building Code

This repository should be cloned into the src directory of a catkin workspace. Use catkin_make in the workspace directory to build the code. Dependencies can be installed with rosdep install igvc. (NOTE: Be sure to source devel/setup.sh before referencing the igvc or igvc_msgs packages.)

Join the chat at https://gitter.im/RoboJackets/igvc-software

Node Overview

  • ardupilot Used for reading velocity and acceleration of robot from IMU
    • Publishes:
      • imu <sensor_msgs::Imu>
    • Devices:
      • /dev/igvc_imu
  • joystick_driver Configures joystick controls
    • Publishes:
      • motors <igvc_msgs::velocity_pair>
    • Subscribes:
      • joy <sensor_msgs::Joy::ConstPtr>
  • light_controller Controls Lights and EStop
    • Publishes:
      • robot_enabled <Bool>
      • battery <UInt8>
    • Subscribes:
      • lights <igvc_msgs::lightsConstPtr>
    • Devices:
      • /dev/igvc_light_arduino
  • line_detector Processes image data to find the white lines
    • Publishes:
      • filt_img <sensor_msgs::ImageConstPtr>
      • line_cloud <PCLCloud>
    • Subscribes:
      • image_raw <sensor_msgs::ImageConstPtr>
  • local_mapper Transforms one or more given point clouds locally
    • Publishes:
      • map <PointCloud<PointXYZ>>
    • Subscribes:
      • (dynamic) <PointCloud<PointXYZ>::ConstPtr>
  • mapper Transforms one or more given point clouds
    • Publishes:
      • map <PointCloud<PointXYZ>>
    • Subscribes:
      • (dynamic) <PointCloud<PointXYZ>::ConstPtr>
  • motor_controller Processes data from motors and encoders
    • Publishes:
      • encoders <igvc_msgs::velocity_pair>
    • Subscribes:
      • motors <igvc_msgs::velocity_pair::ConstPtr>
      • robot_enabled <std_msgs::BoolConstPtr>
    • Devices:
      • /dev/igvc_motor_arduino
  • odometer Converts wheel velocities to odometry message
    • Publishes:
      • odometry <nav_msgs::Odometry>
    • Subscribes:
      • encoders <igvc_msgs::velocity_pair>
  • path_follower Sends instructions to motors from the current path
    • Publishes:
      • motors <velocity_pair>
      • lights <lights>
    • Subscribes:
      • path <action_pathConstPtr>
  • pathplanner Finds the best path based on current orientation, map, and waypoint
    • Publishes:
      • path_display <nav_msgs::Path>
      • path <igvc_msgs::action_path>
      • expanded <pcl::PointCloud<pcl::PointXYZ>>
    • Subscribes:
      • map <pcl::PointCloud<pcl::PointXYZ>::ConstPtr>
      • odom_combined <geometry_msgs::PoseStampedConstPtr>
      • waypoint <geometry_msgs::PointStampedConstPtr>
  • pidtester Tests pid by setting velocity to 1 then back to 0
    • Publishes:
      • motors <velocity_pair>
    • Subscribes:
      • robot_enabled <std_msgs:BoolConstPtr>
      • encoders <velocity_pairConstPtr>
  • pose_tracker Transforms orientation and position based on imu and gps
    • Publishes:
      • odom_combined <geometry_msgs::PoseStamped>
      • map_origin <geometry_msgs::PointStamped>
    • Subscribes:
      • imu <sensor_msgs::ImuConstPtr>
      • gps_odom <nav_msgs::OdometryConstPtr>
  • pothole_detector
    • Publishes:
      • pothole_filt_img <sensor_msgs::ImageConstPtr>
      • pothole_thres <sensor_msgs::ImageConstPtr>
      • pothole_cloud <PCLCloud>
    • Subscribes:
      • usb_cam/image_raw <sensor_msgs::ImageConstPtr>
  • rviz_plugins Custom plugins for rviz
    • Subscribes:
      • battery <std_msgs::UInt8>
      • robot_enabled <std_msgs:Bool>
      • encoders <igvc_msgs::velocity_pair>
  • scan_to_pointcloud Converts Lidar scan to point cloud
    • Publishes:
      • scan/pointcloud <PointCloud<PointXYZ>>
    • Subscribes:
      • scan <sensor_msgs::LaserScan::ConstPtr>
  • serial
  • system_stats
  • tests
    • Publishes:
      • joy <sensor_msgs::Joy>
    • Subscribes:
      • motors <igvc_msgs::velocity_pair::ConstPtr>
  • waypoint_source
    • Publishes:
      • waypoint <PointStamped>
    • Subscribes:
      • odom_combined <geometry_msgs::PoseStampedConstPtr>
      • map_origin <geometry_msgs::PointStampedConstPtr>

igvc-software's People

Contributors

barulicm avatar kmarino avatar alextrimm avatar rmkeezer avatar alchaussee avatar jacobschloss avatar ahuynh avatar nareddyt avatar thaeds avatar jzheng84 avatar dpattison3 avatar sand500 avatar jgkamat avatar zachcmathews avatar wingedfighter avatar claire-bergman avatar jasongibson274 avatar gitter-badger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.