|
1 | 1 | # vector_ros |
2 | | -This repository contains my unofficial ROS package for [Anki Vector](https://www.anki.com/en-us/vector) home robot. |
| 2 | +This repository contains an *unofficial* ROS package for [Anki Vector](https://www.anki.com/en-us/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 Python SDK](https://github.com/anki/vector-python-sdk) as ROS topics, services and actions(full list below). In order to showcase the package I wrote a simple [red ball tracking node](https://github.com/betab0t/vector_ros/blob/develop/nodes/simple_ball_tracker_node.py) 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: |
| 3 | + |
| 4 | +<p align="center"> |
| 5 | + <a target="_blank" href="http://www.youtube.com/watch?v=XxaOyA-M3U4"> |
| 6 | + <img src="http://img.youtube.com/vi/XxaOyA-M3U4/0.jpg"> |
| 7 | + </a> |
| 8 | +</p> |
3 | 9 |
|
4 | 10 | # Setup |
| 11 | +## Requirements(non Docker setup) |
| 12 | +- ROS Melodic with Python 3.6 installed |
| 13 | +- [Vector Python SDK](https://github.com/anki/vector-python-sdk) |
| 14 | +- [diff_drive](https://github.com/merose/diff_drive) package |
| 15 | + |
5 | 16 | ## Docker Image |
| 17 | +It's highly recommended to use the supplied Dockerfile insted of installing directly on your machine mainly because of the tricky setup required to run Python 3 properly on ROS. follow the instructions: |
| 18 | +1. Install [Docker](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04) and [docker-compose](https://docs.docker.com/compose/install/) if you dont have it already installed |
| 19 | +```sh |
| 20 | +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - |
| 21 | +sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
| 22 | +sudo apt-get update |
| 23 | +sudo apt-get install -y docker-ce |
| 24 | +sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
| 25 | +sudo chmod +x /usr/local/bin/docker-compose |
| 26 | +``` |
| 27 | + |
| 28 | +2. Clone this repository and create docker-compose file from template |
6 | 29 | ```sh |
7 | 30 | git clone https://github.com/betab0t/vector_ros |
8 | 31 | cd vector_ros |
9 | 32 | cp docker-compose-TEMPLATE.yml docker-compose.yml |
10 | 33 | nano docker-compose.yml |
11 | 34 | ``` |
12 | | -edit the following lines and save: |
| 35 | + |
| 36 | +3. Edit the following lines and save |
13 | 37 | ```yaml |
14 | 38 | vector_ip: <VECTOR_IP> |
15 | 39 | vector_name: <VECTOR_NAME> |
16 | 40 | vector_serial: <VECTOR_SERIAL> |
17 | 41 | ``` |
| 42 | +*Not sure how to get this info? see FAQ section below* |
18 | 43 |
|
| 44 | +4. Build and start the container |
19 | 45 | ```sh |
20 | 46 | sudo docker-compose build --build-arg anki_user_email=<ANKI_ACCOUNT_EMAIL> --build-arg anki_user_password=<ANKI_ACCOUNT_PASSWORD> |
21 | 47 | sudo docker-compose up |
22 | 48 | ``` |
| 49 | +*Use your [Anki Developer](https://developer.anki.com/) username and password* |
23 | 50 |
|
24 | 51 | # Topics |
25 | 52 | * `/vector/camera` *(sensor_msgs/Image)* |
@@ -107,5 +134,4 @@ goal: |
107 | 134 |
|
108 | 135 | - **[How do i find Vector's serial number?](https://developer.anki.com/vector/docs/troubleshooting.html#can-t-find-serial-number)** |
109 | 136 |
|
110 | | -- **Why isn't this XX from Vector SDK supported?** Well, I didn't wrapped 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](https://github.com/betab0t/vector_ros/issues/new) with your proposal. |
111 | | - |
| 137 | +- **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](https://github.com/betab0t/vector_ros/issues/new) with your proposal. |
0 commit comments