-
Notifications
You must be signed in to change notification settings - Fork 57
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
feat: support Aeva Aeries II #169
base: main
Are you sure you want to change the base?
Conversation
a8c9ee5
to
4829c22
Compare
4829c22
to
282c6aa
Compare
🟢 Evaluation🟢 Pointcloud Output
*: red: strongest, magenta: second strongest. 🟢 PerformanceThe pointcloud is published consistently at around 10 Hz: 🟢 Hardware Monitor
***: 🟢 PTP & SynchronizationPTP has been tested with all provided mechanisms (1588v2, gPTP, automotive) and works with all of them using the vendor-provided configurations. Pointcloud timestamps take around 1-2 min to converge.
🟢 Error Handling & RecoveryCurrently, Nebula does not attempt to recover from communication errors and instead exits, instead of continuing in a possibly corrupted state.
All of these errors only occur during startup. No crashes / errors were observed during runtime. 🟢 ParametersAll parameters from the sensor's manifest that have more than one possible value have been added to Nebula. No attempt was made to convert them to the common naming scheme used in the other drivers (e.g. Validation:
|
@drwnz All issues from yesterday have been addressed and I could not find any bugs or unexpected behavior since. I think this is ready to merge. |
@@ -0,0 +1,10 @@ | |||
<?xml version="1.0"?> | |||
<launch> | |||
<arg name="sensor_model" description="Aeries2"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description or default?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
b3ffe46
to
e2da3f4
Compare
1a92701
to
9a9bc9f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(quick read through review, will go through in more detail)
auto mode_name = util::get_if_exists<std::string>(tree, {"dsp_control", "second_peak_type"}); | ||
|
||
if (!mode_name) return {}; | ||
if (mode_name == "strongest") return ReturnMode::DUAL_STRONGEST_SECONDSTRONGEST; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: although no performance benefit in this case, a switch
looks nicer (IMO)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C++ doesn't allow switch statements for strings 🥲 I agree though
|
||
POINT_CLOUD_REGISTER_POINT_STRUCT( // NOLINT | ||
nebula::drivers::aeva::PointXYZVIRCAEDT, | ||
(float, x, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yikes is this how pre-commit wanted the line break? :P
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, tried to coax it to do it differently but it's stubborn.
nebula_decoders/include/nebula_decoders/nebula_decoders_aeva/aeva_aeries2_decoder.hpp
Outdated
Show resolved
Hide resolved
const aeva::Aeries2Config & config, const std::shared_ptr<loggers::Logger> & logger) | ||
{ | ||
return std::make_shared<ReconfigParser>( | ||
std::make_shared<TcpStream>(config.sensor_ip, 41007), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it is plausible that the port numbers change with updated sensor models, should these be constexpr in a relevant header file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed! Addressed in f5bd7fc.
..._hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_aeva/connections/health.hpp
Outdated
Show resolved
Hide resolved
1a6f4bd
to
0cae323
Compare
@mojomex |
…, higher timeouts
Co-authored-by: David Wong <[email protected]>
… in FW14 anymore Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
… sensor_model in launch file Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
dfb1a02
to
b248dee
Compare
Signed-off-by: Max SCHMELLER <[email protected]>
@knzo25 |
PR Type
Description
Add support for Aeva Aeries II:
/diagnostics
Review Procedure
rviz2
)launch_hw:=true
, subscribed to whenlaunch_hw:=false
rqt
's Plugins->Robot Tools->Runtime Monitor)Remarks
This is a fairly minimal implementation for now.
Pre-Review Checklist for the PR Author
PR Author should check the checkboxes below when creating the PR.
Checklist for the PR Reviewer
Reviewers should check the checkboxes below before approval.
Post-Review Checklist for the PR Author
PR Author should check the checkboxes below before merging.
CI Checks