最近自己在学习ros的人机交互界面开发,先是参考了创客制造的博客,
网址:
1项目实际开发是根据博客开始的,
https://www.ncnynl.com/archives/202006/3775.html
此处一定要注意自动生成的工程是qt4版本,所以要修改cmakelist.text文件和package.xml文件,
并且注意工程名称需要修改成自己的工程
*2、*工程具体内容分析
此处在qnode中订阅了话题有四项
chatter_sub=n.subscribe("chatter",1000,&QNode::chatter_callback,this); odom_sub=n.subscribe("raw_odom",1000,&QNode::odom_callback,this); power_sub=n.subscribe("power",1000,&QNode::power_callback,this); amcl_pose_sub=n.subscribe("amcl_pose",1000,&QNode::amcl_pose_callback,this);
chatter用来测试系统消息发布接收
raw_odom订阅后显示到速度仪表盘
power订阅后显示到电量
amcl_pose订阅后显示到下方坐标处,实时显示机器人位置坐标
发布的 话题有:
chatter_publisher = n.advertise<std_msgs::String>("chatter", 1000);
cmd_vel_pub=n.advertise<geometry_msgs::Twist>("cmd_vel",1000);
goal_pub=n.advertise<geometry_msgs::PoseStamped>("move_base_simple/goal",1000)
cmd_vel是根据键盘的前后左右按键信息,转化成速度角速度信息,并发布出去
move_base_simple/goal是将返航点的坐标读取上来发布出去
同时,在tab2中添加了命令行输入窗口