ROS(rosserial)とArduinoの時刻同期について
概要
- ROS(rosserial)とArduinoの時刻同期は、Arduino側のnode handleのnow()で、接続しているPC時間を呼び出せる
コード (Arduino)
ROSの公式サンプル
http://wiki.ros.org/rosserial_arduino/Tutorials/Time%20and%20TF
ros_lib -> TimeTf from the Arduino
/*
* rosserial Time and TF Example
* Publishes a transform at current time
*/
#include <ros.h>
#include <ros/time.h>
#include <tf/transform_broadcaster.h>
ros::NodeHandle nh;
geometry_msgs::TransformStamped t;
tf::TransformBroadcaster broadcaster;
char base_link[] = "/base_link";
char odom[] = "/odom";
void setup()
{
nh.initNode();
broadcaster.init(nh);
}
void loop()
{
t.header.frame_id = odom;
t.child_frame_id = base_link;
t.transform.translation.x = 1.0;
t.transform.rotation.x = 0.0;
t.transform.rotation.y = 0.0;
t.transform.rotation.z = 0.0;
t.transform.rotation.w = 1.0;
t.header.stamp = nh.now();
broadcaster.sendTransform(t);
nh.spinOnce();
delay(10);
}
うまくいかない場合
- loop()関数内に、nh.spinOnce()が書かれていること確認
- 書かれていない場合は、追記
Author And Source
この問題について(ROS(rosserial)とArduinoの時刻同期について), 我々は、より多くの情報をここで見つけました https://qiita.com/ntrlmt/items/0f77a8680d321008efb2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .