Git Product home page Git Product logo

autonomous_snowplow_2023's Introduction

MSU, Mankato's 2023 Autonomous Snowplow

YT video demo

Metapackage including ROS packages, configurations, and launch files used on the 2022-2023 MNSU autonomous snowplow project.

Sensor Pipeline:

Sensor Descriptions:

  • Trimble GPS reciever, swiftnav antenna, LPMS U3 IMU, 2 1024 ppr encoders, Intel d435i RGB-D camera

  • robot_localization EKF fusing data from the 3 sensors

    • Wheel odometry stream from roboteq_diff_driver - accesses motor controller through C++ api to receive encoder tick count, current in Amps through each motor channel, and temperature of motor controller
    • IMU data stream from openzen_ros C++ driver
      • Filtered & Fused orientation from magnetometer, gyro, and accelerometer data using IMU madgwick filter
    • GPS data stream from nmea_socket_pub, parsed NMEA sentences converted to robot coordinate frame using navsat_transform

Intel D435i RGB-D camera used in RTABmap package for SLAM/mapping

  • Parameters and filters located here

Image Pipeline:

  • RGBD_Sync nodelet: Synchronize camera messages, throttle data to improve SLAM performance
  • points_xyzrgb creates pointcloud2 data from synchronized RGB-D images, used for 3-D voxel obstacle layer
  • obstacle_detection package used to differentiate ground & obstacles, used for clearing & marking in costmaps
  • RTABmap_ros used to generate & store grid map from RGB-D images, will include LiDAR for mapping when functional

Buffer_waypoints package is a move_base action client that allows following of multiple waypoints; will be upgraded to state machine/behavior tree in future

  • subscribes to /initialpose topic published by RVIZ, adds clicked poses from that topic to a waypoint queue & begins navigating when prompted

Waypoint_follower node is similar to buffer_waypoints but includes functionality with the react web app & a workaround to move_base not changing status when waypoint is reached

Web Interface: React App that allows teleop, video stream, and autonomous functionality

nmea_socket_pub:

  • reads GPS/GNSS NMEA sentence streams over specified TCP port, parsing GGA & GST sentences to both applicable GPS fix data, as well as a published covariance matrix
    • covariance matrix updated in real-time, so the kalman filter fused data takes more or less accurate GPS data into account

OpenCV scripts used to convert PNG images of a map/blueprint into binary for use in map servers.

for more technical detail on the system and explanation on software architecture decisions see this directory

Additional Project outcomes:

Operation

On machine running ROS master:

roslaunch navstack_pub camera.launch
rosrun web_video_server web_video_server

On rpi running web server & website client node (on same ROS master):

rosrun waypoint_follower driver
roslaunch rosbridge_server rosbridge_server.launch
serve -s build #(in react app folder; If apache not configured & react app is built)
*(to access from other network, configure husarnet and join p2p network)

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.