Aggiunto nodo Broadcaster continuo delle trasformazioni
This commit is contained in:
@@ -13,6 +13,7 @@ find_package(catkin REQUIRED COMPONENTS
|
|||||||
moveit_ros_planning
|
moveit_ros_planning
|
||||||
moveit_ros_planning_interface
|
moveit_ros_planning_interface
|
||||||
moveit_visual_tools
|
moveit_visual_tools
|
||||||
|
tf
|
||||||
)
|
)
|
||||||
|
|
||||||
find_package (Eigen3 REQUIRED)
|
find_package (Eigen3 REQUIRED)
|
||||||
@@ -148,6 +149,11 @@ include_directories(
|
|||||||
src/roboglue_follower.cpp
|
src/roboglue_follower.cpp
|
||||||
src/roboglue_utils.cpp
|
src/roboglue_utils.cpp
|
||||||
)
|
)
|
||||||
|
add_executable(
|
||||||
|
${PROJECT_NAME}_broadcaster
|
||||||
|
src/roboglue_broadcaster.cpp
|
||||||
|
src/roboglue_utils.cpp
|
||||||
|
)
|
||||||
add_executable (
|
add_executable (
|
||||||
${PROJECT_NAME}_test
|
${PROJECT_NAME}_test
|
||||||
src/roboglue_test.cpp
|
src/roboglue_test.cpp
|
||||||
@@ -177,6 +183,9 @@ target_link_libraries(
|
|||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
${PROJECT_NAME}_follower ${catkin_LIBRARIES}
|
${PROJECT_NAME}_follower ${catkin_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
target_link_libraries(
|
||||||
|
${PROJECT_NAME}_broadcaster ${catkin_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
|
|||||||
30
src/roboglue_ros/src/roboglue_broadcaster.cpp
Normal file
30
src/roboglue_ros/src/roboglue_broadcaster.cpp
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
20190220 - Inizia la scrittura del nodo che si occupa di pubblicate le trasformazioni TF, documentazione su GIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
////////// ROS INCLUDES /////////////
|
||||||
|
#include "ros/ros.h"
|
||||||
|
#include <roboglue_ros/roboglue_utils.h> /// utility function library
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
ros::init(argc, argv, "roboglue_broadcaster");
|
||||||
|
ros::NodeHandle nh;
|
||||||
|
|
||||||
|
ros::Publisher chatter_pub = nh.advertise<std_msgs::String>("chatter", 1000);
|
||||||
|
|
||||||
|
ros::Rate loop_rate(10);
|
||||||
|
while (ros::ok())
|
||||||
|
{
|
||||||
|
std_msgs::String msg;
|
||||||
|
msg.data = "hello world";
|
||||||
|
|
||||||
|
chatter_pub.publish(msg);
|
||||||
|
|
||||||
|
ros::spinOnce();
|
||||||
|
|
||||||
|
loop_rate.sleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -99,9 +99,9 @@ void commandCallback(const std_msgs::String::ConstPtr& msg, internalState* is, p
|
|||||||
tempFrame.twist.linear.x = params["frame"]["x"].get<double>()/1000.0;
|
tempFrame.twist.linear.x = params["frame"]["x"].get<double>()/1000.0;
|
||||||
tempFrame.twist.linear.y = params["frame"]["y"].get<double>()/1000.0;
|
tempFrame.twist.linear.y = params["frame"]["y"].get<double>()/1000.0;
|
||||||
tempFrame.twist.linear.z = params["frame"]["z"].get<double>()/1000.0;
|
tempFrame.twist.linear.z = params["frame"]["z"].get<double>()/1000.0;
|
||||||
tempFrame.twist.angular.x = params["frame"]["rx"].get<double>()/1000.0;
|
tempFrame.twist.angular.x = deg2rad(params["frame"]["rx"].get<double>());
|
||||||
tempFrame.twist.angular.y = params["frame"]["ry"].get<double>()/1000.0;
|
tempFrame.twist.angular.y = deg2rad(params["frame"]["ry"].get<double>());
|
||||||
tempFrame.twist.angular.z = params["frame"]["rz"].get<double>()/1000.0;
|
tempFrame.twist.angular.z = deg2rad(params["frame"]["rz"].get<double>());
|
||||||
pos->activeFrame = twist2Pose(tempFrame).pose;
|
pos->activeFrame = twist2Pose(tempFrame).pose;
|
||||||
}
|
}
|
||||||
} else if (!command.compare("RECORD")){
|
} else if (!command.compare("RECORD")){
|
||||||
@@ -362,12 +362,11 @@ int main(int argc, char **argv) {
|
|||||||
ROS_DEBUG_ONCE("Planning Frame changed and publishing!");
|
ROS_DEBUG_ONCE("Planning Frame changed and publishing!");
|
||||||
planningFrame.setOrigin(tf::Vector3(pos_data.activeFrame.position.x,pos_data.activeFrame.position.y,pos_data.activeFrame.position.z));
|
planningFrame.setOrigin(tf::Vector3(pos_data.activeFrame.position.x,pos_data.activeFrame.position.y,pos_data.activeFrame.position.z));
|
||||||
frameRot.setRPY(pos_data.activeFrame.orientation.x,pos_data.activeFrame.orientation.y,pos_data.activeFrame.orientation.z);
|
frameRot.setRPY(pos_data.activeFrame.orientation.x,pos_data.activeFrame.orientation.y,pos_data.activeFrame.orientation.z);
|
||||||
frameRot.setRPY(0,0,0);
|
|
||||||
planningFrame.setRotation(frameRot);
|
planningFrame.setRotation(frameRot);
|
||||||
tfBroadcaster.sendTransform(tf::StampedTransform(planningFrame, ros::Time::now(), "world", "planning_frame"));
|
tfBroadcaster.sendTransform(tf::StampedTransform(planningFrame, ros::Time::now(), "world", "planning_frame"));
|
||||||
rviz_data.vtools->setBaseFrame("planning_frame");
|
rviz_data.vtools->setBaseFrame("planning_frame");
|
||||||
}
|
|
||||||
move_group.setPoseReferenceFrame("planning_frame");
|
move_group.setPoseReferenceFrame("planning_frame");
|
||||||
|
}
|
||||||
|
|
||||||
if (is.isPlaying){
|
if (is.isPlaying){
|
||||||
// i -> row counter for temp vector planning in both cartesian and joint mode
|
// i -> row counter for temp vector planning in both cartesian and joint mode
|
||||||
|
|||||||
Reference in New Issue
Block a user