facebookresearch/pyrobot

How to deploy a model trained in habitat-sim on a physical robot which is turtlebot2 through PyRobot

mumu1408 opened this issue · 1 comments

I want to deploy a model trained in habitat-sim on a physical robot which is turtlebot2 through PyRobot. I have no idea how to complete this process.

What I have done

  1. Installed just PyRobot following the readme.md.
  2. Installed ros packages related to turtlebot2 following the tutorial from sources which is fit for ROS kinetic.

Hardware for turtlebot2

Turtlebot2 has a Kobuki base and a 3D sensor which is Kinect.

My confusion

  1. How to control turtlebot2 using PyRobot?
    I have noted the document about Interfacing a new robot with PyRobot. And the conclusion is that to control turtlebot2, I should follow four steps:
  1. create turtlebot2_config.py
  2. create a folder in src/pyrobot named as turtlebot2, and create python scripts named as base.py and camera.py
  3. write unit tests
  4. add examples
    But I am not familiar with turtlebot2 and ROS. I have no idea about the specific procedure.
  1. Is it necessary to install ros packages related to turtlebot2?
  2. I have noted that both turtlebot2 and LoCoBot use Kuboki Base. So, shall I install LoCoBot?
  3. What role does PyRobot play between robot and the trained model?
 To answer your questions,

1.Turtlebot2 is the default base on LoCoBot. So, the PyRobot code as it is should work for your use case. If you set use_camera and use_arm to False in the Robot constructor. Also, remember to run the roslaunch commands with arm:=false.

But if you are using a configuration which is different from the LoCoBot, i.e (your camera is not realsense and your camera location is different), please create the necessary URDF for the robot and the necessary roslaunch file for then robot first. Then use that info to create a pyrobot config file similar to locobot_config.py

  1. If you did the pyrobot full install, you don't need to do this.

  2. Yes, this will install all the dependencies. However to make it work with your robot, refer to my 1. answer.

  3. PyRobot allows you to control the robot effortlessly from python. The actions produced by your trained model can be executed with ease using PyRobot.