1、2022-5-12.1湖南大学 电气与信息工程学院2022-5-12.21、ROS的定义Linux操作系统ROS开发环境Hans CuteHans CuteTurtleBot2TurtleBot22022-5-12.3串口协议ROS环境串口协议机械臂1.将机械臂发送上来的信息以话题的形式发布 在ROS环境中如:/joint1_controller/state /claw_controller/state2.将话题信息转换成机械臂所需要的串口信息如:/joint1_controller/command /claw_controller/commmand2022-5-12.4也就是说ROS环境键盘
2、(节点)手柄(节点)平板(节点)机器人底盘(节点)2022-5-12.52、ROS的基本概念1、节点管理器master: master在整个网络通信架构里相当于管理中心,管理着各个node。node首先在master处进行注册,之后master会将该node纳入整个ROS程序中。2、node之间的通信也是先由master进行“牵线”,才能两两的进行点对点通信。2022-5-12.6理解话题(topic)node2master node1注册节点publish topic注册节点 subscribe topic/topic_name/topic_name/topic_name基本的msg包括bo
3、ol、int8、int16、int32、int64(以及uint)、float、float64、string、time、duration、header、可变长数组array、固定长度数组arrayC。topic是ROS中的一种单向的异步通信方式。然而有些时候单向的通信满足不了通信要求,比如当一些节点只是临时而非周期性的需要某些数据,如果用topic通信方式时就会消耗大量不必要的系统资源,造成系统的低效率高功耗。 2022-5-12.7理解服务(service)nodeA(client)nodeB(server)/service/serviceService是同步通信方式,所谓同步就是说,此时N
4、ode A发布请求后会在原地等待reply,直到Node B处理完了请求并且完成了reply,Node A才会继续执行。Node A等待过程中,是处于阻塞状态的成通信。这样的通信模型没有频繁的消息传递,没有冲突与高系统资源的占用,只有接受请求才执行服务,简单而且高效。 2022-5-12.8话题和服务的对比2022-5-12.93、ROS文件系统1、创建工作空间$ mkdir p catkin_ws/src #创建工作空间$ cd catkin_ws #进入工作空间$ catkin_make #编译catkin_ws/src /Cmakelists.txt /build /develcatki
5、n_make的工作流程2022-5-12.10创建package2、创建包$ cd catkin_ws/src #进入工作空间的src下$ catkin_create_pkg package_name std_msgs rospy roscpp catkin_ws/src /package_name / CMakeLists.txt #package的编译规则(必须) package.xml #package的描述信息(必须) src/ #源代码文件 include/ #C+头文件 scripts/ #可执行脚本 msg/ #自定义消息 srv/ #自定义服务 models/ #3D模型文件
6、urdf/ #urdf文件 launch/ #launch文件 2022-5-12.11自定义发布topic/talker/listenerpublishpublish/chatter/chattersubscribesubscribebool、int8、int16、int32、int64、uint、float、float64、string、time、duration、header、可变长数组array、固定长度数组arrayC发布任何名称的话题任意数据:以某一频率2022-5-12.12自定义service/client/server发送请求接收回复bool、int8、int16、int32
7、、int64、uint、float、float64、string、time、duration、header、可变长数组array、固定长度数组arrayC2022-5-12.132022-5-12.142022-5-12.15回顾:ROS的定义Linux操作系统ROS开发环境Hans CuteHans CuteTurtleBot2TurtleBot22022-5-12.16ROS controller2022-5-12.17urdf和xarcoUnified Robot Description Format,统一机器人描述格式,简称为URDF。ROS中的urdf功能包包含一个URDF的C+解析
8、器,URDF文件使用XML格式描述机器人模型。robot: This tag encapsulates the entire robot model that can be robot: This tag encapsulates the entire robot model that can be represented using URDF. Inside the robot tag, we can define the name of represented using URDF. Inside the robot tag, we can define the name of the r
9、obot, the the robot, the linkslinks, and the, and the joints joints of the robot.of the robot.The syntax is as follows:The syntax is as follows:robot name=robot name= . . . . . . . . . . 2022-5-12.18 The The Visual Visual section represents the real link of the robot, and section represents the real
10、 link of the robot, and the area surrounding the real link is the Collision section. The the area surrounding the real link is the Collision section. The CollisionCollision section encapsulates the real link to detect collision section encapsulates the real link to detect collision before hitting th
11、e real link.before hitting the real link. link name=link name= . . . . robot name=robot name= . . . . . . . . . . 2022-5-12.19jointjoint: The joint tag supports the different types of The joint tag supports the different types of joints such as joints such as revolute, continuous, prismatic, fixed,
12、revolute, continuous, prismatic, fixed, floating, floating, andand planar planar robot name=robot name= . . . . . . . . . . joint name=joint name= 2022-5-12.20link name=link name= . . . . robot name=robot name= . . . . . . . . . . joint name=joint name= 2022-5-12.21学习Moveit和navigation包1.ROS环境自动将机器人的串口信息解析成话题信息;2.创建节点和发布话题;3.构建自定义机器人 的模型-urdf和xarco文件4.根据urdf和xarco文件,创建moveit包和navigation包2022-5-12.22汇报人 :肖