当前位置: 首页 > news >正文

深圳网站建设q双赢世讯网页游戏网站网址

深圳网站建设q双赢世讯,网页游戏网站网址,网页设计素材包,免费下载网站有哪些完成了 MoveIt 这边 action client 的基本配置#xff0c;MoveIt 理论上可以将规划好的 trajectory 以 action 的形式发布出来了#xff0c;浅浅尝试一下#xff0c;在 terminal 中运行 roslaunch xmate7_moveit_config_new demo.launch 报错提示他在等待 xmate_arm_control…完成了 MoveIt 这边 action client 的基本配置MoveIt 理论上可以将规划好的 trajectory 以 action 的形式发布出来了浅浅尝试一下在 terminal 中运行 roslaunch xmate7_moveit_config_new demo.launch 报错提示他在等待 xmate_arm_controller/follow_joint_trajectory 这个 action sever 的到来显然他等的好辛苦却还是没有等来所期待的人最终遗憾地告诉大家以 xmate_arm_controller/follow_joint_trajectory 为 action 名称的 action client 端没有被连接。 此时rostopic list 一下 hjshjs:~/new_xmate7pro_ws$ rostopic list /attached_collision_object /collision_object /execute_trajectory/cancel /execute_trajectory/feedback /execute_trajectory/goal /execute_trajectory/result /execute_trajectory/status /head_mount_kinect/depth_registered/points /joint_states /move_group/cancel /move_group/display_contacts /move_group/display_cost_sources /move_group/display_grasp_markers /move_group/display_planned_path /move_group/feedback /move_group/filtered_cloud /move_group/goal /move_group/monitored_planning_scene /move_group/motion_plan_request /move_group/ompl/parameter_descriptions /move_group/ompl/parameter_updates /move_group/plan_execution/parameter_descriptions /move_group/plan_execution/parameter_updates /move_group/planning_scene_monitor/parameter_descriptions /move_group/planning_scene_monitor/parameter_updates /move_group/result /move_group/sense_for_plan/parameter_descriptions /move_group/sense_for_plan/parameter_updates /move_group/status /move_group/trajectory_execution/parameter_descriptions /move_group/trajectory_execution/parameter_updates /pickup/cancel /pickup/feedback /pickup/goal /pickup/result /pickup/status /place/cancel /place/feedback /place/goal /place/result /place/status /planning_scene /planning_scene_world /real_controller_joint_states /recognized_object_array /rosout /rosout_agg /rviz_hjs_12716_2381460729014530723/motionplanning_planning_scene_monitor/parameter_descriptions /rviz_hjs_12716_2381460729014530723/motionplanning_planning_scene_monitor/parameter_updates /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update_full /tf /tf_static /trajectory_execution_event发现根本没有 xmate_arm_controller/follow_joint_trajectory 这个名称的 action 发布出来。 想想也能理解MoveIt 端的 action client 苦苦等了好久的另一半(action server)action server 却终究没有出现和给出回应那么action client自然也就没有必要再将自己的爱意(xmate_arm_controller/follow_joint_trajectory) 表达出来了。 言归正传之前在 Gazebo 中虚拟仿真的时候是 Gazebo 的 ros_control 插件充当了 action server 的角色让 MoveIt 端的 client 和 Gazebo 端的 server 建立了 action 通信连接那么现在针对真实机械臂没有人再充当 action server 的角色了自然也就没有 follow_joint_trajectory 发布出来所以下一步要做的就是自己编写一个 Movet 端的 action client 所倾慕的 action server 并为它们牵线(配置接口)介绍它们认识(建立连接)进而实现 follow_joint_trajectory 的发布和接收。 关于 ROS action 相关知识的学习自行补上我编写的 action server 节点如下 # include ros/ros.h # include actionlib/server/simple_action_server.h # include control_msgs/FollowJointTrajectoryAction.h # include std_msgs/Float32MultiArray.h # include iostream # include moveit_msgs/RobotTrajectory.husing namespace std; // 重命名类型为 Server typedef actionlib::SimpleActionServercontrol_msgs::FollowJointTrajectoryAction Server;// 用于存储 moveit 发送出来的轨迹数据 moveit_msgs::RobotTrajectory moveit_tra;void execute_callback(const control_msgs::FollowJointTrajectoryGoalConstPtr goalPtr, Server* moveit_server) {// 1、解析提交的目标值int n_joints goalPtr-trajectory.joint_names.size();int n_tra_Points goalPtr-trajectory.points.size();moveit_tra.joint_trajectory.header.frame_id goalPtr-trajectory.header.frame_id;moveit_tra.joint_trajectory.joint_names goalPtr-trajectory.joint_names;moveit_tra.joint_trajectory.points.resize(n_tra_Points);for(int i0; in_tra_Points; i) // 遍历每组路点{moveit_tra.joint_trajectory.points[i].positions.resize(n_joints);moveit_tra.joint_trajectory.points[i].velocities.resize(n_joints);moveit_tra.joint_trajectory.points[i].accelerations.resize(n_joints);moveit_tra.joint_trajectory.points[i].time_from_start goalPtr-trajectory.points[i].time_from_start;for(int j0;jn_joints; j) // 遍历每组路点中的每个关节数据{moveit_tra.joint_trajectory.points[i].positions[j] goalPtr-trajectory.points[i].positions[j];moveit_tra.joint_trajectory.points[i].velocities[j] goalPtr-trajectory.points[i].velocities[j];moveit_tra.joint_trajectory.points[i].accelerations[j] goalPtr-trajectory.points[i].accelerations[j];}}cout The trajectory data is: ******************************************** endl;cout moveit_tra;cout ******************************************** The trajectory data is finished printing. endl;ROS_INFO(The number of joints is %d.,n_joints);ROS_INFO(The waypoints number of the trajectory is %d.,n_tra_Points);ROS_INFO(Receive trajectory successfully);moveit_server-setSucceeded(); }int main(int argc, char *argv[]) {ros::init(argc,argv,moveit_action_server);ros::NodeHandle nh;// 创建 action 对象(NodeHandle话题名称回调函数解析传入的目标值服务器是否自启动)Server moveit_server(nh,xmate_arm_controller/follow_joint_trajectory, boost::bind(execute_callback, _1, moveit_server), false);// 手动启动服务器moveit_server.start();ros::spin();return 0; }该节点实现的功能就是 启动了一个 xmate_arm_controller/follow_joint_trajectory 名称的 action server而正是这个名称的 action才是 MoveIt 端的 action client 所喜欢的具体原因见上一篇博客5、创建 ros_controllers.yaml 文件 在启动的 action server 回调函数中解析了 MoveIt 规划的轨迹数据并把该轨迹数据存储到了 moveit_msgs::RobotTrajectory 类型的变量 moveit_tra 中。 验证 terminal 1:roscore; terminal 2: 启动 action server 节点rosrun xmate7_demo moveit_action_server 此时 rostopic list 结果 terminal 3: 启动 action client 节点roslaunch xmate7_moveit_config_new demo.launch 此时终端不会报错而且提示 [ INFO] [1658643437.543320231]: Added FollowJointTrajectory controller for xmate_arm_controller 将 Rviz 中的拖动球拖动点击 Plan Excute 会发现 terminal 2会按照我所写代码打印出 MoveIt 的轨迹数据。 可见MoveIt 规划的轨迹让机械臂从 home 姿态运动到目标姿态生成了 33 个路点对应每个路点的位置、速度、加速度以及时间戳也都解析到了 moveit_tra 这个变量中了以上验证表明我们自己实现的 action server 代码实现了和 MoveIt 端 action client 的 connect并且拿到了 MoveIt 规划出来的轨迹数据。顺其自然为了实现用 MoveIt 控制自己的真实机械臂的宏图大业当然下一步就是将我们拿到的 trajectory 数据作为指令数据发送给真实的机械臂去执行这将在下一篇文章中描述。 另外上述示例 action server 代码实现方式比较简单还可以将 action server 封装成类的形式在类中编写回调函数丰富 action 机制的使用接口在类中初始化 action 对象可参照action 官网
http://www.tj-hxxt.cn/news/233587.html

相关文章:

  • 做家政有专门的网站吗专业加速器产业园
  • 网站建设设计原则阳江市网站备案幕布
  • 网站建设与管理课程项目时尚字体设计网站
  • WordPress网站修改品牌成功案例100个
  • 官方网站的英文工商网上核名系统
  • 网站群维护方案广州安全教育平台注册
  • 画廊网站模板官网应用商店下载
  • vs网站开发表格大小设置dw网页怎么使用模板
  • 网站动态页面河南电商网站设计
  • 佛山网站建设哪家评价高建设银行海外分行招聘网站
  • 有什么好的手机推荐网站爱战网关键词查询网站
  • 青海建设厅网站学编程要多少钱
  • 建一个交易网站需要多少钱淘宝代运营公司十大排名
  • 匿名网站建设营销型网站策划 ppt
  • 网站建设 菜鸟教程公司做网站 手机 电脑
  • 佛山网络公司哪家便宜淄博网站建设优化运营熊掌号
  • 浙江做网站公司wordpress插件dedecms
  • 网站建设业务前景做网页要花多少钱
  • 深圳微商城网站设计电话常熟seo关键词优化公司
  • 做网站网页的公司婚礼礼网站如何做的
  • 1 建设网站目的是什么意思室内设计公司图片
  • 51个人网站百度公司介绍
  • 上海网站建设流进销存软件终身免费版
  • 网站的开发环境是什么wordpress免费主题企业
  • 青岛网站空间北京的网站设计公司
  • 建设培训网站建设南昌中企动力做的网站怎么样
  • 做移动网站开发学院网站怎么做的
  • wordpress一键优化网站优化关键词怎么做
  • 大学网站栏目建设网站规划设计内容有哪些
  • 怎样做公司网站建设南京专业网站制作公司