Multi robot teleoperation system with Vive/SpaceNav/Oculus/Tablis Cockpit
This package depends on these branches below:
-
For PR2 and Baxter
-
For Baxter only
-
For Dragon only
Steam does not work on Melodic or Kinetic now.
- NVidia driver:
525.105 - OpenVR:
1.3.22 - Steam VR:
1.6.10
- Arm motion tracking
- Controller button interface
- HMD visual interface
- Vibration interface
- Sound interface
- Arm motion tracking
- Controller button interface
- HMD visual interface
- Vibration interface
- Sound interface
- Arm motion tracking
- Controller button interface
- Arm motion tracking
- Controller button interface
- HMD visual interface
- Vibration interface
- Sound interface
sudo apt-get install --reinstall xserver-xorg-video-intel-hwe-18.04 libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
sudo dpkg-reconfigure xserver-xorg# for melodic, run command below
sudo apt install nvidia-driver-390
# for kinetic, install cuda-9.2 deb (local) manually and run command below.
sudo apt install nvidia-396Follow here
rm -r ~/.steam/steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libcurl* sudo cp udev/99-kodak.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm triggersource /opt/ros/$ROS_DISTRO/setup.bash
mkdir ~/jsk_apc_ws/src -p
cd ~/jsk_apc_ws/src
wstool init . https://raw.githubusercontent.com/start-jsk/jsk_apc/master/fc.rosinstall.${ROS_DISTRO}
wstool up
rosdep install -y -r --from-paths .
cd ~/jsk_apc_ws
catkin config
catkin buildsource /opt/ros/$ROS_DISTRO/setup.bash
mkdir ~/vive_ws/src -p
cd ~/vive_ws/src
wstool init . https://raw.githubusercontent.com/knorth55/eus_vive/master/fc.rosinstall
# Only for baxter users
wstool merge https://raw.githubusercontent.com/knorth55/eus_vive/master/baxter.rosinstall
wstool merge https://raw.githubusercontent.com/knorth55/eus_vive/master/baxter.rosinstall.$ROS_DISTRO
# Only for dragon users
wstool merge https://raw.githubusercontent.com/knorth55/eus_vive/master/dragon.rosinstall
wstool up
rosdep install --ignore-src --from-path . -y -r -i
# Only for baxter users
source ~/jsk_apc_ws/devel/setup.bash
cd ~/vive_ws
catkin config
catkin build- Connect Vive HMD and Lighthouse and power on the controller.
- Place Lighthouse B in front of you.
- Start one of launch files below.
- If you don't use HMD, press
Calibratebutton and do arm calibration. - Press
Enablebutton in GUI to start teleoperation.
The arm calibration is required for no HMD mode in order to measure your position and your arm length.
- Press
Calibrate l/rarmbutton in GUI - Listen to the voice instruction.
- Stretch your left/right arm and Press Trigger after the first instruction.
- Listen to the voice instruction again.
- Fold your left/right arm and Press Trigger after the second instruction.
- If calibration failed, please try again.
pr2_vive_control.mp4
rossetip
rossetmaster pr1040
# HMD mode
roslaunch eus_vive pr2_vive.launch
# No HMD mode
roslaunch eus_vive pr2_vive.launch head:=falseroslaunch pr2_gazebo pr2_empty_world.launch
roslaunch eus_vive pr2_vive_gazebo.launchpr2_tablis_eus_vive_compressed.mp4
rossetip
rossetmaster pr1040
roslaunch eus_vive pr2_tablis.launchroscd eus_vive/scripts/tablis
./start-tablis-sim.shroscd eus_vive/scripts/tablis
ipython -i tablis_setup.py
hcf.servoOn()
hcf.hc_svc.startHapticsController()roscd eus_vive/scripts/tablis
./start-bridge-sim.shroslaunch pr2_gazebo pr2_empty_world.launch
roslaunch eus_vive pr2_tablis_gazebo.launchpr2_spacenav_base_control2.mp4
rossetip
rossetmaster pr1040
roslaunch eus_vive pr2_spacenav.launchroslaunch pr2_gazebo pr2_empty_world.launch
roslaunch eus_vive pr2_spacenav_gazebo.launchbaxter_vive_control.mp4
rossetip
rossetmaster baxter
roslaunch eus_vive baxter_remote.launchrossetip
rossetmaster baxter
# No HMD mode
roslaunch eus_vive baxter_vive_remote.launch
# for display
roslaunch eus_vive baxter_display_remote.launchroslaunch baxter_gazebo baxter_world.launch
roslaunch eus_vive baxter_vive_gazebo.launchbaxter_tablis_eus_vive_compressed.mp4
rossetip
rossetmaster baxter
roslaunch eus_vive baxter_tablis.launchroscd eus_vive/scripts/tablis
./start-tablis-sim.shroscd eus_vive/scripts/tablis
ipython -i tablis_setup.py
hcf.servoOn()
hcf.hc_svc.startHapticsController()roscd eus_vive/scripts/tablis
./start-bridge-sim.shroslaunch baxter_gazebo baxter_world.launch
roslaunch eus_vive baxter_tablis_gazebo.launchrossetip
rossetmaster baxter
roslaunch eus_vive baxter_spacenav.launchroslaunch baxter_gazebo baxter_world.launch
roslaunch eus_vive baxter_spacenav_gazebo.launchrossetip
rossetmaster baxter
roslaunch eus_vive baxter_moveit.launchdragon_eus_vive_spacenav.mp4
roslaunch dragon bringup.launch simulation:=true real_machine:=false headless:=false
roslaunch eus_vive dragon_spacenav_gazebo.launchjaxon_eus_vive_control3.mp4
roscd eus_vive/scripts/jaxon
./start-jaxon_with_rhp3hand-sim.shroscd eus_vive/scripts/jaxon
ipython -i jaxon_with_rhp3hand_setup.py
hcf.ast_svc.startAutoBalancer()
hcf.ast_svc.startStabilizer()
hcf.ast_svc.startWholeBodyMasterSlave()roslaunch eus_vive jaxon_spacenav_choreonoid.launchjaxon_eus_vive_tablis.mp4
roscd eus_vive/scripts/tablis
./start-tablis-sim.shroscd eus_vive/scripts/tablis
ipython -i tablis_setup.py
hcf.servoOn()
hcf.hc_svc.startHapticsController()roscd eus_vive/scripts/jaxon
./start-jaxon_with_rhp3hand-sim.shroscd eus_vive/scripts/jaxon
ipython -i jaxon_with_rhp3hand_setup.py
hcf.ast_svc.startAutoBalancer()
hcf.ast_svc.startStabilizer()
hcf.ast_svc.startWholeBodyMasterSlave()roscd eus_vive/scripts/jaxon
./start-jaxon-eus-vive-sim.shroslaunch eus_vive jaxon_tablis_choreonoid.launchrossetip
rossetmaster baxter
roslaunch eus_vive baxter_vive_mirror.launchrossetip
rossetmaster baxter
roslaunch eus_vive baxter_remote.launchrossetip
rossetmaster baxter
roslaunch eus_vive baxter_vive_remote.launchrossetip
rossetmaster baxter
roslaunch eus_vive baxter_display_remote.launch| Button | Usage |
|---|---|
| 1 / Menu | Control toggle: base/arm (Default: base) |
| 3 / Stream Menu | Steam Menu |
| 8 / Grip | Not used |
You can enable arm mode of right and left arm separately.
| Command | Usage |
|---|---|
| 7 / Trigger | Gripper toggle: open/close in Toggle grasp mode (Default: open) |
| 7 / Trigger | Gripper toggle: open only when trigger is pressed in Hold grasp mode |
| Controller pose | robot end effector's pose |
Base mode is enabled when both arms are disabled in Arm mode.
| Command | Usage |
|---|---|
| 2 / Trackpad | Torso control: right: down / left: up |
| 2 / Trackpad + 7 / Trigger (right) | Safe base control: right: x, y / left: w |
| 2 / Trackpad + 7 / Trigger (right + left) | Unsafe base control: right: x, y / left: w |
| Button | Usage |
|---|---|
| 2 / Trackpad | Control toggle: stop / arm (Default: stop) |
| 3 / Stream Menu | Steam Menu |
| 8 / Grip | Not used |
You can enable arm mode of right and left arm separately.
| Command | Usage |
|---|---|
| 7 / Trigger | Gripper toggle: open/close (Default: open) |
| Controller pose | robot end effector's pose |
| Button | Usage |
|---|---|
| Reset | Diable and reset robot to initial posture |
| Enable | Enable robot |
| Disable | Disable robot |
| Calibrate larm/rarm | Calibrate with left/right arm |
| Button | Usage |
|---|---|
| Reset larm/rarm | Reset only left/right arm |
| Enable larm/rarm | Enable only left/right arm |
| Disable larm/rarm | Disable only left/right arm |
| Start grasp lgripper/rgripper | Start grasp only left/right gripper |
| Stop grasp lgripper/rgripper | Stop grasp only left/right gripper |
| Toggle grasp mode | Change to Toggle grasp mode |
| Hold grasp mode | Change to Hold grasp mode |
Open Field Service Menu and change network configuration
sudo apt install libgcrypt20-dev libgnutls28-dev
git clone https://github.com/streambinder/vpnc.git
cd vpnc
git checkout 1cf24ed6aa4a04b4b01cc9ebfacbad723eed04f5
make
sudo make install
cd ..
git clone git://git.infradead.org/users/dwmw2/vpnc-scripts.git
cd vpnc-scripts
sudo cp vpnc-script /etc/vpncsudo vpnc --local-port 0 --gateway <gateway> --id ipsecvpn --username <username> --pfs dh5 --dh dh5 --auth-mode psk --no-detach --vendor fortigate --dh dh5