Turtlebot 2 | Kingfisher | Floating platform |
---|---|---|
This repository extends the RoboRAN-Code to provide a modular and scalable framework for creating RL task states, running inference, and simulating robot control tasks. The system supports seamless integration with ROS, Docker, and a simulated OptiTrack environment for rapid testing and deployment.
- State Creation Node: Computes the RL policy input (state vector) for a selected task and robot.
- Model Inference Node: Subscribes to the state topic, runs the RL policy, and publishes actions to control the robot.
- Goal Generator Node: Created goals for the tasks generated in the Model Inference.
- Simulated OptiTrack Data: Generates synthetic pose updates to test the framework without real hardware.
- Dockerized Setup: Ensures consistent environments for development, testing, and deployment.
- Install Docker:
Every robot has a low-level controller, follow the readme for the type of robot you want to run:
- Floating Platform (link)
ssh to your robot, build and run the container:
Important
Some robots use different builds. See list below:
Floating platform: buld_L4T.sh
and run_L4T.sh
Kinki: build_cyclone_laptop.sh
and run_cyclone_laptop.sh
git clone
cd
./docker/build.sh
./docker/run.sh
Once inside the container, split the terminal (tmux, byobu).
-
Terminal 1
Create your launch file in
src/rl_inference/launch/<robot>/<name>_launch.py
and run it, e.i. :ros2 laucnh rl_inference fp_optitrack_SKRL_GoToPose_launch.py
-
Terminal 2 Run Joy from ROS2 to listen to joystick inputs
ros2 run joy joy_node
-
Terminal 3
Create your launch file in
src/goal_generator/launch/<robot>/<name>_launch.py
and run it, e.i. :ros2 launch goal_generator fp_GoToPose_launch.py
Note
Make sure you have the correct remapping of the ros2 topics inside the launch files.
Every robot might need extra things, they are described below.
- Clean and pressurize ZeroG lab.
- Calibrate Optitrack (link).
Note
Make sure to turn off the LED from the cameras once calibrated. It will help with the reflection on the ground to create the RigidBody and accuracy.
-
Run Optitrack node
Open a third terminal to run optitrack (vrpn_mocap)
- Terminal 3
ros2 launch vrpn_mocap client.launch.yaml server:=192.168.88.13
- Terminal 3