agv小车-qt-ros控制注说明

转过来,控制/地图 看上去也是json mqtt 通迅是一样的,单片机端添加ros json接口,由上位机获取单片机控制端的三轴/gps/ 姿态/轨迹数据后由json更新控制参数实现在agv小车在地图上面的动作控制
 1/ui接口类与ros连接
 2/控制消息发布操作---mqtt
 3/地图接口
 4/节点操作
 
 声明rviz的RenderPanel,这个面板类最终继承QWidget

mapp.cpp源文件:

void MAPP::on_btn_map_clicked(){manager_->removeAllDisplays();rviz::Display 
清除 显示内存 初始化

*map_=manager_->createDisplay("rviz/Map","adjustable map",true);
显示 rviz 目录 
 地图ROS_ASSERT(map_!=NULL);
 非空检测----设备初始化 操作
 设置地图路径并发布
 >subProp("Topic")->setValue("/map");
 
 发布地图信息
 rviz::Display *robot_=manager_->createDisplay("rviz/RobotModel","adjustable robot",true);
 显示ROS_ASSERT(robot_!=NULL);robot_->subProp("Robot Description")->setValue("robot_description");
 添加 模式显示rviz::
 Display *laser_=manager_->createDisplay("rviz/LaserScan","adjustable scan",true);
 开始 激光雷达 扫描  ROS_ASSERT(laser_!=NULL);laser_-
 设置激光雷发布消息
 >subProp("Topic")->setValue("/scan");laser_->subProp("Size (m)")->setValue("0.1");}
 发布 雷达 信息代码解释:创建了显示createDisplay(),
 然后添加topic值,加载地图void MAPP::on_btn_left_pressed(){ros::NodeHandle node;
 映射节点 句柄cmdVelPub 
 = node.advertise<:twist>("/cmd_vel", 1);
 写入节点
 参数ROS_INFO("move_turtle_goforward cpp start...");
 显示 前进 操作字符geometry_msgs::
 Twist speed;
 设置界面同步 修正 获取 三轴 
 姿态参数获取   驱动器编码器 
 当前值获取   当前任务 运行时间写入 
 修正参数/修正接口速度  写 0speed.linear.x = 0;
 角度 写 0.05speed.angular.z = 0.05;
 发布 操作参数cmdVelPub.publish(speed);}
 代码解释:向前、向后、向左、向右、停止的
 函数大同小异,主要修改speed.linear.x
 和speed.angular.z为这个进程的节点
 创建一个句柄node在/cmd_vel 话题
 发布一个geometry_msgs/Twist的消息
 控制信号载体Twist message设置线速度为0m/s,
 正为前进,负为后退 (0)设置角速度为0.05rad/s,
 正为左转,负为右转 (0.5)将刚才设置的指令
 发送给机器人cmdVelPub.publish()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值