haixuanTao
e12b29dcc6
Make type setting available for both forward slash and `::`
2 years ago
haixuanTao
c878862966
Use forward slash as it is default way of defining ros2 topic
2 years ago
Philipp Oppermann
1e510a4236
Improve error message: print message type and value
Co-authored-by: Haixuan Xavier Tao <tao.xavier@outlook.com>
2 years ago
Philipp Oppermann
9eecf22fee
Rename method
2 years ago
Philipp Oppermann
efb6a51c22
Fix: Wrap deserialized sequences into list of length 1
Required because arrow uses column-oriented data format, which requires all struct fields to have length 1.
2 years ago
Philipp Oppermann
4b7c43c323
Fix some unused code and import warnings
2 years ago
haixuanTao
945b3f887b
Changing `Struct` to `TupleStruct`
2 years ago
Philipp Oppermann
63188965c5
Add support for serializing arrow `BinaryArray` types
Arrow has a special `BinaryArray` type for storing lists of variable-sized binary data efficiently. This type is equivalent to a `ListArray` of `PrimitiveArray<u8>`, but it is a different data type.
This commit updates the Python ROS2 serialization code to permit BinaryArray for all uint8 array or sequence fields.
2 years ago
Philipp Oppermann
e5a037afea
Improve error messages
2 years ago
Philipp Oppermann
abc057dda2
Remove commented out code
2 years ago
Philipp Oppermann
4b8dbfc7c2
Add support for (de)serializing arrays/sequences of structs and strings
2 years ago
Philipp Oppermann
13273824e1
Rework python ROS2 (de)serialization using parsed ROS2 messages directly
Use ROS2 types as type info to ensure that serialization type matches exactly. This is necessary because the types need to match exactly, otherwise the serialization or deserialization will result in invalid data.
Using arrow schemas to specify the ROS2 message types does not work because not all ROS2 message types can be represented. For example, ROS2 serializes arrays with known length differently than sequences with dynamic length.
2 years ago
haixuanTao
4085ebc46b
Make PrimitiveArray only serialize one element at a time
2 years ago
haixuanTao
f436fafc07
Serialize by looping over the array
This should fix: https://github.com/dora-rs/dora-autoware/discussions/9
2 years ago
haixuanTao
64fece9c47
Generate the right size of default value for array
2 years ago
Philipp Oppermann
e701eb4182
Fix: enable sync module of tokio
2 years ago
Philipp Oppermann
cb69a033f0
Wait until `DestroyResult` is sent before exiting dora-daemon
Tokio background tasks are canceled when the program exits, so we need some additional synchronization to ensure that the `DestroyResult` is actually sent out.
2 years ago
haixuanTao
0568656ef0
Remove unused dependencies for faster compile time
2 years ago
haixuanTao
fd7c0939df
Run `cargo fmt --all`
2 years ago
Haixuan Xavier Tao
e35ed75e87
Merge pull request #398 from dora-rs/fix-window-path-error
Fix window path error
2 years ago
haixuanTao
c82c853d02
Download weights inside of dora to bypass yolov8 windows error
Being able to download a file within a yaml declaration can later be integrated as a yaml feature.
See: https://github.com/ultralytics/ultralytics/pull/7432#issuecomment-1883383862
2 years ago
haixuanTao
afcfec81f1
Fix path by using ; instead of :
2 years ago
haixuanTao
ea1259da20
Bump which version
2 years ago
haixuanTao
82f2794916
Only use python for windows and python3 for linux
2 years ago
haixuanTao
20c02089b6
Fix Python CI on windows
2 years ago
Philipp Oppermann
fa9e2a4a71
Merge pull request #397 from dora-rs/update-ros2-client
Update `ros2-client` and `rustdds` dependencies to latest fork version
2 years ago
haixuanTao
46e56da469
Uses python 3.10 that fixes an error on windows: https://github.com/actions/runner-images/issues/2690
2 years ago
haixuanTao
5616986272
Run windows program using cmd.exe to wrapped_args) to instantiate powershell. This is required for python environment
2 years ago
haixuanTao
0a60246038
Make `run` a helper function and use OsStr to search for path
2 years ago
haixuanTao
68ecf89b61
Remove explicit statement to `python3`and resolve it instead
2 years ago
haixuanTao
565bda5d99
Rename dora-cli to dora in examples
2 years ago
Philipp Oppermann
0034c3611b
Update `ros2-client` and `rustdds` dependencies to latest fork version
2 years ago
Philipp Oppermann
4da13cc503
Prepare update to latest versions of RustDDS and `ros2-client`
2 years ago
Philipp Oppermann
d975fc1ea4
Specify result type
2 years ago
Philipp Oppermann
854aea0408
Remove `ArrayData -> ArrowData` From impl
2 years ago
Philipp Oppermann
571a5890a2
Run rustfmt
2 years ago
haixuanTao
b93b01bb1a
Removing not necessary functions
2 years ago
haixuanTao
127a8a313c
Adding conversion from `ArrayData` for simpler conversion and adding `Vec<u8>` conversion
2 years ago
haixuanTao
32831cae75
Bump opentelemetry metrics to 0.21
2 years ago
haixuanTao
7aa1d615dd
Remove envapsulation of operator when there is only one operator
2 years ago
haixuanTao
e8f658f9cf
Fixing clippy warnings
2 years ago
haixuanTao
659a3e5aaf
Use `timestamp[ms]` to represent time
2 years ago
haixuanTao
1413d540cb
Adding comment on Datetime format and adding uhlc for log & replay in future
uhlc is necessary to keep the ordering of messages.
2 years ago
haixuanTao
2561533b63
Removing `Writer_Context` as `arrow 0.48` access the underlying schema file
2 years ago
haixuanTao
4bf3f7e48f
Split otel context into `traceid` and `spanid`
2 years ago
haixuanTao
319f1c93b1
Use `trace_id` within the logs
2 years ago
haixuanTao
3ae07203cc
replacing `zenoh-logger` with `dora-record`
2 years ago
Philipp Oppermann
ad3f0482ac
Avoid alignment errors by aligning raw data on deseralization
Ensures that all raw data has at least an alignment of 128.
2 years ago
Philipp Oppermann
c6ce45785f
Rework raw data to arrow array conversion
- If input has no data, return an empty `NullArray` instead of an empty byte array.
- If input contains Vec data (instead of shared memory data), use safe `arrow::buffer::Buffer::from_vec` constructor, which is also zero-copy.
2 years ago
Philipp Oppermann
8cc5837cfa
Update `arrow` and `pyo3` dependencies to latest versions
2 years ago