jazi007 / ros2msg_to_rs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rust code generator from .msg and .srv of ROS2

This is used for safe_drive, a Rust bindings of ROS2.

Types (Galactic)

ROS C Rust
bool bool bool
byte uint8_t u8
char char i8
int8 int8_t i8
uint8 uint8_t u8
int16 int16_t i16
uint16 uint16_t u16
int32 int32_t i32
uint32 uint32_t u32
int64 int64_t i64
uint64 uint64_t u64
float32 float f32
float64 double f64
string struct rosidl_runtime_c__String safe_drive::msg::RosString
builtin_interfaces/Time struct builtin_interfaces__msg__Time safe_drive::msg::UnsafeTime (*1)
builtin_interfaces/Duration struct builtin_interfaces__msg__Duration safe_drive::msg::UnsafeDuration (*1)
std_msgs/* struct std_msgs__msg__* safe_drive::msg::std_msgs::*
  • (*1): Rust's types are automatically generated by C's header files
    • Defined in safe_drive::msgs.
    • It shoud be avoided to use these types because ROS2's Time and Duration cause the year-2038 problem.

Array Types

uint8 - uint64 and int8 - int64

use safe_drive::msg;
ROS C Rust
int8[] struct rosidl_runtime_c__int8__Sequence msg::I8Seq<0>
int8[<=5] struct rosidl_runtime_c__int8__Sequence msg::I8Seq<5>
int8[10] int8_t var[10] [i8; 10]
uint8[] struct rosidl_runtime_c__uint8__Sequence msg::U8Seq<0>
uint8[<=5] struct rosidl_runtime_c__uint8__Sequence msg::U8Seq<5>
uint8[10] uint8_t var[10] [u8; 10]

Other integer types are similar to these types.

Floating point types

use safe_drive::msg;
ROS C Rust
float32[] struct rosidl_runtime_c__float__Sequence msg::F32Seq<0>
float32[<=5] struct rosidl_runtime_c__float__Sequence msg::F32Seq<5>
float32[10] float var[10] [f32; 10]
float64[] struct rosidl_runtime_c__double__Sequence msg::F64Seq<0>
float64[<=5] struct rosidl_runtime_c__double__Sequence msg::F64Seq<5>
float64[10] double var[10] [f64; 10]

Boolean type

use safe_drive::msg;
ROS C Rust
bool[] struct rosidl_runtime_c__boolean__Sequence msg::BoolSeq<0>
bool[<=5] struct rosidl_runtime_c__boolean__Sequence msg::BoolSeq<5>
bool[10] bool var[10] [bool; 10]

String type

use safe_drive::msg;
ROS C Rust
string[] struct rosidl_runtime_c__String__Sequence msg::StringSeq<0, 0>
string[<=5] struct rosidl_runtime_c__String__Sequence msg::StringSeq<0, 5>
string[10] struct rosidl_runtime_c__String var[10] [msg::RosString<0>; 10]
string<=5 struct rosidl_runtime_c__String var msg::RosString<5>
string<=5[<=10] struct rosidl_runtime_c__String var[10] msg::StringSeq<5, 10>
string<=5[10] struct rosidl_runtime_c__String var[10] [msg::RosString<5>; 10]

builtin_interfaces

use safe_drive::msg::builtin_interfaces;
ROS C Rust
builtin_interfaces/Duration[] struct builtin_interfaces__msg__Duration__Sequence builtin_interfaces::UnsafeDurationSeq<0>
builtin_interfaces/Time[] struct builtin_interfaces__msg__Time__Sequence builtin_interfaces::UnsafeTimeSeq<0>
builtin_interfaces/Duration[<=5] struct builtin_interfaces__msg__Duration__Sequence builtin_interfaces::UnsafeDurationSeq<5>
builtin_interfaces/Time[<=5] struct builtin_interfaces__msg__Time__Sequence builtin_interfaces::UnsafeTimeSeq<5>
builtin_interfaces/Duration[5] struct builtin_interfaces__msg__Duration[5] [builtin_interfaces::UnsafeDuration; 5]
builtin_interfaces/Time[5] struct builtin_interfaces__msg__Time[5] [builtin_interfaces::UnsafeTime; 5]

About

License:Apache License 2.0


Languages

Language:Rust 100.0%