PyRobot

PyRobot

  • Tutorials
  • API
  • Datasets
  • Help
  • GitHub
  • next-API
  • next-Github

›Locobot Examples

Getting Started

  • Overview
  • Install software

Locobot Examples

  • [Basic] Camera Calibration
  • [Basic] Navigation
  • [Basic] Manipulation
  • [Basic] Demonstration
  • [Basic] Pushing
  • [Basic] Active Camera
  • [Advanced] Grasping
  • [Advanced] Sim2Real
  • [Advanced] Visual Navigation (CMP)

Sawyer Examples

  • [Basic] Manipulation

Help and Support

  • New Robot Support
  • Datasets
  • Networking
  • Contributing to PyRobot
  • FAQ
  • Contact

The Next Version of PyRobot!

  • Install Software
  • PyRobot Next Version Overview

Running pushing example on your robot

Here is a demo video showing what one can accomplish through this tutorial.

Get Started

Note This tutorial is tested to work only with Python2.7 version on PyRobot

  • Make sure robot is turned ON

  • Launch the robot driver

Launch driver
roslaunch locobot_control main.launch use_arm:=true use_camera:=true
  • Run the pushing example

pushing.py script accepts two parameters: floor_height and gripper_len. You need to tune these two parameters a bit. floor_height means the z-coordinate of the floor. Points with z-coordinate smaller than this value will be filtered. Only points heigher than the floor will be used for clustering. gripper_len means the length of the gripper (from gripper_link to the tip of the gripper). You may need to tune these two parameters when you run the example.

If the gripper goes down too much and it hits the floor while pushing the object, you can make the gripper_len bigger. If the gripper doesn't go down enough and it doesn't touch the object, you can try making the gripper_len smaller.

To tune floor_height, you need to run the following script first.

Visualize filtered point cloud
source ~/pyenv_pyrobot/bin/activate
cd ~/low_cost_ws/src/pyrobot/examples/locobot/manipulation
python realtime_point_cloud.py --floor_height=0.01

This script shows the point cloud in the scene after filtering (points with depth more than 1.5m and points with z coordinate (height) larger than floor_height will be removed). The remaining point cloud will be used for clustering and pushing in pushing.py. So you need to tune the floor_height such that the floor is completely removed (which means its value cannot be too small) and as much points of the the objects as possible are remained (which means its value cannot be too big).

After tuning, you can run the pushing script in a new terminal as follows:

Run pushing script
source ~/pyenv_pyrobot/bin/activate
cd ~/low_cost_ws/src/pyrobot/examples/locobot/manipulation
python pushing.py --floor_height=0.01 --gripper_len=0.12

Warning: we are using the analytical inverse kinematics in this example, which means no collision checking is performed here. So the robot arm may hit the robot itself sometimes.

← [Basic] Demonstration[Basic] Active Camera →
  • Get Started
PyRobot
Docs
Getting StartedExamplesDatasetsHelp and Support
More
GitHubStarContact