Tiago++

Tiago++

Configured Tiago++ and Quest3 teleoperation from scratch while working at TASL and applied them to conduct research on real-world rl for mobile-manipulation. You can find the repo here !

Tiago ++ flow The construction process of the hardware platform.

⚙️ TIAGO++ Setup

devel-computer - intern-computer - ros-tutorial

✨ start tiago

  • press power button(left)
  • press start button(right)

✨ pal distro environment variable

export PAL_DISTRO=gallium
export ROS_DISTRO=noetic # ros1 setup
source /opt/pal/${PAL_DISTRO}/setup.bash

✨ export ROS master connection

export ROS_MASTER_URI=http://tiago-224c:11311
export ROS_IP=192.168.0.110

✨ run commands

# get into the virtual env first
conda activate tiago
# then begin to execute through ros
...

✨ basic ros commands

# show all of the topic on tiago rosmaster
rostopic list # or `rosservice` or `rosnode`
# show a specific topic
rostopic info /topic_name
rostopic echo /topic_name
rostopic type /topic_name
# show the communication graph
rqtgraph

✨ visit web-commander and web-user-interface

# Web Commander
http://tiago-224c:8080/
# Web Interface
http://tiago-224c/
# username: pal
# password: pal

⚙️ Teleoperation Setup

✨ install telemoma-real

# install telemoma for real robot teleoperation
git clone -b telemoma-real --single-branch https://github.com/UT-Austin-RobIn/telemoma.git
conda create --name tiago python==3.9 # OmniGibson requires python3.9
conda activate tiago
cd telemoma
pip install -r requirement.txt
pip install -e .

✨ install tracikpy for computing the IK of the robots

# the package is simple to set up and only requires the URDF of the robot to get started.
git clone https://github.com/mjd3/tracikpy.git
cd tracikpy
pip install -e .

✨ install oculus_reader for Quest3 VR tele-operate

  • the communication flow: Meta Quest 3 -> telep-debug.apk -> android-tools-adb -> ubuntu
  • open development mode through Meta Horizon app
  • follow here to execute
  • wait a moment to ware the headset after launching the connection
    git clone https://github.com/rail-berkeley/oculus_reader.git
    cd oculus_reader
    pip install -e .
    

🎮 TIAGO Teleoperation

  • Oculus hand controllers are tracked with respect to the headset.
  • To start controlling the arms, move the corresponding controller while holding the trigger button.
  • The gripper button can be used to toggle between opening and closing the gripper, only when the corresponding arm is in triggered mode.
  • The joysticks are used to control the translation (right controller) and rotation (left controller) of the base.

✨ connect TIAGO

export PAL_DISTRO=gallium
export ROS_DISTRO=noetic
source /opt/pal/${PAL_DISTRO}/setup.bash
export ROS_MASTER_URI=http://tiago-224c:11311
export ROS_IP=192.168.0.110
conda activate tiago

✨ connect oculus_reader

# check the connection 
# (if network connection is not working, please connect through usb first and reconnect through ip then)
python workspace/tests/oculus_reader_check.py
# adb devices
# adb shell ip route
# adb shell am force-stop com.rail.oculus.teleop

✨ run telemoma

# oculus_reader connection through network
python telemoma/telemoma/teleop.py --robot tiago --teleop_config telemoma/telemoma/configs/only_vr.py 

✨ trouble shooting

cannot connect to tiago's topic through ros

  • run the connect TIAGO commands again to re-connect the robot

cannot publish message to tiago

  • wait some time (1s) to let publisher stay awake

🎮 TIAGO Data Collection

✨ run

# check the connection of oculus_reader
python workspace/tests/oculus_reader_check.py
# launch teleoperator for data collection
python workspace/teleop/data_collector.py
# launch recorder for save files
python workspace/teleop/data_recorder.py
# check the saved files
python workspace/teleop/data_checker.py
# check the videos
vlc path/to/your/video/*.mp4