/spot_ros

ROS driver for controlling Boston Dynamics' Spot robot

Primary LanguagePythonOtherNOASSERTION

Spot ROS Driver

CP Spot

If you prefer ROS2, a ROS2 version of this driver is also available.

Prerequisites

You should be using ROS noetic. ROS melodic can also be used but may require modifications to build correctly.

You must install the Boston Dynamics SDK on any machine that will run the driver.

pip3 install bosdyn-client bosdyn-mission bosdyn-api bosdyn-core

Quick start

Installing the packages

Go to the source directory of your ROS workspace and clone this repository with

git clone git@github.com:heuristicus/spot_ros.git

Then, initialise the submodule for the wrapper we use to interact with the Boston Dynamics SDK

cd spot_ros
git submodule init
git submodule update

Then, install the python package containing the wrapper

pip3 install -e spot_wrapper 

Build the ROS packages

catkin build spot_driver spot_viz

Finally, remember to source your workspace.

Connecting to the robot

To test functionality, it's easiest to connect to the robot via wifi. For actual operation it is recommended to connect to the robot directly through payload ports for higher bandwidth.

Connect to the robot's wifi network, usually found at SSID spot-BD-xxxxxxxx. The password for the network is found in the robot's battery compartment.

Once connected, verify that you can ping the robot with ping 192.168.80.3.

Start a roscore on your machine with roscore.

Run the driver with the username and password for the robot, again found in the battery compartment

roslaunch spot_driver driver.launch username:=user password:=[your-password] hostname:=192.168.80.3

You can then view and control the robot from the rviz interface by running

roslaunch spot_viz view_robot.launch

Documentation

More detailed documentation can be found here

MoveIt simulation of Spot's arm

Can be found here.