常用命令
常用目录结构: ~/catkin_ws/src/pkg_x
1,catkin_create_pkg pkg_name rospy roscpp std_msgs
如果用户名里有@会报错,在上面命令后添加 -m ur_email(不带@) 即可
2,cd catkin_ws目录下进行编译
catkin_make -j8
3,运行节点
roscore
rosrun pkg_name node_name
4,话题相关
topic list
topic echo **
topic hz /topic-name
5,发布-话题
#include <ros/ros.h>
#include <std_msgs/String.h>
int main(int argc, char *argv[])
{
ros::init(argc, argv, "chao_node");
/* code */
printf("我的枪去而复返,你的命有去无回!\n");
ros::NodeHandle nh;
ros::Publisher pub = nh.advertise<std_msgs::String>("kuai_shang_che_kai_hei_qun", 10);
ros::Rate loop_rate(10);
while(ros::ok()){
printf("我要刷屏了!\n");
std_msgs::String msg;
msg.data = "国服马超,带飞";
pub.publish(msg);
loop_rate.sleep();
}
return 0;
}
6,接收话题
#include <ros/ros.h>
#include <std_msgs/String.h>
void chao_callback(std_msgs::String msg)
{
ROS_INFO(msg.data.c_str());
}
void yao_callback(std_msgs::String msg)
{
ROS_WARN(msg.data.c_str());
}
int main(int argc, char *argv[])
{
/* code */
setlocale(LC_ALL, "");
ros::init(argc, argv, "ma_node");
ros::NodeHandle nh;
ros::Subscriber sub = nh.subscribe("kuai_shang_che_kai_hei_qun", 10, chao_callback);
ros::Subscriber sub2 = nh.subscribe("ge_ge_dai_wo", 10, yao_callback);
while(ros::ok()){
ros::spinOnce(); //随时看有没有消息过来
}
return 0;
}