ros-nalgebra

Build Status crates.io docs

Generate code to convert geometry_msgs into nalgebra structs, for rosrust.

Pre-requirements & dependencies

How to use

Easy usage: ros_nalgebra::rosmsg_include!()

Use ros_nalgebra::rosmsg_include instead of rosrust::rosmsg_include in your code.

```rust use nalgebra as na;

mod msg { rosnalgebra::rosmsginclude!(nav_msgs / Odometry); }

fn main() { let mut odommsg = msg::navmsgs::Odometry::default(); odommsg.pose.pose.position.x = 1.0; odommsg.pose.pose.position.y = -1.0; odommsg.pose.pose.position.z = 2.0; odommsg.pose.pose.orientation.x = 0.0; odommsg.pose.pose.orientation.y = 0.0; odommsg.pose.pose.orientation.z = 0.0; odom_msg.pose.pose.orientation.w = 1.0;

// convert into nalgebra::Isometry<f64> by `from()`
let pose = na::Isometry3::from(odom_msg.pose.pose);
println!("{}", pose);

let mut pose2 = pose.clone();
pose2.translation.vector.x = -5.0;

// convert into ROS msg using `into()`
let pose_msg: msg::geometry_msgs::Pose = pose2.into();
println!("{:?}", pose_msg);

} ```

Automatically defined messages by ros_nalgebra::rosmsg_include!()

Below messages are automatically included by rosnalgebra::rosmsginclude!(). Do not include them in your code.

rust geometry_msgs/Point, geometry_msgs/Pose, geometry_msgs/Quaternion, geometry_msgs/Transform, geometry_msgs/Vector3,

Other usage: ros_nalgebra!() and ros_nalgebra_msg!()

If some messages are included already (for example in other crate), you can use ros_nalgebra_msg!(). The arguments are the rust namespace of the geometry_msgs (example:msg) and the message type (example: Pose for geometry_msgs/Pose, Point for geometry_msgs/Point).

Example

In some_other_crate,

rust mode msg { rosrust::rosmsg_include!(geometry_msgs/Point); }

Then you can use ros_nalgebra::ros_nlagebra_msg!() in your crate.

rust // generate conversion code only for `geometry_msgs/Point` which is defined in `::some_other_crate::msg`. ros_nalgebra::ros_nalgebra_msg!(::some_other_crate::msg, Point);

Supported conversions

See lib.rs.

TODO

Handle dependencies.