技術のこととか
#include #include int main() { ~省略~ ros::Publisher joint_pub = n.advertise("joint_states", 1); sensor_msgs::JointState joint_state; ~省略~ ユーザ入力時のコールバック { //update joint_state joint_state.header.stamp = ros::Time::now(); //稼働ジョイント数分領域確保 joint_state.name.resize(ジョイント数); joint_state.position.resize(ジョイント数); //稼働ジョイント現在角度設定。ユーザ入力に合わせてフレームIDと回転角度[rad]入力。 joint_state.name[0] ="joint1"; joint_state.position[0] = hoge0; // joint1フレームの回転角度 // joint_state.name[1] ="joint2"; joint_state.position[1] = hoge1; // joint2フレームの回転角度 // joint_state.name[2] ="joint3"; joint_state.position[2] = hoge2; // joint3フレームの回転角度 // joint_state.name[3] ="joint4"; joint_state.position[3] = hoge3; // joint4フレームの回転角度 // 以下、ジョイント数分続く。固定フレームの場合、positonは0となる。 joint_pub.publish(joint_state); } }
#include #include int main() { ~省略~ ros::Publisher joint_pub = n.advertise("joint_states", 1); sensor_msgs::JointState joint_state; ~省略~ while (ros::ok()) { //update joint_state joint_state.header.stamp = ros::Time::now(); //稼働ジョイント数分領域確保 joint_state.name.resize(ジョイント数); joint_state.position.resize(ジョイント数); //稼働ジョイント現在角度設定。フレームIDと回転角度[rad]入力。 joint_state.name[0] ="joint1"; joint_state.position[0] = hoge0; // joint1フレームの回転角度 // joint_state.name[1] ="joint2"; joint_state.position[1] = hoge1; // joint2フレームの回転角度 // joint_state.name[2] ="joint3"; joint_state.position[2] = hoge2; // joint3フレームの回転角度 // joint_state.name[3] ="joint4"; joint_state.position[3] = hoge3; // joint4フレームの回転角度 // 以下、ジョイント数分続く。固定フレームの場合、positonは0となる。 // gazebo内部の回転角度やオドメトリ計算。ジョイントの角度(hoge0 ~ hoge3)も更新。 ~省略~ joint_pub.publish(joint_state); } }
0 件のコメント:
コメントを投稿