Code created for various manipulation tasks using the 6 Degree of Freedom Kinova Gen3. Maintained by the Özay group at the University of Michigan.
This code is based upon the work done by Kwesi Rutledge in the repository https://github.com/kwesiRutledge/OzayGroupExploration.git To pull changes from this repository, you can add it as remote location with
git remote add upstream https://github.com/kwesiRutledge/OzayGroupExploration.git
Then when you want to pull changes:
git pull upstream main
If unwanted files are added when merging with upstream, then you will have to remove them. This workflow is flawed, but will work for now.
There are two possible methods for getting started with kinova-arm
.
- Docker
- Local Install
The Docker method for getting started appears to be more robust (won't break as often), but it is not necessary if you are working on the lab laptop.
In this section we will discuss how to: build the Drake-Kinova Docker Image and run a container with it.
In order to control the 6 Degree of Freedom Kinova Gen3 in the Özay group, Drake is used along with the Kinova Kortex API and kinova_drake (a library built by Vince Kurtz).
If you are interested in getting set up with all of the software that you need to control our robot, do the following:
- Pull this git repository.
- From the repository's main directory, run a shell script to create the docker image:
./shell-scripts/create-drake-v2-docker-image.sh
. - Start the docker container:
./shell-scripts/run-drake-v2-docker-container.sh
-
Create the project folder (e.g.,
~/kinova
) -
Create a virtual environment for the project. (e.g.,
python -m venv kinova-venv
) -
Into your project folder clone both
kinova-arm
andkinova-drake
.- The currently recommended version of
kinova-drake
: https://github.com/ozay-group/kinova-arm - The currently recommended version of
kinova-arm
: https://github.com/kwesiRutledge/kinova_drake
- The currently recommended version of
-
Locally Install
kinova-arm
-
Make sure your virtual environment is activated.
-
Enter the
kinova-arm
directory. -
Run the following commands:
pip install --upgrade pip pip install -r install/requirements.txt pip install -e .
-
This will install
kinova-arm
into the virtual environment. (This tells your computer wherekinova-arm
is whenever you runimport kinova_arm
.) -
Example for how to import
kinova-arm
is shown here (note that this file does not work without installingkinova_drake
first):
-
-
Locally Install
kinova_drake
-
Make sure your virtual environment is activated.
-
Enter the
kinova-arm
directory. -
Run the following commands:
pip install -r requirements.txt pip install -e .
-
This will install
kinova_drake
into the environment. (This tells your computer wherekinova_drake
is whenever you runimport kinova_drake
.) -
An example of how to import this is listed above. (4e)
-
-
Install
kortex_api
-
Install
kortex_api 2.6.0
which is compatible with state-of-artkinova_drake
(instead of 3.2.0). .whl file can be found in the link below https://github.com/Kinovarobotics/kortex.git -
The 2.6.0 version of
kortex_api
includes dependency onprotobuf==3.5.1
, which is not compatible with python 3.10+. Hence, force installprotobuf==3.19.4
after installingkortex_api 2.6.0
-
-
Install Intel RealSense SDK 2.0
- Follow the instruction to install at the link below:
https://github.com/IntelRealSense/librealsense
- Follow the instruction to install at the link below:
Make sure that the container named drake-container is running, use an editor like VS Code to begin developing.
In VS Code, you can attach your application to the running container, giving you access to all of the libraries installed in the container after you built it.
pip install -r requirements.txt
doesn't work and I'm installing on Mac OS X with an M-series chip and some parts fail.
We are unsure about why this happens. To complete installation without some of the vision libraries that are causing the issue, comment out the following lines in requirements.txt:
open3d # Point Cloud
pyrealsense2 # RealSense
dt_apriltags # Apriltags