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 !
The construction process of the hardware platform.
⚙️ TIAGO++ Setup
✨ 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