# Setting up RMF for custom physical Robot (#142)

**URL:** <https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601>\
**Category:** Open-RMF General\
**Tags:** rmf-github-discuss\
**Created:** [February 22, 2022, 1:19pm UTC](https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601 "2022-02-22T13:19:22Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Archive-o-matic](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/archive-o-matic/32/26074_2.png) [@Archive-o-matic](https://discourse.openrobotics.org/u/Archive-o-matic)\
**Post date:** [February 22, 2022, 1:19pm UTC](https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601/1 "2022-02-22T13:19:22Z")

</div>

Posted by @jerinpeter:

I have been trying to setup rmf for my custom made [**ROS Robot**](https://github.com/jerinpeter/4wdNavbot)

**Things I have done so far are:**

1. My robot can now accept nav. goals and go to a goal location.
2. I had gone through the rmf repositories and created a free\_fleet client launch file which required move\_base to be running and that is working perfectly fine.
3. I have mapped my room with Gmapping and have created a map file which I imported in the **traffic-editor** and created a **somename.building.yaml**
4. I also generated a Navigation path file **0.yaml**

_ **note: we get a .pgm file when we save the map. The same was converted into .png then imported into building editor and then scale was set** _

\<-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\>

**Things to be done / doubts :**

If my understanding is correct, I need to set up a **free\_fleet server launch file** in my computer by including the .buildling.yaml and nav graph file 0.yaml.  
I am stuck in this part. I am not able to find a proper launch file template for making it work with my physical robot. I also found out that the simulations use some adapters like slotcar etc.  
I am also confused on how to give navigation goals after setting up the server and client. The rmf\_demos showcase it as a task via CLI or web interface but I want to set up the same in my custom robot.

That is, the robot should move to a specified named point say bedroom1, in the map (which was set in the traffic-editor gui). I also need to figure out how to do the same.

| ![](https://us1.discourse-cdn.com/flex022/uploads/ros/original/3X/7/e/7edf18ff6dc3e953cbb944b0d66f19f1c2ac9a01.jpeg) | ![](https://us1.discourse-cdn.com/flex022/uploads/ros/original/3X/8/d/8d0eb7634eb593bc20721b971dd452d4a79d3296.png) |
| --- | --- |
| **My robot** | **traffic-editor gui with my custom map** |

Attaching the free\_fleet client launch file that ran successfully on my Jetson Nano.  
[ff\_client.txt](https://github.com/open-rmf/rmf/files/8111287/ff_client.txt)

@Yadunund

---

<div class="post-metadata">

**Author:** ![Archive-o-matic](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/archive-o-matic/32/26074_2.png) [@Archive-o-matic](https://discourse.openrobotics.org/u/Archive-o-matic)\
**Post date:** [February 28, 2022, 4:56pm UTC](https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601/2 "2022-02-28T16:56:34Z")

</div>

Posted by @Yadunund:

@jerinpeter,

Cool robot! Nice to see that you’re integrating your robot with RMF via `free_fleet`.

You can find more information on the `free_fleet` server launch file [here](https://osrf.github.io/ros2multirobotbook/integration_free-fleet.html). There is another example in the repo [here](https://github.com/open-rmf/free_fleet/blob/main/ff_examples_ros2/launch/fake_server.launch.xml). As you can see, you’ll need to provide the coordinate transformation parameters between your robot map’s coordinate frame and the RMF coordinate frame. One neat way of doing this is via `rmf_traffic_editor`. You can import your map png file as a “layer”. Then you can either 1) Manually scale, rotate, translate to align the two maps or 2) You can add `Constraints` between corresponding points on the floorplan layer and your map layer and then click `Edit->Optimize layer transforms`. This will automatically perform the alignment operations. Clicking on the layer will reveal the necessary transform values in the rightside toolbar.

When running RMF with real robots, remember to set the `use_sim_time` parameter to `false` in all your launch files.

You can then send task requests for your robot to perform via RMF. There are multiple ways to do this including 1) CLI 2) RMF Panel or using [rmf-web](https://github.com/open-rmf/rmf-web). For examples of the first two options see the README in [`rmf_demos`](https://github.com/open-rmf/rmf_demos). Specifically if you would like to request your robot to go to a named waypoint, you can run

`ros2 run rmf_demos_tasks dispatch_loop -s bedroom1 -f bedroom1`

But this approach is not ideal. The correct way to send a single waypoint request is to submit a `composite` task with a single `go_to_place` activity. You can take a look at this [file](https://github.com/open-rmf/rmf_demos/blob/b2beee23e83d89d93aa831680eecaa25caea6d26/rmf_demos_tasks/rmf_demos_tasks/dispatch_multi_stop.py) for how this can be done. That script will request the robot to visit a number of places as specific by the users but you can use it to submit a single waypoint. We will merge this script in soon.

Good luck with the integration.

---

<div class="post-metadata">

**Author:** ![Archive-o-matic](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/archive-o-matic/32/26074_2.png) [@Archive-o-matic](https://discourse.openrobotics.org/u/Archive-o-matic)\
**Post date:** [February 28, 2022, 8:13pm UTC](https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601/3 "2022-02-28T20:13:45Z")

</div>

Posted by @jerinpeter:

Thankyou so much I will check it out and get back with an update soon!  
@Yadunund one small query, The launch file you just specified is for launching the server but we where do we specify the nav graph file `0.yaml` and `.building.yaml` file? If that is to be implemented via a fleet adapter, can you also please provide a template launch file for the same? I guess with that I can start testing my robot. As per your anwer setting up the server and map + giving goal location is clear. I have slight confusion configuring the fleet adapter part.

Thank You

---

<div class="post-metadata">

**Author:** ![Archive-o-matic](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/archive-o-matic/32/26074_2.png) [@Archive-o-matic](https://discourse.openrobotics.org/u/Archive-o-matic)\
**Post date:** [February 28, 2022, 10:19pm UTC](https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601/4 "2022-02-28T22:19:05Z")

</div>

Posted by @Yadunund:

If you’re using `free_fleet`, you’ll pass in the generated nav\_graph `0.yaml` as a parameter argument for the `full_control` fleet adapter node. The `.building.yaml` file is an arguement for the `building_map_server` node. See [this](https://github.com/open-rmf/rmf_demos/blob/main/rmf_demos/launch/office.launch.xml) example in `rmf_demos`

---

<div class="post-metadata">

**Author:** ![Archive-o-matic](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/archive-o-matic/32/26074_2.png) [@Archive-o-matic](https://discourse.openrobotics.org/u/Archive-o-matic)\
**Post date:** [March 1, 2022, 2:30pm UTC](https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601/5 "2022-03-01T14:30:25Z")

</div>

Posted by @jerinpeter:

Thankyou @Yadunund will test it out and share the update soon.

---

<div class="post-metadata">

**Author:** ![Archive-o-matic](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/archive-o-matic/32/26074_2.png) [@Archive-o-matic](https://discourse.openrobotics.org/u/Archive-o-matic)\
**Post date:** [November 15, 2024, 12:28pm UTC](https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601/6 "2024-11-15T12:28:36Z")

</div>

Posted by @josh-001:

I have my map.yaml and also 0.yaml but i am unable to load into rviz saying like no such file exists after doing colcon build i cant find these in share folder also, can you help em out in this? @Yadunund @jerinpeter

---

<div class="post-metadata">

**Author:** ![Archive-o-matic](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/archive-o-matic/32/26074_2.png) [@Archive-o-matic](https://discourse.openrobotics.org/u/Archive-o-matic)\
**Post date:** [February 18, 2025, 6:29am UTC](https://discourse.openrobotics.org/t/setting-up-rmf-for-custom-physical-robot-142/44601/7 "2025-02-18T06:29:08Z")

</div>

Posted by @0RBalaji:

Did you check whether the files exists at the path which is shown in terminal?
