Professional Documents
Culture Documents
Criar o pacote:
cd ~/catkin_ws/src
catkin_create_pkg turtle_command geometry_msgs roscpp
class TurtleCmd
{
public:
TurtleCmd(ros::NodeHandle node);
~TurtleCmd(void);
void setCommand(void);
private:
ros::NodeHandle node_;
ros::Publisher cmdPublisher;
}; Copyright (c) Walter Fetter Lages p.7
Cdigo Fonte do Nodo
TurtleCmd::TurtleCmd(ros::NodeHandle node)
{
node_=node;
cmdPublisher=node_.advertise<geometry_msgs::Twist>("/turtle/
cmd",1000);
}
TurtleCmd::~TurtleCmd(void)
{
cmdPublisher.shutdown();
}
cmd.linear.x=1.0;
cmd.linear.y=1.0;
cmd.linear.z=0.0;
cmd.angular.x=0.0;
cmd.angular.y=0.0;
cmd.angular.z=1.0;
cmdPublisher.publish(cmd);
} Copyright (c) Walter Fetter Lages p.9
Cdigo Fonte do Nodo
int main(int argc,char argv[])
{
ros::init(argc,argv,"turtle_command");
ros::NodeHandle node;
TurtleCmd turtleCmd(node);
ros::Rate loop(10);
while(ros::ok())
{
turtleCmd.setCommand();
ros::spinOnce();
loop.sleep();
}
return 0;
} Copyright (c) Walter Fetter Lages p.10
Execuo do Nodo
<launch>
<node name="turtle" pkg="turtlesim" type="turtlesim_node" output
="screen"/>
catkin_ws/
src/
turtle_command/
CMakeLists.txt
package.xml
launch/
turtle_command.launch
src/
turtle_command.cpp