/thorp

Software for a lowcost mobile manipulation: a TurtleBot2 with an arm, a second 3D camera, and some extra junk

Primary LanguagePython

THORP

Software for a low-cost mobile manipulation: a TurtleBot2 with an arm, a second 3D camera, and some extra junk.

Example apps

Simulated on Gazebo

Cat hunter: explore the entire environment searching for cats, and attack them whenever found.

roslaunch thorp_apps cat_hunter.launch simulator:=gazebo cat_models:='cat_orange cat_black'

Cat hunter

Object gatherer: explore the entire environment gathering all tabletop objects of the requested types.

roslaunch thorp_apps object_gatherer.launch simulator:=gazebo object_types:='cube circle pentagon'

Object gatherer

Real robot (much older)

Turtlebot arm object manipulation demo (video).

Bringup

Pre-requisite

Install wstool:

sudo apt-get install python3-wstool

or when that is not possible, fall back to pip:

sudo pip install -U wstool

Installation

mkdir ~/thorp
cd ~/thorp
wstool init src https://raw.githubusercontent.com/corot/thorp/master/thorp_bringup/docker/thorp.rosinstall
touch src/gazebo-pkgs/CATKIN_IGNORE
ln -sr src/gazebo-pkgs/gazebo_grasp_plugin src
ln -sr src/gazebo-pkgs/gazebo_version_helpers src
source /opt/ros/noetic/setup.bash
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro noetic -y
catkin build
pip install --upgrade ratelimit

Prepare hardware

Arm, sonars and IR sensors require a bit of extra work. Check their README for instructions.

Troubleshooting guide

  • Cannot connect with Kobuki base:
    • Ensure you have installed the udev rule as explained in the kobuki_ftdi package
  • Cannot connect with arduino, OpenCM or USB2AX:
    • Ensure you have installed the udev rules as explained in the thorp_boards package
  • Gazebo error in REST request:
    • fix explained here
  • Tensorflow not working:

Docker image

Available in dockerhub

docker pull corot/thorp:noetic

To build locally:

cd ~/thorp/thorp_bringup/docker
docker build -t thorp:noetic .

Run with rocker:

pip install rocker
rocker --privileged --pulse --nvidia --x11 thorp:noetic

or the pulled image:

rocker --privileged --pulse --nvidia --x11 corot/thorp:noetic

Once inside the docker, you can run any of the apps in simulation, e.g.:

roslaunch thorp_apps cat_hunter.launch simulator:=gazebo
roslaunch thorp_apps object_manip.launch simulator:=gazebo
roslaunch thorp_apps object_gatherer.launch simulator:=gazebo
roslaunch thorp_apps explore_house.launch simulator:=stage