This directory contains example scripts demonstrating various capabilities of the Robot Living Studio digital twin. The examples cover navigation and manipulation tasks using the Fetch robot.
Before running any examples, you need to start the digital twin environment:
roslaunch low_level_planning rls_env.launchThis will launch the GAZEBO simulation of the Robot Living Studio environment. The environment includes:
- Fetch robot
- Basic studio layout
- Interactable objects (e.g., milk box)
- Obstacles (e.g., chairs)
Users can load additional objects and obstacles as needed.
To control the robot's movement using keyboard:
- Open a new terminal
- Run:
python examples/navigation/base_movement.pyFor autonomous navigation to target positions:
- Launch the navigation stack in a new terminal:
roslaunch low_level_planning navigation.launch-
Ensure the robot's initial pose in the simulation matches the RViz map
- Manually adjust the pose estimation if needed
- The robot will automatically refine its localization during navigation
-
Run the target position navigation example:
python examples/navigation/go_to_target_position.pyTo demonstrate motion planning using joint states:
python examples/manipulation/move_arm_joints.pyFor direct end-effector control in Cartesian space, we provide an example that replays a pre-recorded trajectory for opening a fridge:
python examples/manipulation/replay_open_fridge_trajectory.pyThis example uses:
- Direct end-effector control through a PD controller
- Pre-recorded trajectory data from
trajectory/abs_ee_pose.npy - Cartesian space interface for more intuitive manipulation
- Make sure the ROS environment is properly sourced before running examples
- Each example can be modified to understand different aspects of robot control
- The robot will automatically handle collision avoidance during both navigation and manipulation tasks
- The pre-recorded trajectories serve as templates that can be adapted for similar tasks