UT Spot Autonomy Stack
- ROS
- System dependencies
sudo apt install qt5-default libqt5websockets5-dev libgoogle-glog-dev libgflags-dev
- AMRL Fork of Clearpath Spot ROS Interface, forked from https://github.com/clearpathrobotics/spot_ros
- Clone and add repo paths to
ROS_PACKAGE_PATH
- amrl_msgs
- spot_autonomy
- Run
make
- Add commands to do step 1. to bashrc (otherwise need to repeat this step for launching spot_autonomy in every new shell session).
- Initial Setup Only: Replicate
launch/start_clearpath_spot.launch.example
tolaunch/start_clearpath_spot.launch
, filling in your Spot robot username, password, and IP address. - [Optional, if running under docker]:
Open an interactive shell to the docker instance (run any ros/spot modules here):
cd /home/amrl-user/ros-docker docker-compose up
docker exec -it ros-docker_app_1 bash
roslaunch spot_autonomy start_all.launch
- D Switch: Manual and Autonomous Control
- "0" (away): Autonomous Control
- "1" (neutral): Stop Robot
- "2" (back): Manual Control
- A Button: Start/Stop
rosbag record
While in Manual Control:
- Left Joystick: Yaw Control
- Right Joystick: Translation Control
- B Switch: Sit and Stand
- "0" (down): Sit
- "1" (neutral): Resume Manual Control
- "2" (up): Stand
- F Switch: Speed Control
- "0" (away): Full Speed
- "1" (back): ~70% Speed (we cannot customize this)
In addition to the "F" switch, the controller has a set of four "Trim" sliders that change the zero point of the joysticks (and thus their maximum and minimum values). These sliders emit audible chirps. A higher-pitched chirp is emitted when the neutral zero point is set.
- Left bumper: Press and hold for manual control
- Right bumper: Press to enable autonomous mode, press any other button to go out of autonomous mode
- Left joystick + LB: Yaw control
- Right joystick + LB: Translation control
- X button + LB: Stand up
- Square button + LB: Sit down
- Triangle button + LB: Start rosbag record
- Circle button + LB: Stop rosbag record
The rosbag record command is defined in config/joystick.lua
.