This repository contains an unofficial ROS package for Anki Vector that I started as a small side project after finishing several online ROS courses. This package is essentially a wrapping of core Vector functions from Vector SDK as ROS topics, services and actions(full list below). In order to showcase the package I wrote a simple red ball tracking node which subscribes to the camera feed coming from Vector, locates the red ball using cv_bridge/OpenCV and publish Twist messages to move the robot accurdenly as you can see in the following video:
- ROSCon Fr 2019 - "How I ROSified my little Anki Vector home robot" 💬
- "RDP 039: Using Anki Vector robot with ROS with Omri Ben-Bassat" 🤖 📺
- "[Morpheus Chair] Vector ROS Simulation | T2.Ep.3" 🔨
- "[Morpheus Chair] Vector ROSDS CloudConnection | T2.Ep.4" 🔧☁️
Vector ROS project is actually divided into three separated packages, which are:
- Main package, contains message service descriptors and example nodes, such as a red ball tracker.
- Physical / "real" robot driver node - this node does the actual interface to Vector using Vector Python SDK.
- Notice this package was developed using Python 3.6 to work with Vector's SDK. 🐍
- Offers easy deployment using Docker! 🐳
- Simulated robot package for both Cozmo and Vector, created by the guys at The Construct so we can use Vector in Gazebo.
- Video tutorial showing spawn simulated Vector in ROS Developers Studio
You can find the full setup instructions at vector_ros_driver.
/vector/camera
(sensor_msgs/Image)
Vector camera feed.
/vector/cmd_vel
(geometry_msgs/Twist)
Move Vector around.
-
/vector/battery_state
-
/vector/set_head_angle
-
/vector/set_lift_height
-
/vector/anim_list
-
/vector/say_text
/vector/play_animation
Play animation by name.
beta_b0t@home:~$ rosrun image_view image_saver image:=/vector/camera
[ INFO] [1550425113.646567813]: Saved image left0000.jpg
[ INFO] [1550425113.752592532]: Saved image left0001.jpg
[ INFO] [1550425113.848999553]: Saved image left0002.jpg
...
(Ctrl+C)
...
beta_b0t@home:~$ eog left0000.jpg
beta_b0t@home:~$ rosservice call /vector/set_head_angle "deg: 45.0"
beta_b0t@home:~$ rosservice call /vector/say_text "text: 'hello world'"
beta_b0t@home:~$ rostopic pub /vector/play_animation/goal vector_ros/PlayAnimationActionGoal "header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
goal_id:
stamp:
secs: 0
nsecs: 0
id: ''
goal:
anim: 'anim_turn_left_01'"
- Why isn't this XX from Vector SDK supported? Well, I didn't wrap all the functions from the SDK - only the main ones as i see it. Yet, if you found a missing function that you need/would like to see as part of vector_ros, please consider opening a new issue with your proposal.