TP n3 ROS PDF
TP n3 ROS PDF
TP n3 ROS PDF
Objectif :
L’objectif de ce quatrième TP est de créer un nœud publisher/subscriber
qui communique avec un package déjà existant dans le système ROS.
$ rostopic list
Cette commande va nous permettre d’avoir la liste des topics existant dans le
nœud lancé et ceux du core de ros aussi.
On isole deux topics dont nous allons extraire les informations : /turtle1/pose et
/turtle1/cmd_vel
On utilise la commande suivante pour avoir des informations sur le topic : le type
de message qu’il circule et le type des nœuds dont il fait circuler les messages,
c.à.d s’ils sont publisher ou subscriber.
$ gedit naviguation.cpp
#include <ros/package.h> {
void position_tortue(const
turtlesim::Pose::ConstPtr& sms) geometry_msgs::Twist cmdvel;
{X=sms->x; cmdvel.linear.x=v1;
Y=sms->y; cmdvel.linear.y=v2;
Theta=sms->theta;} cmdvel.angular.z=v3;
int main(int argc, char **argv)
{ vitesses.publish(cmdvel);
ros::init(argc, argv, "distance");
ros::NodeHandle n,m; ros::spinOnce();
ros::Publisher vitesses= }
n.advertise<geometry_msgs::Twist>("turtle1/c
md_vel", 1); return 0;
ros::Subscriber positions=
m.subscribe("turtle1/pose",1,&position_tortue); }
Et enfin nous devons modifier le fichier cmakelists.txt ; vous pouvez rajouter ces
3 lignes telles qu’elles sont à la fin du fichier en question.
# In your cmakelists.txt
add_executable(distance src/navigation.cpp)
target_link_libraries(distance ${catkin_LIBRARIES})
add_dependencies(distance my_turtle_generate_messages_cpp)