From 14440743c92dcbfb0d9c425f395167bcb8ea2889 Mon Sep 17 00:00:00 2001 From: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> Date: Tue, 27 Feb 2024 13:18:39 +0100 Subject: [PATCH] DOCS-1781: Handle planning for the zero pose --- docs/mobility/motion/_index.md | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 731e70e563..bf2513b48a 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -358,26 +358,29 @@ logger.Info("Orientation of myArm from the motion service:", myArmMotionPose.Pos ### MoveOnMap Move a [base](/components/base/) component to a destination [`Pose`](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.Pose) on a {{< glossary_tooltip term_id="slam" text="SLAM" >}} map. -Use the machine's position reported by the {{< glossary_tooltip term_id="slam" text="SLAM" >}} service to check the location of the machine. - -{{< alert title="Usage" color="tip" >}} `MoveOnMap()` is non blocking, meaning the motion service will move the component to the destination [`Pose`](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.Pose) after `MoveOnMap()` returns. -Each successful `MoveOnMap()` call retuns a unique `ExecutionID` which you can use to identify all plans generated during the `MoveOnMap()` call. +Each successful `MoveOnMap()` call returns a unique `ExecutionID` which you can use to identify all plans generated during the `MoveOnMap()` call. + +{{< alert title="Info" color="info" >}} +If you specify a goal pose or orientation and the robot's current position is already at the goal post or orientation, `MoveonMap` returns an error. +{{< /alert >}} You can monitor the progress of the `MoveOnMap()` call by querying `GetPlan()` and `ListPlanStatuses()`. +Use the machine's position reported by the {{< glossary_tooltip term_id="slam" text="SLAM" >}} service to check the location of the machine. + `MoveOnMap()` is intended for use with the [navigation service](/mobility/navigation/), providing autonomous indoor navigation for rover [bases](/components/base/). +{{< alert title="Requirements" color="info" >}} To use `MoveOnMap()`, your [SLAM service](/mobility/slam/) must implement `GetPointCloudMap()` and `GetPosition()` -Make sure the [SLAM service](/mobility/slam/) you use supports usage of the following methods in its {{< glossary_tooltip term_id="model" text="model's" >}} implementation of the [SLAM service API](/mobility/slam/#api): +Make sure the [SLAM service](/mobility/slam/) you use alongside the this motion service supports the following methods in its {{< glossary_tooltip term_id="model" text="model's" >}} implementation of the [SLAM service API](/mobility/slam/#api): - It must support `GetPointCloudMap()` to report the SLAM map as a pointcloud. - It must support `GetPosition()` to report the machine's current location on the SLAM map. - -{{< /alert >}} + {{< /alert >}} {{< tabs >}} {{% tab name="Python" %}} @@ -474,16 +477,19 @@ executionID, err := motionService.MoveOnMap(context.Background(), motion.MoveOnM Move a [base](/components/base/) component to a destination GPS point, represented in geographic notation _(latitude, longitude)_. Use a [movement sensor](/components/movement-sensor/) to check the location of the machine. -{{< alert title="Usage" color="tip" >}} - `MoveOnGlobe()` is non blocking, meaning the motion service will move the component to the destination GPS point after `MoveOnGlobe()` returns. Each successful `MoveOnGlobe()` call retuns a unique `ExecutionID` which you can use to identify all plans generated during the `MoveOnGlobe()`. +{{< alert title="Info" color="info" >}} +If you specify a goal pose or orientation and the robot's current position is already at the goal post or orientation, `MoveonMap` returns an error. +{{< /alert >}} + You can monitor the progress of the `MoveOnGlobe()` call by querying `GetPlan()` and `ListPlanStatuses()`. `MoveOnGlobe()` is intended for use with the [navigation service](/mobility/navigation/), providing autonomous GPS navigation for rover [bases](/components/base/). +{{< alert title="Requirements" color="info" >}} To use `MoveOnGlobe()`, your movement sensor must be able to measure the GPS location and orientation of the machine. Make sure the [movement sensor](/components/movement-sensor/) you use supports usage of the following methods in its {{< glossary_tooltip term_id="model" text="model's" >}} implementation of the [movement sensor API](/components/movement-sensor/#api). @@ -491,8 +497,7 @@ Make sure the [movement sensor](/components/movement-sensor/) you use supports u - It must support `GetPosition()` to report the machine's current GPS location. - It must **also** support **either** `GetCompassHeading()` or `GetOrientation()` to report which way the machine is facing. - If your movement sensor provides multiple methods, your machine will default to using the values returned by `GetCompassHeading()`. - -{{< /alert >}} + {{< /alert >}} {{< alert title="Stability Notice" color="alert" >}}