start-jsk / jsk_apc

Other
36 stars 35 forks source link

jsk_apc

GitHub version Gitter Slack Documentation Status Docker Cloud Build Status Forum (baxter, apc)

jsk_apc is a stack of ROS packages for Amazon Picking Challenge mainly developed by JSK lab.
The documentation is available at here.

Usage

APC/ARC Competitions

Competition Documentation
APC2015 See jsk_2015_05_baxter_apc.
APC2016 See jsk_2016_01_baxter_apc.
ARC2017 See jsk_arc2017_baxter.

Research papers

Paper Documentation Paper DOI URL
K. Wada et al, ICRA, 2019 See demos/instance_occlsegm. 10.1109/ICRA.2019.8793783
K. Wada et al, IROS, 2018 See demos/instance_occlsegm. 10.1109/IROS.2018.8593690
K. Wada et al, AR, 2017 See jsk_2015_05_baxter_apc. 10.1080/01691864.2016.1269672
S .Hasegawa et al, RA-L, 2020 See demos/baxter_paper_filing. 10.1109/LRA.2020.3010440
S .Hasegawa et al, ICRA, 2019 See demos/grasp_fusion. 10.1109/ICRA.2019.8793710
S. Hasegawa et al, JRM, 2019 See demos/baxtergv6_apc2016. 10.20965/jrm.2019.p0289
S. Hasegawa et al, IROS, 2018 See demos/grasp_prediction_arc2017. 10.1109/IROS.2018.8593398
S. Hasegawa et al, IROS, 2017 See jsk_2016_01_baxter_apc. 10.1109/IROS.2017.8202288
S. Kitagawa et al, AR, 2020 See demos/selective_dualarm_grasping. 10.1080/01691864.2020.1783352
S. Kitagawa et al, IROS, 2018 See demos/selective_dualarm_grasping. 10.1109/IROS.2018.8593752
S. Kitagawa et al, IAS, 2018 See demos/selecive_dualarm_stowing. 10.1007/978-3-030-01370-7_34

Installation

Required

  1. Install the ROS. Instructions for ROS indigo on Ubuntu 14.04.
  2. Setup your ROS environment.
  3. Build catkin workspace for jsk_apc:
$ mkdir -p ~/ros/ws_jsk_apc/src && cd ~/ros/ws_jsk_apc/src
$ wstool init . https://raw.githubusercontent.com/start-jsk/jsk_apc/master/fc.rosinstall.${ROS_DISTRO}
$ cd ..
$ rosdep install -y -r --from-paths .
$ sudo apt-get install python-catkin-tools ros-indigo-jsk-tools
$ catkin build
$ source devel/setup.bash

Edit /etc/hosts:

133.11.216.224 baxter 011310P0014.local

Add below in your ~/.bashrc:

$ rossetmaster baxter
$ rossetip

$ # we recommend below setup (see http://jsk-docs.readthedocs.org/en/latest/jsk_common/doc/jsk_tools/cltools/setup_env_for_ros.html)
$ echo """
rossetip
rosdefault
""" >> ~/.bashrc
$ rossetdefault baxter  # set ROS_MASTER_URI as http://baxter:11311

Optional

Setup Arduino and DXHUB

  1. To distinguish left DXHUB from right one, follow the instruction here.

  2. Create udev rules:

    $ rosrun jsk_arc2017_baxter create_udev_rules

    so that Arduinos can appear on /dev/arduino* and DXHUBs can appear on /dev/l_dxhub and /dev/r_dxhub

Setup scales

Create udev rules:

$ rosrun jsk_arc2017_common create_udev_rules

so that scales can appear on /dev/scale*

Setup SSH

Write below in ~/.ssh/config:

Host baxter
  HostName baxter.jsk.imi.i.u-tokyo.ac.jp
  User ruser  # password: rethink

Setup UP Board

Inside UP Board...

  1. Install ros-kinetic-ros-base and setup environment.
  2. Build catkin workspace for jsk_apc:
    $ source /opt/ros/kinetic/setup.bash
    $ mkdir -p ~/ros/kinetic/src && cd ~/ros/kinetic/src
    $ wstool init . https://raw.githubusercontent.com/start-jsk/jsk_apc/master/upboard.rosinstall
    $ wstool merge -t . https://raw.githubusercontent.com/start-jsk/jsk_apc/master/upboard.rosinstall.kinetic
    $ wstool update
    $ sudo apt install python-pip
    $ rosdep install -y -r --from-paths . --ignore-src
    $ sudo apt install python-catkin-tools
    $ cd .. && catkin build
    $ echo 'source $HOME/ros/kinetic/devel/setup.bash' >> ~/.bashrc
    $ echo "rossetip" >> ~/.bashrc
    $ echo "rossetmaster baxter" >> ~/.bashrc
    $ source ~/.bashrc
  3. Create udev rules:
    # baxter-c2
    $ rosrun jsk_arc2017_baxter create_udev_rules
    # baxter-c3
    $ rosrun jsk_arc2017_common create_udev_rules
  4. Create ~/env-loader.sh:
    
    #!/bin/bash

. $HOME/ros/kinetic/devel/setup.bash export ROSCONSOLE_FORMAT='[${severity}] [${time}]: [${node}] [${function}] ${message}' rossetip rossetmaster baxter exec "$@"

and `chmod +x ~/env-loader.sh`

5. Setup time synchronization
```sh
sudo apt install ntp
# Set the same configuration as other PCs
sudo vi /etc/ntp.conf

From main PC...

  1. ssh -oHostKeyAlgorithms='ssh-rsa' baxter@<UP Board Host Name>.jsk.imi.i.u-tokyo.ac.jp
  2. Add main PC's ssh public key to ~/.ssh/authorized_keys on UP Board.

Citations

APC2015

@article{wada2017pick,
  title={Pick-and-verify: verification-based highly reliable picking system for various target objects in clutter},
  author={Wada, Kentaro and Sugiura, Makoto and Yanokura, Iori and Inagaki, Yuto and Okada, Kei and Inaba, Masayuki},
  journal={Advanced Robotics},
  volume={31},
  number={6},
  pages={311--321},
  year={2017},
  publisher={Taylor \& Francis}
}