Obey_approach_speed_limit: How to set false to true (#600)

Posted by @hollyolive:

Does anyone know how to set obey_approach_speed_limit: false to true?

---
name: cleanerBotE_0
model: ''
task_id: ''
seq: 722
mode:
  mode: 0
  mode_request_id: 0
  performing_action: ''
battery_percent: 99.0
location:
  t:
    sec: 368
    nanosec: 180000000
  x: 159.69854736328125
  y: -55.561195373535156
  yaw: 1.5709567070007324
  obey_approach_speed_limit: false
  approach_speed_limit: 0.0
  level_name: L1
  index: 0
path: []
---

Posted by @xiyuoh:

Hello @hollyolive ! Within rmf_demos the fleet manager takes care of setting the obey_approach_speed_limit. If you set a valid speed limit (> 0.0) on a lane in your navigation graph, this information will be relayed to the fleet adapter via Destination when the robot is ready to travel on that lane, and both the obey_approach_speed_limit and approach_speed_limit data will be filled in here in the fleet manager.

If you do not have any speed limits configured for the lane and it remains at the default 0.0, RMF will assume that a limit does not exist. If you are setting up your own fleet adapter/manager, you can refer to how the rmf_demos fleet manager obtains speed limit data from the Destination passed to the fleet adapter and implement something similar.

Posted by @hollyolive:

Hello @xiyuoh!
Thank you for your response.
I want to limit the speed of my robot.
I do not have a speed limit for lanes.

/rmf_demos_ws/install/rmf_demos/share/rmf_demos/config/airport_terminal# ls
cleanerBotA_config.yaml cleanerBotE_config.yaml deliveryRobot_config.yaml tinyRobot_config.yaml

linear: [0.5, 0.75]

I think I have changed this file to limit the speed of the robot.
But the speed of the robot did not change.
Only when I set the maximum speed to 0.0 the robot stopped moving.
If you know how to limit the speed of the robot, please let me know.

Posted by @xiyuoh:

You might have missed it in the comment above, the way to set speed limits is to add a non-zero speed limit to lane properties in your navigation graph. It looks something like this:

You’ll have to do this for every lane you’d like to impose the speed limit on.

Posted by @hollyolive:

Thank you for your response.
I can do the speed limit on the lanes.
What I cannot do is limit the speed of the robot. Do you know how to adjust this one?

Posted by @xiyuoh:

If I’m understanding correctly you’re trying to run this in rmf_demos with our slotcar plugin. Which means to limit the speed of the robot, you’ll have to set a speed limit on lanes. This is what happens when you add a speed limit to lanes in rmf_demos:

  • The fleet adapter conveys the speed limit to the fleet manager here
  • The fleet manager receives speed limit data and relays it to the slotcar plugin
  • slotcar reads the speed limit, updates result.max_speed to the implemented speed limit, and adjusts the robot’s linear speed.