SNACBot is a 5-axis robot arm that autonomously feeds people snacks. It uses computer vision via a gripper-mounted depth-sensing camera (Intel Realsense D435) to detect food and open mouths and calculate poses for each. More details can be found in report.pdf.
face_detection/
- ROS Service to extract open mouth posesnacbot_common/
- Reusable code & moveit interfacessnacbot_controller/
- Dynamixel servo controller configs, lauch files; MoveIt action server clientssnacbot_description/
- URDF and mesh data that describes the armsnacbot_machine/
- contains main state machine script and main lauch filessnacbot_moveit/
- MoveIt configuration packagesnacbot_snacbot_arm_ikfast_plugin/
- Inverse kinematics solution plugin for MoveIt (IKFast with TranslationDirection5D IK Type)snacket/
- ROS service for detecting snacks and calculating grasp pose (utilizes YOLOv5)
ROS Version: Noetic
Dependencies
- MoveIt (
sudo apt-get ros-noetic-moveit
) - realsense_ros
- dynamixel_workbench and dynamixel_workbench_msgs
Build SNACBot in your catkin workspace
$ cd ~/catkin_ws/src
$ git clone https://github.com/hvak/SNACBot.git
$ cd ~/catkin_ws
$ catkin build
In separate terminals, run:
$ roslaunch snacbot_machine snacbot.launch
$ roslaunch snacbot_controller dynamixel_controller.launch
$ roslaunch snacbot_machine state_machine.launch