Skip to content

offroad-robotics/terrain_classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Terrain Classifier for the Spot Quadrupedal Mobile Robot

Spot Terrain Classifier

This package designed for Spot on ROS noetic can classify the terrain traversed by the robot based on the proprioceptive sensor signals in real time. This packages should be cloned into the src of your workspace alongside the spot_ros package by clearpath.

Files

  • terrain_classifier.py is the ROS node that published the /classification topic. If CONFIDENCE is set to true, the classifier will also publish the /confidence topic. The other four constants are tunable parameters.
  • terrainHeader.py holds the function definitions used in terrain_classifer.py.
  • image.py is a ROS node that uses openCV to publish the /processed_image video feed. The video feed overlays the classification on Spot's frontleft camera feed.
  • classification_processing.py is a python script that pulls all the relevant data from a rosbag.

Install Dependencies

Python Packages

pip install numpy
pip install pandas
python -m pip install -U matplotlib
pip install seaborn
pip install -U scikit-learn
python -m pip install scipy
pip install mrmr-selection
pip install opencv-python

ROS packages

sudo apt install python3-opencv

Run the Nodes

To run the classifier:

cd your_ws
source devel/setup.bash
rosrun spot-terrain-classifier terrain_classifier.py

The node will take ~30sec to train the classifier then it will start publishing classifications. The training data can be found in the training data folder.

To run the image feed:

rosrun spot-terrain-classifier image.py

To process rosbags, change the bag_name and path variables to the bag you want to process and run:

cd your_ws/src/spot-terrain-classifier/src/
python classification_processing.py

The script will save the rosbag data as a csv in the save_path directory

Full Video

Terrain Classification Video

Paper Details

  • Title: Terrain Classification for the Spot Quadrupedal Mobile Robot Using Only Proprioceptive Sensing
  • Authors: Sophie Villemure, Jefferson Silveira, Joshua A. Marshal.
  • Conference: IEEE CCECE 2024
  • Year: 2024

Citation

If you use this repository in your research, please cite:

S. Villemure, J. Silveira and J. A. Marshall, "Terrain Classification for the Spot Quadrupedal Mobile Robot Using Only Proprioceptive Sensing," 2024 IEEE Canadian Conference on Electrical and Computer Engineering (CCECE), Kingston, ON, Canada, 2024, pp. 448-452, doi: 10.1109/CCECE59415.2024.10667168.
  @INPROCEEDINGS{10667168,
      author={Villemure, Sophie and Silveira, Jefferson and Marshall, Joshua A.},
      booktitle={2024 IEEE Canadian Conference on Electrical and Computer Engineering (CCECE)}, 
      title={Terrain Classification for the Spot Quadrupedal Mobile Robot Using Only Proprioceptive Sensing}, 
      year={2024},
      volume={},
      number={},
      pages={448-452},
      doi={10.1109/CCECE59415.2024.10667168}}
  }
}

Abstract

Quadrupedal mobile robots can traverse a wider range of terrain types than their wheeled counterparts but do not perform the same on all terrain types. These robots are prone to undesirable behaviours like sinking and slipping on challenging terrains. To combat this issue, we propose a terrain classifier that provides information on terrain type that can be used in robotic systems to create a traversability map to plan safer paths for the robot to navigate. The work presented here is a terrain classifier developed for a Boston Dynamics Spot robot. Spot provides over 100 measured proprioceptive signals describing the motions of the robot and its four legs (e.g., foot penetration, forces, joint angles, etc.). The developed terrain classifier combines dimensionality reduction techniques to extract relevant information from the signals and then applies a classification technique to differentiate terrain based on traversability. In representative field testing, the resulting terrain classifier was able to identify three different terrain types with an accuracy of approximately 97%.

Additional Material

About

Terrain Classification for the Spot Quadrupedal Mobile Robot Using Only Proprioceptive Sensing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages