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/
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.
Documentation for our code can be generated via the rosdoc_lite tool.
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 by rosdep install packageName
on packages igvc, igvc_control, and igvc_description . (NOTE: Be sure to source devel/setup.sh
before referencing the igvc or igvc_msgs packages.)
Join the chat at https://robojackets.slack.com/
- ardupilot
Used for reading velocity and acceleration of robot from IMU
- Publishes:
- imu <sensor_msgs::Imu>
- Devices:
- /dev/igvc_imu
- Publishes:
- joystick_driver
Configures joystick controls
- Publishes:
- motors <igvc_msgs::velocity_pair>
- Subscribes:
- joy <sensor_msgs::Joy::ConstPtr>
- Publishes:
- light_controller
Controls Lights and EStop
- Publishes:
- robot_enabled <Bool>
- battery <UInt8>
- Subscribes:
- lights <igvc_msgs::lightsConstPtr>
- Devices:
- /dev/igvc_light_arduino
- Publishes:
- 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>
- Publishes:
- local_mapper
Transforms one or more given point clouds locally
- Publishes:
- map <PointCloud<PointXYZ>>
- Subscribes:
- (dynamic) <PointCloud<PointXYZ>::ConstPtr>
- Publishes:
- mapper
Transforms one or more given point clouds
- Publishes:
- map <PointCloud<PointXYZ>>
- Subscribes:
- (dynamic) <PointCloud<PointXYZ>::ConstPtr>
- Publishes:
- 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
- Publishes:
- odometer
Converts wheel velocities to odometry message
- Publishes:
- odometry <nav_msgs::Odometry>
- Subscribes:
- encoders <igvc_msgs::velocity_pair>
- Publishes:
- path_follower
Sends instructions to motors from the current path
- Publishes:
- motors <velocity_pair>
- lights <lights>
- Subscribes:
- path <action_pathConstPtr>
- Publishes:
- 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>
- Publishes:
- 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>
- Publishes:
- 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>
- Publishes:
- 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>
- Publishes:
- rviz_plugins
Custom plugins for rviz
- Subscribes:
- battery <std_msgs::UInt8>
- robot_enabled <std_msgs:Bool>
- encoders <igvc_msgs::velocity_pair>
- Subscribes:
- scan_to_pointcloud
Converts Lidar scan to point cloud
- Publishes:
- scan/pointcloud <PointCloud<PointXYZ>>
- Subscribes:
- scan <sensor_msgs::LaserScan::ConstPtr>
- Publishes:
- serial
- system_stats
- tests
- Publishes:
- joy <sensor_msgs::Joy>
- Subscribes:
- motors <igvc_msgs::velocity_pair::ConstPtr>
- Publishes:
- waypoint_source
- Publishes:
- waypoint <PointStamped>
- Subscribes:
- odom_combined <geometry_msgs::PoseStampedConstPtr>
- map_origin <geometry_msgs::PointStampedConstPtr>
- Publishes: