Bot-Q TMS is a tether management system for the Q-bot docking tasks involving cable or filament handling. It features a 3-DoF spool/extruder mechanism.
This repository provides the ROS 2 packages required to simulate the robot in Gazebo (using ros_gz) and control the real hardware via ros2_control (for Dynamixel).
In order to use this project, you need to get ready the following environment.
| Package | Version |
|---|---|
| Ubuntu | 22.04 (Jammy Jellyfish) |
| Gazebo | Fortress |
| ROS | Humble Hawksbill |
| Python | 3.10 <= |
Make a workspace if you do not have one already.
mkdir -p ~/bot_q_tms_ws/src
cd ~/bot_q_tms_ws/srcClone this package into your workspace.
git clone https://github.com/sd-robotics/bot-q_tms.gitInstall the required ROS 2 packages and dependencies.
cd ~/bot_q_tms_ws/src/bot-q_tms
bash install.shBuild the packages and source your workspace.
cd ~/bot_q_tms_ws
colcon build --symlink-install
source install/setup.bashTo launch the robot in the Gazebo simulation environment with RViz visualization:
ros2 launch bot_q_tms_bringup gz_minimal.launch.pyThis will spawn the robot (including the carrier mechanism) in an empty Gazebo world and bridge the necessary topics.
To launch the drivers for the physical robot (Dynamixel hardware interface):
ros2 launch bot_q_tms_bringup real_minimal.launch.pyTo visualize the URDF model and joint states without running the full physics simulation:
ros2 launch bot_q_tms_description display.launch.py use_gui:=TrueThe simulation and real robot publish the following sensor data:
| Sensor Type | Topic Name | Description |
|---|---|---|
| Joints | /bot_q_tms/joint_states |
Current position and velocity of joints. |
The robot utilizes ros2_control to move the three actuators attached to the TMS.
| Controller | Type | Description |
|---|---|---|
velocity_controller |
JointGroupVelocityController |
Controls the spool, guider, and extruder gears. |
This repository is licensed under the Apache License 2.0. See the LICENSE file for details.