Skip to content

Commit

Permalink
readme updates, fixing opencv conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
eaa3 committed Feb 14, 2024
1 parent aa5e576 commit 5deb2dc
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 32 deletions.
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ COMPILE_ARGS = -std=c++17 -Wall -Wextra -ffunction-sections -fdata-sections -Og
SRC_FILES = src/*.cpp
name = dep_injection

ros:
colcon build --symlink-install
install_debian_deps:
sudo apt install python3-bloom python3-rosdep fakeroot debhelper dh-python

Expand All @@ -13,4 +15,4 @@ generate:
build_debian:
fakeroot debian/rules binary
clean:
rm -rf ./debian
rm -rf ./debian
55 changes: 32 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,36 @@

# Grip

Grip is a library for prototyping robot manipulation environments and applications. Grip contains tools for designing and prototyping robotic grasping applications, handling and acquiring data from simulated and real RGBD cameras, customising robot kinematics and dynamics, integration and deployment using ROS2. Grip was designed to be a lightweight python package to help prototyping, testing and deploying of robot grasping algorithms.
Grip is a prototyping toolbox for robot manipulation research. It contains a collection of tools for creating robot manipulation environments, loading arbitrary robot arms and grippers through URDF, as well as handling and acquiring data from simulated and real RGBD cameras. It also supports ROS2 allowing created environments or applications to be easily integrated in the ros2 ecosystem.

## Installation <a name="installation"></a>

### Standalone installation thorough pip:
### Pure python installation thorough pip

2. Install

```
pip3 install git+https://github.com/dyson-ai/grip.git
```


1. Run simple example (pure-python)

```
python3 -m grip_examples.environments.ex01_pick_and_place
```

This will run a basic pick and place demo. You should see the robot picking and placing a an object on the table (see below).

![Simple python demo](./grip_assets/media/simple_demo.gif)

2. Run simple ROS2 example
2. Another example: loading a Franka Panda robot (pure-python)

```
python3 -m grip_examples.robot.ex02_robots
```
This will spawn a franka robot that can be controlled through joint sliders. See more examples at `grip_examples`.

1. Run simple ROS2 example (ros2 required)

```
python3 -m grip_examples.environments.ex04_ros_robot
Expand All @@ -33,6 +40,7 @@ python3 -m grip_examples.environments.ex04_ros_robot
## Development setup

Development with vscode and running more examples:

1. Clone this repository ```git clone https://github.com/dyson-ai/grip.git```

2. Run vscode: ```code grip```
Expand All @@ -41,33 +49,34 @@ Development with vscode and running more examples:

4. Build repo with colcon: ```colcon build```

5. Run example launch file: ```ros2 launch grip ros_arm.launch.py```

## ROS2 examples
A few basic ROS2 examples are described below.

### Basic ROS example

Launch file:
```
ros2 launch grip ros_arm.launch.py
```

You should be able to see a bullet simulation of a panda arm, and a pre-configured rviz displaying the robot model, state, and point cloud as below. This example node is located at `grip/grip_examples/robot/ex04_ros_robot.py`. For more examples see `grip/grip_examples` and `grip/launch`.

![Basic ROS2 demo](./grip_assets/media/basic_demo_2x.gif)

### Moveit demo

## Topics, services and actions of simulated ROS robot
Launch file:
```
ros2 launch grip moveit_demo.launch.py
```
You should be able to see a bullet simulation of a panda arm, and a pre-configured rviz displaying the robot model, state, and point cloud, and moveit planning scene as below. The main node for this example is located at `grip/grip_examples/robot/ex05_ros_robot_moveit.py`. For more examples see `grip/grip_examples` and `grip/launch`.

The provided ROS interface should allow for ROS standard communication (e.g. if you want to connect the robot to moveit, or subscribe to its topics, etc)
![Basic ROS2 demo](./grip_assets/media/moveit_demo.gif)

### Robot and camera topics
```
/hand_camera/color/undistorted/camera_info
/hand_camera/color/undistorted/image_rect
/hand_camera/depth_registered/points
/hand_camera/depth_registered/undistorted/camera_info
/hand_camera/depth_registered/undistorted/image_rect
/joint_states
/robot_description
/tf
/tf_static
```

### Joint trajectory action server
## Topics, services and actions of simulated ROS robot

```
/position_joint_trajectory_controller/follow_joint_trajectory
```
The provided ROS interface should allow for ROS standard communication (e.g. if you want to connect the robot to moveit, or subscribe to its topics, tf, services, actions, sensors, etc)

Happy coding!
3 changes: 3 additions & 0 deletions grip_assets/media/moveit_demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 0 additions & 3 deletions grip_assets/media/moveit_demo.png

This file was deleted.

2 changes: 1 addition & 1 deletion launch/ros_arm.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from launch_ros.actions import Node
from launch_ros.descriptions import ParameterValue

from grip.ros import depth_proc_launch
from grip.ros.depth_proc_launch import depth_proc_launch
import pybullet_data as pd


Expand Down
2 changes: 1 addition & 1 deletion requirements_dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ numpy>=1.25.2 # numerical computing library
scipy>=1.11.1 # scientific computation tools
pybullet>=3.2.4 # physics engine used for simulation
open3d>=0.10.0 # point cloud processing tools
opencv-python>=4.9.0.80 # computer vision tools
# opencv-python>=4.9.0.80 # computer vision tools
matplotlib>=3.3.4 # plotting tools
pybullet_planning@git+https://github.com/eaa3/pybullet_planning.git@dev # pure python motion planning
trimesh==3.9.20 # mesh processing tools
Expand Down
2 changes: 1 addition & 1 deletion scripts/preinst
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

echo "Script path: ${SCRIPT_DIR}"

pip3 install numpy>=1.25.2 scipy>=1.11.1 pybullet>=3.2.4 open3d>=0.10.0 opencv-python-headless>=4.8.0.76 matplotlib>=3.3.4 ghalton==0.6.1 pybullet_planning@git+https://github.com/eaa3/pybullet_planning.git@dev trimesh==3.9.20 xatlas==0.0.7 transforms3d==0.4.1
pip3 install numpy>=1.25.2 scipy>=1.11.1 pybullet>=3.2.4 open3d>=0.10.0 matplotlib>=3.3.4 ghalton==0.6.1 pybullet_planning@git+https://github.com/eaa3/pybullet_planning.git@dev trimesh==3.9.20 xatlas==0.0.7 transforms3d==0.4.1
5 changes: 3 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,9 @@
name=package_name,
version=__version__,
description=(
"grip is a library for Robot Grasp Learning Environments."
"The goal of grip is to help prototyping, testing and deploying of robot grasping algorithms."
"Grip is a prototyping toolbox for manipulation research."
"It contains a collection of tools for creating robot manipulation environments, loading arbitrary robots, including grippers, robot arms, sensors and optional ROS2 interfaces."

),
url="https://github.com/dyson-ai/grip",
author="Ermano Arruda",
Expand Down

0 comments on commit 5deb2dc

Please sign in to comment.