Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RSDK-448] Add Partial Start option to robot config #1617

Merged

Conversation

Kschappacher
Copy link
Member

We want to allow robots to start even if one component does not pass config validation. We want this to be the default behavior for robots so the new disablepartialstart cofig field is set to false by default and does not need to be added to the config. if a user wishes to disable this behavior they can set disablepartialstart to true in the robot config.

@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Nov 23, 2022
@viambot viambot removed the safe to test This pull request is marked safe to test from a trusted zone label Nov 23, 2022
@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Nov 23, 2022
@Kschappacher Kschappacher marked this pull request as ready for review November 23, 2022 19:10
Copy link
Member

@cheukt cheukt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generally looks good but would like the logs to be more informative/different level

config/config.go Outdated Show resolved Hide resolved
robot/impl/resource_manager.go Show resolved Hide resolved
config/config.go Outdated Show resolved Hide resolved
@cheukt
Copy link
Member

cheukt commented Nov 23, 2022

also there are a few more cases in the ticket which should be covered by the tests - you should add those

@viambot viambot removed the safe to test This pull request is marked safe to test from a trusted zone label Nov 28, 2022
@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Nov 29, 2022
@viambot viambot removed the safe to test This pull request is marked safe to test from a trusted zone label Nov 29, 2022
@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Nov 30, 2022
@viambot viambot removed the safe to test This pull request is marked safe to test from a trusted zone label Nov 30, 2022
@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Nov 30, 2022
Copy link
Member

@cheukt cheukt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should also add more tests and create a ticket for adding disable_partial_start to the config proto

config/config.go Outdated
@@ -46,6 +46,10 @@ type Config struct {
// If false, it's for creating a robot via the RDK library. This is helpful for
// error messages that can indicate flags/config fields to use.
FromCommand bool `json:"-"`

// DisablepartialStart ensures that a robot will only start when all the components,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: DisablepartialStart -> DisablePartialStart

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed the nit, added the two test cases in the AC of the story and added the proto story https://viam.atlassian.net/browse/RSDK-918

@viambot viambot removed the safe to test This pull request is marked safe to test from a trusted zone label Dec 1, 2022
@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Dec 1, 2022
@viambot viambot removed the safe to test This pull request is marked safe to test from a trusted zone label Dec 1, 2022
@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Dec 1, 2022
Copy link
Member

@cheukt cheukt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor nits but lgtm otherwise

test.That(t, ok, test.ShouldBeFalse)

r.Reconfigure(ctx, goodConfig)
// Test Component Error
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: these aren't errors anymore?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed the comments

Cloud: &config.Cloud{},
}
// Test Component Error
noBase, err := r.ResourceByName(base.Named("test"))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: over here too. we can also use base.FromRobot(r, "test")

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed it

@viambot viambot removed the safe to test This pull request is marked safe to test from a trusted zone label Dec 1, 2022
@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Dec 1, 2022
@viambot viambot removed the safe to test This pull request is marked safe to test from a trusted zone label Dec 1, 2022
@Kschappacher Kschappacher added the safe to test This pull request is marked safe to test from a trusted zone label Dec 1, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Dec 1, 2022

Code Coverage

Package Line Rate Delta Health
go.viam.com/rdk/components/arm 59% 0.00%
go.viam.com/rdk/components/arm/universalrobots 13% 0.00%
go.viam.com/rdk/components/arm/xarm 2% 0.00%
go.viam.com/rdk/components/arm/yahboom 7% 0.00%
go.viam.com/rdk/components/audioinput 55% +0.34%
go.viam.com/rdk/components/base 67% 0.00%
go.viam.com/rdk/components/base/agilex 62% 0.00%
go.viam.com/rdk/components/base/boat 41% 0.00%
go.viam.com/rdk/components/base/wheeled 76% 0.00%
go.viam.com/rdk/components/board 68% 0.00%
go.viam.com/rdk/components/board/arduino 10% 0.00%
go.viam.com/rdk/components/board/commonsysfs 47% 0.00%
go.viam.com/rdk/components/board/fake 38% 0.00%
go.viam.com/rdk/components/board/numato 19% 0.00%
go.viam.com/rdk/components/board/pi 50% 0.00%
go.viam.com/rdk/components/camera 65% 0.00%
go.viam.com/rdk/components/camera/fake 67% 0.00%
go.viam.com/rdk/components/camera/ffmpeg 77% 0.00%
go.viam.com/rdk/components/camera/transformpipeline 77% -0.33%
go.viam.com/rdk/components/camera/videosource 55% -0.51%
go.viam.com/rdk/components/encoder/fake 77% 0.00%
go.viam.com/rdk/components/gantry 68% 0.00%
go.viam.com/rdk/components/gantry/multiaxis 84% 0.00%
go.viam.com/rdk/components/gantry/oneaxis 86% 0.00%
go.viam.com/rdk/components/generic 83% 0.00%
go.viam.com/rdk/components/gripper 80% 0.00%
go.viam.com/rdk/components/input 87% 0.00%
go.viam.com/rdk/components/input/gpio 83% 0.00%
go.viam.com/rdk/components/motor 81% 0.00%
go.viam.com/rdk/components/motor/dimensionengineering 63% 0.00%
go.viam.com/rdk/components/motor/dmc4000 69% 0.00%
go.viam.com/rdk/components/motor/fake 57% 0.00%
go.viam.com/rdk/components/motor/gpio 63% -0.43%
go.viam.com/rdk/components/motor/gpiostepper 57% 0.00%
go.viam.com/rdk/components/motor/tmcstepper 62% 0.00%
go.viam.com/rdk/components/movementsensor 75% 0.00%
go.viam.com/rdk/components/movementsensor/cameramono 40% 0.00%
go.viam.com/rdk/components/movementsensor/gpsnmea 37% 0.00%
go.viam.com/rdk/components/movementsensor/gpsrtk 28% 0.00%
go.viam.com/rdk/components/posetracker 86% 0.00%
go.viam.com/rdk/components/sensor 86% 0.00%
go.viam.com/rdk/components/sensor/ultrasonic 34% 0.00%
go.viam.com/rdk/components/servo 78% 0.00%
go.viam.com/rdk/components/servo/gpio 71% 0.00%
go.viam.com/rdk/config 76% -0.07%
go.viam.com/rdk/control 57% 0.00%
go.viam.com/rdk/data 77% 0.00%
go.viam.com/rdk/grpc 25% 0.00%
go.viam.com/rdk/ml 67% 0.00%
go.viam.com/rdk/ml/inference 70% 0.00%
go.viam.com/rdk/motionplan 68% 0.00%
go.viam.com/rdk/octree 93% 0.00%
go.viam.com/rdk/operation 82% 0.00%
go.viam.com/rdk/pointcloud 71% 0.00%
go.viam.com/rdk/protoutils 62% 0.00%
go.viam.com/rdk/referenceframe 69% 0.00%
go.viam.com/rdk/registry 88% 0.00%
go.viam.com/rdk/resource 83% 0.00%
go.viam.com/rdk/rimage 78% 0.00%
go.viam.com/rdk/rimage/depthadapter 94% 0.00%
go.viam.com/rdk/rimage/transform 73% 0.00%
go.viam.com/rdk/rimage/transform/cmd/extrinsic_calibration 67% 0.00%
go.viam.com/rdk/robot 93% 0.00%
go.viam.com/rdk/robot/client 79% 0.00%
go.viam.com/rdk/robot/framesystem 68% 0.00%
go.viam.com/rdk/robot/impl 81% +0.75%
go.viam.com/rdk/robot/server 58% -0.93%
go.viam.com/rdk/robot/web 60% 0.00%
go.viam.com/rdk/robot/web/stream 87% 0.00%
go.viam.com/rdk/services/armremotecontrol 71% 0.00%
go.viam.com/rdk/services/armremotecontrol/builtin 25% 0.00%
go.viam.com/rdk/services/baseremotecontrol 71% 0.00%
go.viam.com/rdk/services/baseremotecontrol/builtin 66% 0.00%
go.viam.com/rdk/services/datamanager 65% 0.00%
go.viam.com/rdk/services/datamanager/builtin 80% 0.00%
go.viam.com/rdk/services/datamanager/datacapture 21% 0.00%
go.viam.com/rdk/services/datamanager/datasync 72% 0.00%
go.viam.com/rdk/services/motion 63% 0.00%
go.viam.com/rdk/services/motion/builtin 88% 0.00%
go.viam.com/rdk/services/navigation 54% 0.00%
go.viam.com/rdk/services/sensors 77% 0.00%
go.viam.com/rdk/services/sensors/builtin 97% 0.00%
go.viam.com/rdk/services/shell 14% 0.00%
go.viam.com/rdk/services/slam 84% 0.00%
go.viam.com/rdk/services/slam/builtin 72% 0.00%
go.viam.com/rdk/services/vision 80% 0.00%
go.viam.com/rdk/services/vision/builtin 74% 0.00%
go.viam.com/rdk/spatialmath 85% 0.00%
go.viam.com/rdk/subtype 96% 0.00%
go.viam.com/rdk/utils 71% 0.00%
go.viam.com/rdk/vision 26% 0.00%
go.viam.com/rdk/vision/chess 80% 0.00%
go.viam.com/rdk/vision/delaunay 87% 0.00%
go.viam.com/rdk/vision/keypoints 92% 0.00%
go.viam.com/rdk/vision/objectdetection 82% 0.00%
go.viam.com/rdk/vision/odometry 60% 0.00%
go.viam.com/rdk/vision/odometry/cmd 0% 0.00%
go.viam.com/rdk/vision/segmentation 49% 0.00%
go.viam.com/rdk/web/server 26% 0.00%
Summary 66% (19720 / 29943) 0.00%

@Kschappacher Kschappacher merged commit 75add76 into viamrobotics:main Dec 1, 2022
@Kschappacher Kschappacher deleted the start-robot-with-invalid-config branch December 1, 2022 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
safe to test This pull request is marked safe to test from a trusted zone
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants