From bb16ba040416d282a8b80d805ee009f3830c24a3 Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Thu, 7 Dec 2023 17:02:31 -0500 Subject: [PATCH 01/27] RSDK-6001 - Add Expose Paths project RPC methods --- docs/mobility/motion/_index.md | 241 ++++++++++++++++++++++++++++++--- 1 file changed, 223 insertions(+), 18 deletions(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index edd3f845ea..e4779dd359 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -434,6 +434,12 @@ Use a [movement sensor](/components/movement-sensor/) to check the location of t {{< 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 ExectionID which can be used to identify all plans generated durring the `MoveOnGlobe()`. + +The progress of the `MoveOnGlobe()` call can be monitored 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/). To use `MoveOnGlobe()`, your movement sensor must be able to measure the GPS location and orientation of the robot. @@ -465,7 +471,7 @@ Translation in obstacles is not supported by the [navigation service](/mobility/ - `destination` [(GeoPoint)](https://python.viam.dev/autoapi/viam/components/movement_sensor/index.html#viam.components.movement_sensor.GeoPoint): The location of the component's destination, represented in geographic notation as a [GeoPoint](https://python.viam.dev/autoapi/viam/components/movement_sensor/index.html#viam.components.movement_sensor.GeoPoint) _(lat, lng)_. - `movement_sensor_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName): The `ResourceName` of the [movement sensor](/components/movement-sensor/) that you want to use to check the robot's location. - `obstacles` [(Optional[Sequence[GeoObstacle]])](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.GeoObstacle): Obstacles to consider when planning the motion of the component, with each represented as a `GeoObstacle`. -- `heading` [(Optional[float])](https://docs.python.org/library/typing.html#typing.Optional): The compass heading, in degrees, that the robot's movement sensor should report at the `destination` point. +- `heading` [(Optional[float])](https://docs.python.org/library/typing.html#typing.Optional): The compass heading, in degrees, that the robot's movement sensor should report at the `destination` point. - `configuration` [(Optional[MotionConfiguration])](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.MotionConfiguration): The configuration you want to set across this robot for this motion service. This parameter and each of its fields are optional. - `obstacle_detectors` [(Iterable[ObstacleDetector])](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.ObstacleDetector): The names of each [vision service](/ml/vision/) and [camera](/components/camera/) resource pair you want to use for transient obstacle avoidance. - `position_polling_frequency_hz` [(float)](https://docs.python.org/3/library/functions.html#float): The frequency in hz to poll the position of the robot. @@ -478,7 +484,7 @@ Translation in obstacles is not supported by the [navigation service](/mobility/ **Returns:** -- [(bool)](https://docs.python.org/3/library/stdtypes.html#bltin-boolean-values): Whether the request to `MoveOnGlobe` was successful. +- [(str)](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str): ExecutionID of the `MoveOnGlobe` call. For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.move_on_globe). @@ -494,7 +500,7 @@ my_destination = movement_sensor.GeoPoint(latitude=0, longitude=0) # Move the base component to the designated geographic location, as reported by # the movement sensor -success = await motion.move_on_globe( +execution_id = await motion.move_on_globe( component_name=my_base_resource_name, destination=my_destination, movement_sensor_name=mvmnt_sensor_resource_name) @@ -505,24 +511,26 @@ success = await motion.move_on_globe( **Parameters:** + - `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. -- `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to move. -- `destination` [(\*geo.Point)](https://pkg.go.dev/github.com/kellydunn/golang-geo#Point): The location of the component's destination, represented in geographic notation as a [Point](https://pkg.go.dev/github.com/kellydunn/golang-geo#Point) _(lat, lng)_. -- `heading` [(float64)](https://pkg.go.dev/builtin#float64): The compass heading, in degrees, that the robot's movement sensor should report at the `destination` point. -- `movementSensorName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the [movement sensor](/components/movement-sensor/) that you want to use to check the robot's location. -- `obstacles` [([]\*spatialmath.GeoObstacle)](https://pkg.go.dev/go.viam.com/rdk/spatialmath#GeoObstacle): Obstacles to consider when planning the motion of the component, with each represented as a `GeoObstacle`. -- `motionConfig` [(\*MotionConfiguration)](https://pkg.go.dev/go.viam.com/rdk/services/motion#MotionConfiguration): The configuration you want to set across this robot for this motion service. This parameter and each of its fields are optional. - - `ObstacleDetectors` [([]ObstacleDetectorName)](https://pkg.go.dev/go.viam.com/rdk/services/motion#ObstacleDetectorName): The names of each [vision service](/ml/vision/) and [camera](/components/camera/) resource pair you want to use for transient obstacle avoidance. - - `PositionPollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the position of the robot. - - `ObstaclePollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the vision service for new obstacles. - - `PlanDeviationMM` [(float64)](https://pkg.go.dev/builtin#float64): The distance in millimeters that the machine can deviate from the motion plan. - - `LinearMPerSec` [(float64)](https://pkg.go.dev/builtin#float64): Linear velocity this machine should target when moving. - - `AngularDegsPerSec` [(float64)](https://pkg.go.dev/builtin#float64): Angular velocity this machine should target when turning. -- `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. +- `req` [MoveOnGlobeReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#MoveOnGlobeReq): A `MoveOnGlobeReq` which contains the following values: + - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to move. + - `destination` [(\*geo.Point)](https://pkg.go.dev/github.com/kellydunn/golang-geo#Point): The location of the component's destination, represented in geographic notation as a [Point](https://pkg.go.dev/github.com/kellydunn/golang-geo#Point) _(lat, lng)_. + - `heading` [(float64)](https://pkg.go.dev/builtin#float64): The compass heading, in degrees, that the robot's movement sensor should report at the `destination` point. + - `movementSensorName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the [movement sensor](/components/movement-sensor/) that you want to use to check the robot's location. + - `obstacles` [([]\*spatialmath.GeoObstacle)](https://pkg.go.dev/go.viam.com/rdk/spatialmath#GeoObstacle): Obstacles to consider when planning the motion of the component, with each represented as a `GeoObstacle`. + - `motionConfig` [(\*MotionConfiguration)](https://pkg.go.dev/go.viam.com/rdk/services/motion#MotionConfiguration): The configuration you want to set across this robot for this motion service. This parameter and each of its fields are optional. + - `ObstacleDetectors` [([]ObstacleDetectorName)](https://pkg.go.dev/go.viam.com/rdk/services/motion#ObstacleDetectorName): The names of each [vision service](/ml/vision/) and [camera](/components/camera/) resource pair you want to use for transient obstacle avoidance. + - `PositionPollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the position of the robot. + - `ObstaclePollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the vision service for new obstacles. + - `PlanDeviationMM` [(float64)](https://pkg.go.dev/builtin#float64): The distance in millimeters that the machine can deviate from the motion plan. + - `LinearMPerSec` [(float64)](https://pkg.go.dev/builtin#float64): Linear velocity this machine should target when moving. + - `AngularDegsPerSec` [(float64)](https://pkg.go.dev/builtin#float64): Angular velocity this machine should target when turning. + - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. **Returns:** -- [(bool)](https://pkg.go.dev/builtin#bool): Whether the request to `MoveOnGlobe` was successful. +- [(ExecutionID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#ExecutionID): ExecutionID of the `MoveOnGlobe` call. - [(error)](https://pkg.go.dev/builtin#error): An error, if one occurred. For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/services/motion#Service). @@ -537,7 +545,204 @@ myMvmntSensorResourceName := movement_sensor.Named("my_movement_sensor") myDestination := geo.NewPoint(0, 0) // Move the base component to the designated geographic location, as reported by the movement sensor -success, err := motionService.MoveOnGlobe(context.Background(), myBaseResourceName, myDestination, myMvmntSensorResourceName, nil) +ctx := context.Background() +executionID, err := motionService.MoveOnGlobe(ctx, motion.MoveOnGlobeReq{ + ComponentName: myBaseResourceName, + Destination: myDestination, + MovementSensorName: myMvmntSensorResourceName, +}) +``` + +{{% /tab %}} +{{< /tabs >}} + +### StopPlan + +Stop a [base](/components/base/) component being moved by an in progress `MoveOnGlobe()` call. + +{{< tabs >}} +{{% tab name="Python" %}} + +**Parameters:** + +- `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName): The `ResourceName` of the base to stop. +- `extra` [(Optional\[Dict\[str, Any\]\])](https://docs.python.org/library/typing.html#typing.Optional): Extra options to pass to the underlying RPC call. +- `timeout` [(Optional\[float\])](https://docs.python.org/library/typing.html#typing.Optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call. + +**Returns:** + +- [(None)](https://docs.python.org/3/library/stdtypes.html#the-null-object) + +For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.stop_plan). + +```python {class="line-numbers linkable-line-numbers"} +motion = MotionClient.from_robot(robot=robot, name="builtin") +my_base_resource_name = Base.get_resource_name("my_base") + +# Assuming a move_on_globe started started the execution +# mvmnt_sensor_resource_name = MovementSensor.get_resource_name("my_movement_sensor") +# my_destination = movement_sensor.GeoPoint(latitude=0, longitude=0) +# execution_id = await motion.move_on_globe( +# component_name=my_base_resource_name, +# destination=my_destination, +# movement_sensor_name=mvmnt_sensor_resource_name) + +# Stop the base component which was instructed to move by `MoveOnGlobe()` +my_base_resource_name = Base.get_resource_name("my_base") +await motion.stop_plan(component_name=my_base_resource_name) +``` + +{{% /tab %}} +{{% tab name="Go" %}} + +**Parameters:** + +- `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. +- `req` [StopPlanReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#StopPlanReq): A `StopPlanReq` which contains the following values: + - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to stop. + - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. + +**Returns:** + +- [(error)](https://pkg.go.dev/builtin#error): An error, if one occurred. + +For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/services/motion#Service). + +```go {class="line-numbers linkable-line-numbers"} +motionService, err := motion.FromRobot(robot, "builtin") +myBaseResourceName := base.Named("myBase") +ctx := context.Background() + +// Assuming a move_on_globe started started the execution +// myMvmntSensorResourceName := movement_sensor.Named("my_movement_sensor") +// myDestination := geo.NewPoint(0, 0) +// executionID, err := motionService.MoveOnGlobe(ctx, motion.MoveOnGlobeReq{ +// ComponentName: myBaseResourceName, +// Destination: myDestination, +// MovementSensorName: myMvmntSensorResourceName, +// }) + +// Stop the base component which was instructed to move by `MoveOnGlobe()` +err := motionService.StopPlan(context.Background(), motion.StopPlanReq{ + ComponentName: s.req.ComponentName, +}) +``` + +{{% /tab %}} +{{< /tabs >}} + +### GetPlan +Returns the plan(s) & state history of the most recent `MoveOnGlobe()` call to move a [base](/components/base/) component. + +Returns a result if the last execution (call to `MoveOnGlobe`) is still executing OR changed state within the last 24 hours AND the robot has not reinitialized. + +Plans are never mutated. + +Replans always create new plans. + +Replans share the ExecutionID of the previously executing plan. + +{{< tabs >}} +{{% tab name="Python" %}} + +**Parameters:** + +- `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName): The `ResourceName` of the base to stop. +- `lastPlanOnly` [(Optional\[bool\])](https://docs.python.org/library/typing.html#typing.Optional): If `true`, the response will only return the the last plan for the component / execution +- `executionID` [(Optional\[str\])](https://docs.python.org/library/typing.html#typing.Optional): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. +- `extra` [(Optional\[Dict\[str, Any\]\])](https://docs.python.org/library/typing.html#typing.Optional): Extra options to pass to the underlying RPC call. +- `timeout` [(Optional\[float\])](https://docs.python.org/library/typing.html#typing.Optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call. + +**Returns:** + +- [(GetPlanResponse)](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.GetPlanResponse) + +For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.get_plan). + +```python {class="line-numbers linkable-line-numbers"} +motion = MotionClient.from_robot(robot=robot, name="builtin") +my_base_resource_name = Base.get_resource_name("my_base") +# Get the plan(s) of the base component which was instructed to move by `MoveOnGlobe()` +resp = await motion.get_plan(component_name=my_base_resource_name) +``` + +{{% /tab %}} +{{% tab name="Go" %}} + +**Parameters:** + +- `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. +- `req` [PlanHistoryReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanHistoryReq): A `PlanHistoryReq` which contains the following values: + - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to stop. + - `lastPlanOnly` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return the the last plan for the component / execution + - `executionID` [(ExecutionID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanHistoryReq): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. + - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. + +**Returns:** + +- [([]PlanWithStatus)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanWithStatus): PlanWithStatus contains a plan, its current status, and all state changes that came prior sorted by ascending timestamp. +- [(error)](https://pkg.go.dev/builtin#error): An error, if one occurred. + +For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/services/motion#Service). + +```go {class="line-numbers linkable-line-numbers"} +motionService, err := motion.FromRobot(robot, "builtin") +# Get the plan(s) of the base component's most recent execution i.e. `MoveOnGlobe()` call. +ctx := context.Background() +planHistory, err := motionService.PlanHistory(ctx, motion.PlanHistoryReq{ + ComponentName: s.req.ComponentName, +}) +``` + +{{% /tab %}} +{{< /tabs >}} + +### ListPlanStatuses +Returns the status of plans created by MoveOnGlobe requests that are executing OR are part of an execution which changed it state within the a 24HR TTL OR until the robot reinitializes. + +{{< tabs >}} +{{% tab name="Python" %}} + +**Parameters:** + +- `onlyActivePlans` [(Optional\[bool\])](https://docs.python.org/library/typing.html#typing.Optional): If `true`, the response will only return plans which are executing. +- `extra` [(Optional\[Dict\[str, Any\]\])](https://docs.python.org/library/typing.html#typing.Optional): Extra options to pass to the underlying RPC call. +- `timeout` [(Optional\[float\])](https://docs.python.org/library/typing.html#typing.Optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call. + +**Returns:** + +- [(ListPlanStatusesResponse)](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.ListPlanStatusesResponse) + +For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.list_plan_statuses). + +```python {class="line-numbers linkable-line-numbers"} +motion = MotionClient.from_robot(robot=robot, name="builtin") +# List the plan statuses of the motion service within the TTL +resp = await motion.list_plan_statuses() +``` + +{{% /tab %}} +{{% tab name="Go" %}} + +**Parameters:** + +- `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. +- `req` [ListPlanStatusesReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#ListPlanStatusesReq): A `ListPlanStatusesReq` which contains the following values: + - `onlyActivePlans` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return plans which are executing. + - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. + +**Returns:** + +- [([]PlanStatusWithID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanStatusWithID): PlanStatusWithID describes the state of a given plan at a point in time plus the PlanId, ComponentName and ExecutionID the status is associated with. +- [(error)](https://pkg.go.dev/builtin#error): An error, if one occurred. + +For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/services/motion#Service). + +```go {class="line-numbers linkable-line-numbers"} +motionService, err := motion.FromRobot(robot, "builtin") +# Get the plan(s) of the base component's most recent execution i.e. `MoveOnGlobe()` call. +ctx := context.Background() +planStatuses, err := motionService.ListPlanStatuses(ctx, motion.ListPlanStatusesReq{}) ``` {{% /tab %}} From 0d50dcbe61a160c9a0745259ac04a710ba2cecff Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Thu, 7 Dec 2023 17:14:33 -0500 Subject: [PATCH 02/27] wip --- docs/mobility/motion/_index.md | 47 ++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index e4779dd359..1bea1fe614 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -511,22 +511,21 @@ execution_id = await motion.move_on_globe( **Parameters:** - - `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. - `req` [MoveOnGlobeReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#MoveOnGlobeReq): A `MoveOnGlobeReq` which contains the following values: - - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to move. - - `destination` [(\*geo.Point)](https://pkg.go.dev/github.com/kellydunn/golang-geo#Point): The location of the component's destination, represented in geographic notation as a [Point](https://pkg.go.dev/github.com/kellydunn/golang-geo#Point) _(lat, lng)_. - - `heading` [(float64)](https://pkg.go.dev/builtin#float64): The compass heading, in degrees, that the robot's movement sensor should report at the `destination` point. - - `movementSensorName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the [movement sensor](/components/movement-sensor/) that you want to use to check the robot's location. - - `obstacles` [([]\*spatialmath.GeoObstacle)](https://pkg.go.dev/go.viam.com/rdk/spatialmath#GeoObstacle): Obstacles to consider when planning the motion of the component, with each represented as a `GeoObstacle`. - - `motionConfig` [(\*MotionConfiguration)](https://pkg.go.dev/go.viam.com/rdk/services/motion#MotionConfiguration): The configuration you want to set across this robot for this motion service. This parameter and each of its fields are optional. - - `ObstacleDetectors` [([]ObstacleDetectorName)](https://pkg.go.dev/go.viam.com/rdk/services/motion#ObstacleDetectorName): The names of each [vision service](/ml/vision/) and [camera](/components/camera/) resource pair you want to use for transient obstacle avoidance. - - `PositionPollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the position of the robot. - - `ObstaclePollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the vision service for new obstacles. - - `PlanDeviationMM` [(float64)](https://pkg.go.dev/builtin#float64): The distance in millimeters that the machine can deviate from the motion plan. - - `LinearMPerSec` [(float64)](https://pkg.go.dev/builtin#float64): Linear velocity this machine should target when moving. - - `AngularDegsPerSec` [(float64)](https://pkg.go.dev/builtin#float64): Angular velocity this machine should target when turning. - - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. + - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to move. + - `destination` [(\*geo.Point)](https://pkg.go.dev/github.com/kellydunn/golang-geo#Point): The location of the component's destination, represented in geographic notation as a [Point](https://pkg.go.dev/github.com/kellydunn/golang-geo#Point) _(lat, lng)_. + - `heading` [(float64)](https://pkg.go.dev/builtin#float64): The compass heading, in degrees, that the robot's movement sensor should report at the `destination` point. + - `movementSensorName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the [movement sensor](/components/movement-sensor/) that you want to use to check the robot's location. + - `obstacles` [([]\*spatialmath.GeoObstacle)](https://pkg.go.dev/go.viam.com/rdk/spatialmath#GeoObstacle): Obstacles to consider when planning the motion of the component, with each represented as a `GeoObstacle`. + - `motionConfig` [(\*MotionConfiguration)](https://pkg.go.dev/go.viam.com/rdk/services/motion#MotionConfiguration): The configuration you want to set across this robot for this motion service. This parameter and each of its fields are optional. + - `ObstacleDetectors` [([]ObstacleDetectorName)](https://pkg.go.dev/go.viam.com/rdk/services/motion#ObstacleDetectorName): The names of each [vision service](/ml/vision/) and [camera](/components/camera/) resource pair you want to use for transient obstacle avoidance. + - `PositionPollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the position of the robot. + - `ObstaclePollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the vision service for new obstacles. + - `PlanDeviationMM` [(float64)](https://pkg.go.dev/builtin#float64): The distance in millimeters that the machine can deviate from the motion plan. + - `LinearMPerSec` [(float64)](https://pkg.go.dev/builtin#float64): Linear velocity this machine should target when moving. + - `AngularDegsPerSec` [(float64)](https://pkg.go.dev/builtin#float64): Angular velocity this machine should target when turning. + - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. **Returns:** @@ -599,8 +598,8 @@ await motion.stop_plan(component_name=my_base_resource_name) - `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. - `req` [StopPlanReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#StopPlanReq): A `StopPlanReq` which contains the following values: - - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to stop. - - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. + - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to stop. + - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. **Returns:** @@ -642,6 +641,8 @@ Replans always create new plans. Replans share the ExecutionID of the previously executing plan. +All repeated fields are in time ascending order. + {{< tabs >}} {{% tab name="Python" %}} @@ -673,10 +674,10 @@ resp = await motion.get_plan(component_name=my_base_resource_name) - `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. - `req` [PlanHistoryReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanHistoryReq): A `PlanHistoryReq` which contains the following values: - - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to stop. - - `lastPlanOnly` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return the the last plan for the component / execution - - `executionID` [(ExecutionID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanHistoryReq): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. - - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. + - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to stop. + - `lastPlanOnly` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return the the last plan for the component / execution + - `executionID` [(ExecutionID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanHistoryReq): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. + - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. **Returns:** @@ -700,6 +701,8 @@ planHistory, err := motionService.PlanHistory(ctx, motion.PlanHistoryReq{ ### ListPlanStatuses Returns the status of plans created by MoveOnGlobe requests that are executing OR are part of an execution which changed it state within the a 24HR TTL OR until the robot reinitializes. +All repeated fields are in time ascending order. + {{< tabs >}} {{% tab name="Python" %}} @@ -728,8 +731,8 @@ resp = await motion.list_plan_statuses() - `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. - `req` [ListPlanStatusesReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#ListPlanStatusesReq): A `ListPlanStatusesReq` which contains the following values: - - `onlyActivePlans` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return plans which are executing. - - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. + - `onlyActivePlans` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return plans which are executing. + - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. **Returns:** From 2aa0c21b86dc6fdb6a181c8402faabef1dab48f8 Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Thu, 7 Dec 2023 17:17:39 -0500 Subject: [PATCH 03/27] fix markdown lint --- docs/mobility/motion/_index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 1bea1fe614..5ef4f20c2b 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -631,6 +631,7 @@ err := motionService.StopPlan(context.Background(), motion.StopPlanReq{ {{< /tabs >}} ### GetPlan + Returns the plan(s) & state history of the most recent `MoveOnGlobe()` call to move a [base](/components/base/) component. Returns a result if the last execution (call to `MoveOnGlobe`) is still executing OR changed state within the last 24 hours AND the robot has not reinitialized. @@ -699,6 +700,7 @@ planHistory, err := motionService.PlanHistory(ctx, motion.PlanHistoryReq{ {{< /tabs >}} ### ListPlanStatuses + Returns the status of plans created by MoveOnGlobe requests that are executing OR are part of an execution which changed it state within the a 24HR TTL OR until the robot reinitializes. All repeated fields are in time ascending order. From 0f104da21a16a16440b6c1b8295d6cd62c1a8e30 Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Thu, 7 Dec 2023 17:22:45 -0500 Subject: [PATCH 04/27] lint --- docs/mobility/motion/_index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 5ef4f20c2b..522ab6f41a 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -579,7 +579,7 @@ motion = MotionClient.from_robot(robot=robot, name="builtin") my_base_resource_name = Base.get_resource_name("my_base") # Assuming a move_on_globe started started the execution -# mvmnt_sensor_resource_name = MovementSensor.get_resource_name("my_movement_sensor") +# mvmnt_sensor = MovementSensor.get_resource_name("my_movement_sensor") # my_destination = movement_sensor.GeoPoint(latitude=0, longitude=0) # execution_id = await motion.move_on_globe( # component_name=my_base_resource_name, @@ -588,7 +588,7 @@ my_base_resource_name = Base.get_resource_name("my_base") # Stop the base component which was instructed to move by `MoveOnGlobe()` my_base_resource_name = Base.get_resource_name("my_base") -await motion.stop_plan(component_name=my_base_resource_name) +await motion.stop_plan(component_name=mvmnt_sensor) ``` {{% /tab %}} @@ -664,7 +664,8 @@ For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/ ```python {class="line-numbers linkable-line-numbers"} motion = MotionClient.from_robot(robot=robot, name="builtin") my_base_resource_name = Base.get_resource_name("my_base") -# Get the plan(s) of the base component which was instructed to move by `MoveOnGlobe()` +# Get the plan(s) of the base component which was instructed +# to move by `MoveOnGlobe()` resp = await motion.get_plan(component_name=my_base_resource_name) ``` From 64b7d1a4937d18f49e9fbaecb0e5594d723a3132 Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Thu, 7 Dec 2023 17:29:29 -0500 Subject: [PATCH 05/27] run prettier --- docs/mobility/motion/_index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 522ab6f41a..27997a2bcf 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -650,8 +650,8 @@ All repeated fields are in time ascending order. **Parameters:** - `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName): The `ResourceName` of the base to stop. -- `lastPlanOnly` [(Optional\[bool\])](https://docs.python.org/library/typing.html#typing.Optional): If `true`, the response will only return the the last plan for the component / execution -- `executionID` [(Optional\[str\])](https://docs.python.org/library/typing.html#typing.Optional): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. +- `lastPlanOnly` [(Optional\[bool\])](https://docs.python.org/library/typing.html#typing.Optional): If `true`, the response will only return the the last plan for the component / execution +- `executionID` [(Optional\[str\])](https://docs.python.org/library/typing.html#typing.Optional): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. - `extra` [(Optional\[Dict\[str, Any\]\])](https://docs.python.org/library/typing.html#typing.Optional): Extra options to pass to the underlying RPC call. - `timeout` [(Optional\[float\])](https://docs.python.org/library/typing.html#typing.Optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call. @@ -677,8 +677,8 @@ resp = await motion.get_plan(component_name=my_base_resource_name) - `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. - `req` [PlanHistoryReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanHistoryReq): A `PlanHistoryReq` which contains the following values: - `componentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to stop. - - `lastPlanOnly` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return the the last plan for the component / execution - - `executionID` [(ExecutionID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanHistoryReq): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. + - `lastPlanOnly` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return the the last plan for the component / execution + - `executionID` [(ExecutionID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanHistoryReq): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. **Returns:** @@ -711,7 +711,7 @@ All repeated fields are in time ascending order. **Parameters:** -- `onlyActivePlans` [(Optional\[bool\])](https://docs.python.org/library/typing.html#typing.Optional): If `true`, the response will only return plans which are executing. +- `onlyActivePlans` [(Optional\[bool\])](https://docs.python.org/library/typing.html#typing.Optional): If `true`, the response will only return plans which are executing. - `extra` [(Optional\[Dict\[str, Any\]\])](https://docs.python.org/library/typing.html#typing.Optional): Extra options to pass to the underlying RPC call. - `timeout` [(Optional\[float\])](https://docs.python.org/library/typing.html#typing.Optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call. @@ -734,7 +734,7 @@ resp = await motion.list_plan_statuses() - `ctx` [(Context)](https://pkg.go.dev/context): A Context carries a deadline, a cancellation signal, and other values across API boundaries. - `req` [ListPlanStatusesReq](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#ListPlanStatusesReq): A `ListPlanStatusesReq` which contains the following values: - - `onlyActivePlans` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return plans which are executing. + - `onlyActivePlans` [(bool)](https://pkg.go.dev/builtin#bool): If `true`, the response will only return plans which are executing. - `extra` [(map\[string\]interface{})](https://go.dev/blog/maps): Extra options to pass to the underlying RPC call. **Returns:** From f78ca7f7963397a77cf46b124a0fed04256aaf23 Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Thu, 7 Dec 2023 17:33:44 -0500 Subject: [PATCH 06/27] fix reviewdog --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 27997a2bcf..e0106036e3 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -632,7 +632,7 @@ err := motionService.StopPlan(context.Background(), motion.StopPlanReq{ ### GetPlan -Returns the plan(s) & state history of the most recent `MoveOnGlobe()` call to move a [base](/components/base/) component. +Returns the plan history of the most recent `MoveOnGlobe()` call to move a [base](/components/base/) component. Returns a result if the last execution (call to `MoveOnGlobe`) is still executing OR changed state within the last 24 hours AND the robot has not reinitialized. From 3f36971c75e2f8666ea703340cf5ade618e81597 Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Thu, 7 Dec 2023 18:03:01 -0500 Subject: [PATCH 07/27] update --- docs/mobility/motion/_index.md | 6 +++--- static/include/services/apis/motion.md | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index e0106036e3..19fba639e5 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -557,7 +557,7 @@ executionID, err := motionService.MoveOnGlobe(ctx, motion.MoveOnGlobeReq{ ### StopPlan -Stop a [base](/components/base/) component being moved by an in progress `MoveOnGlobe()` call. +Stop a [base](/components/base/) component being moved by an in progress [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call. {{< tabs >}} {{% tab name="Python" %}} @@ -632,7 +632,7 @@ err := motionService.StopPlan(context.Background(), motion.StopPlanReq{ ### GetPlan -Returns the plan history of the most recent `MoveOnGlobe()` call to move a [base](/components/base/) component. +Returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. Returns a result if the last execution (call to `MoveOnGlobe`) is still executing OR changed state within the last 24 hours AND the robot has not reinitialized. @@ -702,7 +702,7 @@ planHistory, err := motionService.PlanHistory(ctx, motion.PlanHistoryReq{ ### ListPlanStatuses -Returns the status of plans created by MoveOnGlobe requests that are executing OR are part of an execution which changed it state within the a 24HR TTL OR until the robot reinitializes. +Returns the plan statuses created by [`MoveOnGlobe`](/mobility/motion/#moveonglobe) calls that are executing OR are part of an execution which changed it state within the a 24HR TTL OR until the robot reinitializes. All repeated fields are in time ascending order. diff --git a/static/include/services/apis/motion.md b/static/include/services/apis/motion.md index 0dfee500a8..ea263a2e54 100644 --- a/static/include/services/apis/motion.md +++ b/static/include/services/apis/motion.md @@ -5,5 +5,8 @@ Method Name | Description [`GetPose`](/mobility/motion/#getpose) | Get the current location and orientation of a component as a `Pose`. [`MoveOnMap`](/mobility/motion/#moveonmap) | Move a [base](/components/base/) component to a `Pose` in respect to the origin of a {{< glossary_tooltip term_id="slam" text="SLAM" >}} map. [`MoveOnGlobe`](/mobility/motion/#moveonglobe) | Move a [base](/components/base/) component to a destination GPS point. Use a [Movement Sensor](/components/movement-sensor/) to measure the robot's GPS coordinates. +[`StopPlan`](/mobility/motion/#stopplan) | Stop a [base](/components/base/) component being moved by an in progress [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call. +[`GetPlan`](/mobility/motion/#getplan) | Returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. +[`ListPlanStatuses`](/mobility/motion/#listplanstatuses) | Returns the plan statuses created by [`MoveOnGlobe`](/mobility/motion/#moveonglobe) calls [`DoCommand`](/mobility/motion/#docommand) | Send arbitrary commands to the resource. [`Close`](/mobility/motion/#close) | Safely shut down the resource and prevent further use. From 17cf3915c0b4c8547dda4a678609dbe08882c81b Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 8 Dec 2023 10:48:19 -0500 Subject: [PATCH 08/27] Update docs/mobility/motion/_index.md Co-authored-by: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 19fba639e5..668217bc96 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -436,7 +436,7 @@ Use a [movement sensor](/components/movement-sensor/) to check the location of t `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 ExectionID which can be used to identify all plans generated durring the `MoveOnGlobe()`. +Each successful `MoveOnGlobe()` call retuns a unique ExectionID which you can use to identify all plans generated durring the `MoveOnGlobe()`. The progress of the `MoveOnGlobe()` call can be monitored by querying `GetPlan()` and `ListPlanStatuses()`. From 11584a669530a5f6ca88eeaf0545cf7a12f2b855 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 8 Dec 2023 10:48:34 -0500 Subject: [PATCH 09/27] Update docs/mobility/motion/_index.md Co-authored-by: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 668217bc96..f73a48f6f2 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -438,7 +438,7 @@ Use a [movement sensor](/components/movement-sensor/) to check the location of t Each successful `MoveOnGlobe()` call retuns a unique ExectionID which you can use to identify all plans generated durring the `MoveOnGlobe()`. -The progress of the `MoveOnGlobe()` call can be monitored by querying `GetPlan()` and `ListPlanStatuses()`. +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/). From 09ead25cc04e935e5ac560c1f4bec9b44d447c6d Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 8 Dec 2023 10:48:52 -0500 Subject: [PATCH 10/27] Update docs/mobility/motion/_index.md Co-authored-by: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index f73a48f6f2..cc08fb3748 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -704,7 +704,7 @@ planHistory, err := motionService.PlanHistory(ctx, motion.PlanHistoryReq{ Returns the plan statuses created by [`MoveOnGlobe`](/mobility/motion/#moveonglobe) calls that are executing OR are part of an execution which changed it state within the a 24HR TTL OR until the robot reinitializes. -All repeated fields are in time ascending order. +All repeated fields are in chronological order. {{< tabs >}} {{% tab name="Python" %}} From 6b8cf17698e4b174e3ecc3baee7da8afe49ea4d5 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 8 Dec 2023 10:49:14 -0500 Subject: [PATCH 11/27] Update docs/mobility/motion/_index.md Co-authored-by: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index cc08fb3748..6a9cd17f57 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -636,7 +636,7 @@ Returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#mo Returns a result if the last execution (call to `MoveOnGlobe`) is still executing OR changed state within the last 24 hours AND the robot has not reinitialized. -Plans are never mutated. +Plans never change. Replans always create new plans. From 9c7262acc3ed7bba0155cf1759c01964155769fb Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 8 Dec 2023 10:50:32 -0500 Subject: [PATCH 12/27] Update docs/mobility/motion/_index.md Co-authored-by: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> --- docs/mobility/motion/_index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 6a9cd17f57..6890f33f61 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -634,7 +634,10 @@ err := motionService.StopPlan(context.Background(), motion.StopPlanReq{ Returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. -Returns a result if the last execution (call to `MoveOnGlobe`) is still executing OR changed state within the last 24 hours AND the robot has not reinitialized. +Returns a result if both of the following conditions are met: + +- the last execution (call to `MoveOnGlobe`) is still executing **or** changed state within the last 24 hours +- the robot has not reinitialized Plans never change. From 297d99687b9925f2a7be670f9ead503701666e5c Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 8 Dec 2023 11:04:06 -0500 Subject: [PATCH 13/27] Update docs/mobility/motion/_index.md Co-authored-by: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> --- docs/mobility/motion/_index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 6890f33f61..f066039aee 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -705,7 +705,10 @@ planHistory, err := motionService.PlanHistory(ctx, motion.PlanHistoryReq{ ### ListPlanStatuses -Returns the plan statuses created by [`MoveOnGlobe`](/mobility/motion/#moveonglobe) calls that are executing OR are part of an execution which changed it state within the a 24HR TTL OR until the robot reinitializes. +Returns the statuses of plans created by [`MoveOnGlobe`](/mobility/motion/#moveonglobe) calls that meet at least one of the following conditions since the motion service initialized: + +- the plan's status is in progress +- the plan's status changed state within the last 24 hours All repeated fields are in chronological order. From 7c055e0f0260dd96743ab93ccc0313a14e66e5d1 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 8 Dec 2023 12:39:06 -0500 Subject: [PATCH 14/27] Update docs/mobility/motion/_index.md --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index f066039aee..acd6c8987b 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -636,7 +636,7 @@ Returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#mo Returns a result if both of the following conditions are met: -- the last execution (call to `MoveOnGlobe`) is still executing **or** changed state within the last 24 hours +- the execution (call to `MoveOnGlobe`) is still executing **or** changed state within the last 24 hours - the robot has not reinitialized Plans never change. From ce84da22cb45993b6ece46b29276d42304fc7fa6 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 8 Dec 2023 12:39:11 -0500 Subject: [PATCH 15/27] Update docs/mobility/motion/_index.md --- docs/mobility/motion/_index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index acd6c8987b..5eef62b085 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -632,7 +632,9 @@ err := motionService.StopPlan(context.Background(), motion.StopPlanReq{ ### GetPlan -Returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. +By default: returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. + +The plan history for executions before the most recent can be requested by providing an ExecutionID in the request. Returns a result if both of the following conditions are met: From c3b78f51c6b04c9c8d2df305fb0350bd80bca4b2 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Mon, 11 Dec 2023 17:42:51 -0500 Subject: [PATCH 16/27] Update docs/mobility/motion/_index.md Co-authored-by: Ray Bjorkman --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 5eef62b085..f783f81abd 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -695,7 +695,7 @@ For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/s ```go {class="line-numbers linkable-line-numbers"} motionService, err := motion.FromRobot(robot, "builtin") -# Get the plan(s) of the base component's most recent execution i.e. `MoveOnGlobe()` call. +// Get the plan(s) of the base component's most recent execution i.e. `MoveOnGlobe()` call. ctx := context.Background() planHistory, err := motionService.PlanHistory(ctx, motion.PlanHistoryReq{ ComponentName: s.req.ComponentName, From fd83c26f705e6d5e781b6e3b193fac487ba4061f Mon Sep 17 00:00:00 2001 From: nicksanford Date: Mon, 11 Dec 2023 17:42:56 -0500 Subject: [PATCH 17/27] Update docs/mobility/motion/_index.md Co-authored-by: Ray Bjorkman --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index f783f81abd..b5ed15a101 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -754,7 +754,7 @@ For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/s ```go {class="line-numbers linkable-line-numbers"} motionService, err := motion.FromRobot(robot, "builtin") -# Get the plan(s) of the base component's most recent execution i.e. `MoveOnGlobe()` call. +// Get the plan(s) of the base component's most recent execution i.e. `MoveOnGlobe()` call. ctx := context.Background() planStatuses, err := motionService.ListPlanStatuses(ctx, motion.ListPlanStatusesReq{}) ``` From e0177aef2fe0dd43978558c6360a76a49973aefc Mon Sep 17 00:00:00 2001 From: nicksanford Date: Tue, 12 Dec 2023 14:28:15 -0500 Subject: [PATCH 18/27] Update static/include/services/apis/motion.md Co-authored-by: Sierra Guequierre --- static/include/services/apis/motion.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/include/services/apis/motion.md b/static/include/services/apis/motion.md index ea263a2e54..ba2f304eb7 100644 --- a/static/include/services/apis/motion.md +++ b/static/include/services/apis/motion.md @@ -7,6 +7,6 @@ Method Name | Description [`MoveOnGlobe`](/mobility/motion/#moveonglobe) | Move a [base](/components/base/) component to a destination GPS point. Use a [Movement Sensor](/components/movement-sensor/) to measure the robot's GPS coordinates. [`StopPlan`](/mobility/motion/#stopplan) | Stop a [base](/components/base/) component being moved by an in progress [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call. [`GetPlan`](/mobility/motion/#getplan) | Returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. -[`ListPlanStatuses`](/mobility/motion/#listplanstatuses) | Returns the plan statuses created by [`MoveOnGlobe`](/mobility/motion/#moveonglobe) calls +[`ListPlanStatuses`](/mobility/motion/#listplanstatuses) | Returns the plan statuses created by [`MoveOnGlobe`](/mobility/motion/#moveonglobe) calls. [`DoCommand`](/mobility/motion/#docommand) | Send arbitrary commands to the resource. [`Close`](/mobility/motion/#close) | Safely shut down the resource and prevent further use. From f62b2985cf9fc31c043048bad6a5b8f84a931141 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Tue, 12 Dec 2023 14:28:34 -0500 Subject: [PATCH 19/27] Update docs/mobility/motion/_index.md Co-authored-by: Sierra Guequierre --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index b5ed15a101..8d83450636 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -747,7 +747,7 @@ resp = await motion.list_plan_statuses() **Returns:** -- [([]PlanStatusWithID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanStatusWithID): PlanStatusWithID describes the state of a given plan at a point in time plus the PlanId, ComponentName and ExecutionID the status is associated with. +- [([]PlanStatusWithID)](https://pkg.go.dev/go.viam.com/rdk/services/motion@v0.15.1#PlanStatusWithID): `PlanStatusWithID` describes the state of a given plan at a point in time plus the `PlanId`, `ComponentName` and `ExecutionID` the status is associated with. - [(error)](https://pkg.go.dev/builtin#error): An error, if one occurred. For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/services/motion#Service). From c2539fbcbe3440259d2c300dc31f130aab1b8c95 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 15 Dec 2023 10:56:49 -0500 Subject: [PATCH 20/27] Update docs/mobility/motion/_index.md Co-authored-by: Sierra Guequierre --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 8d83450636..4d8c358b80 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -436,7 +436,7 @@ Use a [movement sensor](/components/movement-sensor/) to check the location of t `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 ExectionID which you can use to identify all plans generated durring the `MoveOnGlobe()`. +Each successful `MoveOnGlobe()` call retuns a unique `ExecutionID` which you can use to identify all plans generated during the `MoveOnGlobe()`. You can monitor the progress of the `MoveOnGlobe()` call by querying `GetPlan()` and `ListPlanStatuses()`. From c16851035a013febf3f6808d8f4bb3904c8973ce Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 15 Dec 2023 10:56:58 -0500 Subject: [PATCH 21/27] Update docs/mobility/motion/_index.md Co-authored-by: Sierra Guequierre --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 4d8c358b80..a75bc8a107 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -632,7 +632,7 @@ err := motionService.StopPlan(context.Background(), motion.StopPlanReq{ ### GetPlan -By default: returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. +By default, returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. The plan history for executions before the most recent can be requested by providing an ExecutionID in the request. From 4a927c25902cbb2f41e4622affc1a24eb1f0e453 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 15 Dec 2023 10:58:26 -0500 Subject: [PATCH 22/27] Update docs/mobility/motion/_index.md Co-authored-by: Sierra Guequierre --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index a75bc8a107..b1a7b3a0e1 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -634,7 +634,7 @@ err := motionService.StopPlan(context.Background(), motion.StopPlanReq{ By default, returns the plan history of the most recent [`MoveOnGlobe`](/mobility/motion/#moveonglobe) call to move a [base](/components/base/) component. -The plan history for executions before the most recent can be requested by providing an ExecutionID in the request. +The plan history for executions before the most recent can be requested by providing an `ExecutionID` in the request. Returns a result if both of the following conditions are met: From de6420e9cc52476ed0bd9522b45557bb6f5f4575 Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 15 Dec 2023 10:58:35 -0500 Subject: [PATCH 23/27] Update docs/mobility/motion/_index.md Co-authored-by: Sierra Guequierre --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index b1a7b3a0e1..a02c3b93d9 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -645,7 +645,7 @@ Plans never change. Replans always create new plans. -Replans share the ExecutionID of the previously executing plan. +Replans share the `ExecutionID` of the previously executing plan. All repeated fields are in time ascending order. From 36bc81e373d2681388c1b1681d7eed5d35d9cc67 Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Fri, 15 Dec 2023 12:00:44 -0500 Subject: [PATCH 24/27] fix links --- docs/mobility/motion/_index.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index a02c3b93d9..0540118244 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -87,7 +87,7 @@ The motion service takes the volumes associated with all configured robot compon **Parameters:** -- `component_name` ([ResourceName](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName)): The `ResourceName` of the piece of the robot that should arrive at the destination. +- `component_name` ([ResourceName](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName)): The `ResourceName` of the piece of the robot that should arrive at the destination. Note that `move` moves the distal end of the component to the destination. For example, when moving a robotic arm, the piece that will arrive at the destination is the end effector attachment point, not the base of the arm. @@ -108,7 +108,7 @@ The motion service takes the volumes associated with all configured robot compon - If a motion begins with a component already in collision with an obstacle, collisions between that specific component and that obstacle will not be checked. - The motion service assumes that obstacles are static. If a worldstate obstacle is physically attached to a part of the robot such that it will move with the robot, specify it with _transforms_. - - Obstacles are defined by a pose and a [geometry](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.Geometry) with dimensions. + - Obstacles are defined by a pose and a [geometry](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.Geometry) with dimensions. The pose location is the point at the center of the geometry. - Obstacle locations are defined with respect to the _origin_ of the specified frame. Their poses are relative to the _origin_ of the specified frame. @@ -226,7 +226,7 @@ You can use the `supplemental_transforms` argument to augment the robot's existi **Parameters:** -- `component_name` ([ResourceName](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName)): The `ResourceName` of the piece of the robot whose pose is returned. +- `component_name` ([ResourceName](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName)): The `ResourceName` of the piece of the robot whose pose is returned. - `destination_frame` ([str](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str)): The name of the frame with respect to which the component's pose is reported. @@ -363,9 +363,9 @@ Move a [base](/components/base/) component to a [`Pose`](https://python.viam.dev **Parameters:** -- `component_name` ([ResourceName](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName)): The `ResourceName` of the base to move. +- `component_name` ([ResourceName](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName)): The `ResourceName` of the base to move. - `destination` ([Pose](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.Pose)): The destination, which can be any [Pose](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.Pose) with respect to the SLAM map's origin. -- `slam_service_name` ([ResourceName](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName)): The `ResourceName` of the {{< glossary_tooltip term_id="slam" text="SLAM service" >}} from which the SLAM map is requested. +- `slam_service_name` ([ResourceName](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName)): The `ResourceName` of the {{< glossary_tooltip term_id="slam" text="SLAM service" >}} from which the SLAM map is requested. - `extra` [(Optional\[Dict\[str, Any\]\])](https://docs.python.org/library/typing.html#typing.Optional): Extra options to pass to the underlying RPC call. - `timeout` [(Optional\[float\])](https://docs.python.org/library/typing.html#typing.Optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call. @@ -467,10 +467,10 @@ Translation in obstacles is not supported by the [navigation service](/mobility/ **Parameters:** -- `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName): The `ResourceName` of the base to move. +- `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName): The `ResourceName` of the base to move. - `destination` [(GeoPoint)](https://python.viam.dev/autoapi/viam/components/movement_sensor/index.html#viam.components.movement_sensor.GeoPoint): The location of the component's destination, represented in geographic notation as a [GeoPoint](https://python.viam.dev/autoapi/viam/components/movement_sensor/index.html#viam.components.movement_sensor.GeoPoint) _(lat, lng)_. -- `movement_sensor_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName): The `ResourceName` of the [movement sensor](/components/movement-sensor/) that you want to use to check the robot's location. -- `obstacles` [(Optional[Sequence[GeoObstacle]])](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.GeoObstacle): Obstacles to consider when planning the motion of the component, with each represented as a `GeoObstacle`.
  • Default: `None`
+- `movement_sensor_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName): The `ResourceName` of the [movement sensor](/components/movement-sensor/) that you want to use to check the robot's location. +- `obstacles` [(Optional[Sequence[GeoObstacle]])](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.GeoObstacle): Obstacles to consider when planning the motion of the component, with each represented as a `GeoObstacle`.
  • Default: `None`
- `heading` [(Optional[float])](https://docs.python.org/library/typing.html#typing.Optional): The compass heading, in degrees, that the robot's movement sensor should report at the `destination` point.
  • Range: `[0-360)` 0: North, 90: East, 180: South, 270: West
  • Default: `None`
- `configuration` [(Optional[MotionConfiguration])](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.MotionConfiguration): The configuration you want to set across this robot for this motion service. This parameter and each of its fields are optional. - `obstacle_detectors` [(Iterable[ObstacleDetector])](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.ObstacleDetector): The names of each [vision service](/ml/vision/) and [camera](/components/camera/) resource pair you want to use for transient obstacle avoidance. @@ -564,7 +564,7 @@ Stop a [base](/components/base/) component being moved by an in progress [`MoveO **Parameters:** -- `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName): The `ResourceName` of the base to stop. +- `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName): The `ResourceName` of the base to stop. - `extra` [(Optional\[Dict\[str, Any\]\])](https://docs.python.org/library/typing.html#typing.Optional): Extra options to pass to the underlying RPC call. - `timeout` [(Optional\[float\])](https://docs.python.org/library/typing.html#typing.Optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call. @@ -654,15 +654,15 @@ All repeated fields are in time ascending order. **Parameters:** -- `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName): The `ResourceName` of the base to stop. -- `lastPlanOnly` [(Optional\[bool\])](https://docs.python.org/library/typing.html#typing.Optional): If `true`, the response will only return the the last plan for the component / execution +- `component_name` [(ResourceName)](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName): The `ResourceName` of the base to stop. +- `lastPlanOnly` [(Optional\[bool\])](https://docs.python.org/library/typing.html#typing.Optional): If `true`, the response will only return the the last plan for the component. If the `executionID` parameter is non empty then the last plan for the component & `executionID` is returned. - `executionID` [(Optional\[str\])](https://docs.python.org/library/typing.html#typing.Optional): If non empty, the response will return the plans of the provided execution & component. Useful for retrieving plans from executions before the current execution. - `extra` [(Optional\[Dict\[str, Any\]\])](https://docs.python.org/library/typing.html#typing.Optional): Extra options to pass to the underlying RPC call. - `timeout` [(Optional\[float\])](https://docs.python.org/library/typing.html#typing.Optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call. **Returns:** -- [(GetPlanResponse)](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.GetPlanResponse) +- [(GetPlanResponse)](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse) For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.get_plan). From cc12a6911807077718f83aaf360b9062d0f4518b Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Fri, 15 Dec 2023 12:20:12 -0500 Subject: [PATCH 25/27] respond to feedback --- docs/mobility/motion/_index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 0540118244..e2f037e929 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -663,6 +663,8 @@ All repeated fields are in time ascending order. **Returns:** - [(GetPlanResponse)](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse) + - [current_plan_with_status](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse.current_plan_with_status): The current plan and status that matches the request query + - [replan_history](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse.replan_history): The history of all previous plans that were generated in ascending order. This field will be empty if the motion service did not need to re-plan. For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.get_plan). @@ -726,6 +728,7 @@ All repeated fields are in chronological order. **Returns:** - [(ListPlanStatusesResponse)](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.ListPlanStatusesResponse) + - [(plan_statuses_with_ids)](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.ListPlanStatusesResponse.plan_statuses_with_ids): List of plan statuses allong with associated `planId`, `componentName` and `executionID` that match the request. For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.list_plan_statuses). From 735befca33da70c37c7481282249541b3ac93888 Mon Sep 17 00:00:00 2001 From: Nick Sanford Date: Fri, 15 Dec 2023 12:35:06 -0500 Subject: [PATCH 26/27] fix prettier --- docs/mobility/motion/_index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index e2f037e929..1a718ce51c 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -663,8 +663,8 @@ All repeated fields are in time ascending order. **Returns:** - [(GetPlanResponse)](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse) - - [current_plan_with_status](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse.current_plan_with_status): The current plan and status that matches the request query - - [replan_history](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse.replan_history): The history of all previous plans that were generated in ascending order. This field will be empty if the motion service did not need to re-plan. + - [current_plan_with_status](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse.current_plan_with_status): The current plan and status that matches the request query + - [replan_history](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.GetPlanResponse.replan_history): The history of all previous plans that were generated in ascending order. This field will be empty if the motion service did not need to re-plan. For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.get_plan). @@ -728,7 +728,7 @@ All repeated fields are in chronological order. **Returns:** - [(ListPlanStatusesResponse)](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.ListPlanStatusesResponse) - - [(plan_statuses_with_ids)](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.ListPlanStatusesResponse.plan_statuses_with_ids): List of plan statuses allong with associated `planId`, `componentName` and `executionID` that match the request. + - [(plan_statuses_with_ids)](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.ListPlanStatusesResponse.plan_statuses_with_ids): List of plan statuses allong with associated `planId`, `componentName` and `executionID` that match the request. For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.list_plan_statuses). From f6b1d07304115e553d08e8b862b75bea23a015ec Mon Sep 17 00:00:00 2001 From: nicksanford Date: Fri, 15 Dec 2023 12:59:42 -0500 Subject: [PATCH 27/27] Update docs/mobility/motion/_index.md Co-authored-by: Sierra Guequierre --- docs/mobility/motion/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobility/motion/_index.md b/docs/mobility/motion/_index.md index 1a718ce51c..9855717b83 100644 --- a/docs/mobility/motion/_index.md +++ b/docs/mobility/motion/_index.md @@ -728,7 +728,7 @@ All repeated fields are in chronological order. **Returns:** - [(ListPlanStatusesResponse)](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.ListPlanStatusesResponse) - - [(plan_statuses_with_ids)](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.ListPlanStatusesResponse.plan_statuses_with_ids): List of plan statuses allong with associated `planId`, `componentName` and `executionID` that match the request. + - [(plan_statuses_with_ids)](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.ListPlanStatusesResponse.plan_statuses_with_ids): List of plan statuses along with associated `planId`, `componentName` and `executionID` that match the request. For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/viam/services/motion/index.html#viam.services.motion.MotionClient.list_plan_statuses).