Chapter3:机器人系统设计

news2025/1/10 16:54:04

R O S 1 {\rm ROS1} ROS1的基础及应用,基于古月的课,各位可以去看,基于 h a w k b o t {\rm hawkbot} hawkbot机器人进行实际操作。
R O S {\rm ROS} ROS版本: R O S 1 {\rm ROS1} ROS1 M e l o d i c {\rm Melodic} Melodic;实际机器人: H a w k b o t {\rm Hawkbot} Hawkbot



1.机器人定义和组成

  1. 机器人定义

    • 1920 1920 1920年捷克斯洛伐克作家卡雷尔·恰佩克在其科幻小说《罗萨姆的机器人万能公司》中,根据 R o b o t a {\rm Robota} Robota(捷克文,“劳役、苦工”)和 R o b o t n i k {\rm Robotnik} Robotnik(波兰文,“工人”),创造出“机器人”一词;
    • 百科定义:机器人 ( R o b o t ) ({\rm Robot}) (Robot)是自动执行工作的机器装置;既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动;它的任务是协助或取代人类工作,如:生产业、建筑业或危险的工作;
    • 美国机器人协会 ( R I A ) ({\rm RIA}) (RIA)定义:机器人是用以搬运材料、零件、工具的可编程序的多功能操作器或是通过可改变程序动作来完成各种作业的特殊机械装置;
    • 国际标准化组织 ( I S O ) ({\rm ISO}) (ISO)定义:
      • 机器人的动作机构具有类似于人或其他生物体的某些器官(肢体、感受等)的功能;
      • 机器人具有通用性,工作种类多样,动作程序灵活易变;
      • 机器人具有不同程度的智能性,如:记忆、感知、推理、决策、学习等;
      • 机器人具有独立性,完整的机器人系统在工作中可以不依赖于人的干预;
  2. 机器人组成

    1

    • 执行机构:人体的手和脚,直接面向工作对象的机械装置;
    • 驱动系统:人体的肌肉和筋络,负责驱动执行机构,将控制系统下达的命令转换成执行机构需要的信号;
    • 传感系统:人体的感官和神经,主要完成信号的输入和反馈,包括内部传感系统和外部传感系统;
    • 控制系统:人体的大脑,实现任务及信息的处理,输出控制命令信号;

    2

2.机器人系统构建

  1. 机器人里程计测距原理

    • 根据单位时间内产生的脉冲数计算电机/轮子的旋转圈数;
    • 根据轮子的周长计算机器人的运动速度;
    • 根据机器人的运动速度积分计算里程;
  2. 惯性测量单元 ( I M U ) ({\rm IMU}) (IMU)

    3

  3. 控制系统框架

    4

  4. 控制系统常见硬件

    5

  5. 外部传感系统

    6

3.URDF机器人建模

  1. U R D F {\rm URDF} URDF定义

    • U n i f i e d   R o b o t   D e s c r i p t i o n   F o r m a t {\rm Unified\ Robot\ Description\ Format} Unified Robot Description Format,统一机器人描述格式;
    • R O S {\rm ROS} ROS中一个重要的机器人模型描述格式;
    • 可以解析 U R D F {\rm URDF} URDF文件中使用 X M L {\rm XML} XML格式描述的机器人模型;
    • R O S {\rm ROS} ROS提供 U R D F {\rm URDF} URDF文件的 C {\rm C} C++解析器;
  2. < l i n k {\rm link} link>部分

    7

    1. < l i n k {\rm link} link>标签:

      • 描述机器人某个刚体部分的外观和物理属性;
      • 尺寸 ( s i z e ) ({\rm size}) (size)、颜色 ( c o l o r ) ({\rm color}) (color)、形状 ( s h a p e ) ({\rm shape}) (shape)、惯性矩阵 ( i n e r t i a l   m a t r i x ) ({\rm inertial\ matrix}) (inertial matrix)、碰撞参数 ( c o l l i s i o n   p r o p e r t i e s ) ({\rm collision\ properties}) (collision properties)等;
    2. < v i s u a l {\rm visual} visual>标签:描述机器人 l i n k {\rm link} link部分的外观参数;

    3. < i n e r t i a l {\rm inertial} inertial>标签:描述 l i n k {\rm link} link的惯性参数;

    4. < c o l l i s i o n {\rm collision} collision>标签:描述 l i n k {\rm link} link的碰撞属性;

    5. 代码格式:

      <link name="<link name>">
          <inertial>......</inertial>
          <visual>......</visual>
          <collision>......</collision>
      </link>
      
  3. < j o i n t {\rm joint} joint>部分

    1. < j o i n t {\rm joint} joint>标签

      • 描述机器人关节的运动学和动力学属性;
      • 包括关节运动的位置和速度限制;
      • 根据关节运动形式,分为六种类型:
    2. 六种类型

      • c o n t i n u o u s {\rm continuous} continuous:旋转关节,可以围绕单轴无限旋转;
      • r e v o l u t e {\rm revolute} revolute:旋转关节,有旋转的角度极限;
      • p r i s m a t i c {\rm prismatic} prismatic:滑动关节,沿某一轴线移动的关节,带有位置极限;
      • p l a n a r {\rm planar} planar:平面关节,允许在平面正交方向上平移或旋转;
      • f l o a t i n g {\rm floating} floating:浮动关节,允许进行平移、旋转运动;
      • f i x e d {\rm fixed} fixed:固定关节,不允许运动的特殊关节;
    3. 标签说明

      8

      <joint name="<name of the joint>" type="<joint type>">
          <parent link="parent_link"/>
          <child link="child_link"/>
          <calibration .../>
          <dynamics damping.../>
          <limit effort .../>
      </joint>
      
      • < c a l i b r a t i o n {\rm calibration} calibration>:关节的参考位置,用来校准关节的绝对位置;
      • < d y n a m i c s {\rm dynamics} dynamics>:描述关节的物理属性,如:阻尼值、物理静摩擦力等;
      • < l i m i t {\rm limit} limit>:描述运动的一些极限值,包括:关节运动的上下限位置、速度限制、力矩限制等;
      • < m i m i c {\rm mimic} mimic>:描述该关节与已有关节的关系;
      • < s a f e t y _ c o n t r o l l e r {\rm safety\_controller} safety_controller>:描述安全控制器参数;
  4. < r o b o t {\rm robot} robot>标签

    9

    • < r o b o t {\rm robot} robot>标签是完整机器人模型的最顶层标签;

    • < l i n k {\rm link} link>和< j o i n t {\rm joint} joint>标签必须包含在< r o b o t {\rm robot} robot>标签内;

    • 一个完整的机器人模型,由一系列< l i n k {\rm link} link>和< j o i n t {\rm joint} joint>标签组成;

    • 完整机器人模型搭建框架:

      <robot name="<name of the robot>">
          <link>......</link>
          <link>......</link>
          
          <joint>......</joint>
          <joint>......</joint>
      </robot>
      
  5. 实际建模部分

    # 1.在工作空间/willard_ws/src/创建功能包
    catkin_create_pkg mbot_description urdf xacro
    cd /mbot_description
    mkdir urdf config launch meshes
    
    # 2.创建.launch启动文件,内容见附录
    cd /launch/
    touch display_mbot_base_urdf.launch
    
    # 3.创建.rviz文件,内容见附录
    cd /config/
    touch mbot_urdf.rviz
    
    # 4.创建.urdf文件,内容见附录
    cd /urdf/
    touch mbot_base.urdf
    
    # 5.启动.launch文件
    roslaunch mbot_description display_mbot_base_urdf.launch
    
    • u r d f {\rm urdf} urdf:存放机器人模型的 U R D F {\rm URDF} URDF x a c r o {\rm xacro} xacro文件;
    • m e s h e s {\rm meshes} meshes:放置 U R D F {\rm URDF} URDF中引用的模型渲染文件;
    • l a u n c h {\rm launch} launch:保存相关启动文件;
    • c o n f i g {\rm config} config:保存 r v i z {\rm rviz} rviz的配置文件;
  6. 模型效果图

    10

4.四轮移动机器人实战

# 1.在工作空间/willard_ws/src/mbot_description/目录下的launch、config、urdf
# 文件夹下创建对应的.launch、.rviz、.urdf文件

# 2.创建.launch启动文件,内容见附录
cd /launch/
touch display_fuxi_urdf.launch 

# 3.创建.rviz文件,内容见附录
cd /config/
touch mbot_urdf.rviz

# 4.创建.urdf文件,内容见附录
cd /urdf/
touch fuxi.urdf

# 5.启动.launch文件
roslaunch mbot_description display_fuxi_urdf.launch

模型效果图:

11

5.附录

5.1 实战一的相关文件
# display_mbot_base_urdf.launch内容(请勿直接全部粘贴,需删减头部尾部的注释)
=====================================================================
<launch>
	<param name="robot_description" textfile="$(find mbot_description)/urdf/mbot_base.urdf" />

	<!-- 设置GUI参数,显示关节控制插件 -->
	<param name="use_gui" value="true"/>
	
	<!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
	<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
	
	<!-- 运行robot_state_publisher节点,发布tf  -->
	<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
	
	<!-- 运行rviz可视化界面 -->
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_urdf.rviz" required="true" />
</launch>
=====================================================================
# 注意:
# 1.joint_state_publisher:发布每个joint(除fixed类型)的状态,且可以通过UI界面对joint进行控制;
# 2.robot_state_publisher:将机器人各个links、joints间的关系,通过TF的形式,整理成三维姿态信息发布;
# mbot_urdf.rviz文件内容(请勿直接全部粘贴,需删减头部尾部的注释)
Panels:
  - Class: rviz/Displays
    Help Height: 78
    Name: Displays
    Property Tree Widget:
      Expanded:
        - /Global Options1
        - /Status1
        - /TF1
      Splitter Ratio: 0.5
    Tree Height: 541
  - Class: rviz/Selection
    Name: Selection
  - Class: rviz/Tool Properties
    Expanded:
      - /2D Pose Estimate1
      - /2D Nav Goal1
      - /Publish Point1
    Name: Tool Properties
    Splitter Ratio: 0.588679016
  - Class: rviz/Views
    Expanded:
      - /Current View1
    Name: Views
    Splitter Ratio: 0.5
  - Class: rviz/Time
    Experimental: false
    Name: Time
    SyncMode: 0
    SyncSource: ""
Visualization Manager:
  Class: ""
  Displays:
    - Alpha: 0.5
      Cell Size: 1
      Class: rviz/Grid
      Color: 160; 160; 164
      Enabled: true
      Line Style:
        Line Width: 0.0299999993
        Value: Lines
      Name: Grid
      Normal Cell Count: 0
      Offset:
        X: 0
        Y: 0
        Z: 0
      Plane: XY
      Plane Cell Count: 10
      Reference Frame: <Fixed Frame>
      Value: true
    - Alpha: 1
      Class: rviz/RobotModel
      Collision Enabled: false
      Enabled: true
      Links:
        All Links Enabled: true
        Expand Joint Details: false
        Expand Link Details: false
        Expand Tree: false
        Link Tree Style: Links in Alphabetic Order
        back_caster_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        base_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        camera_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        front_caster_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        left_wheel_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        right_wheel_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
      Name: RobotModel
      Robot Description: robot_description
      TF Prefix: ""
      Update Interval: 0
      Value: true
      Visual Enabled: true
    - Class: rviz/TF
      Enabled: true
      Frame Timeout: 15
      Frames:
        All Enabled: true
        back_caster_link:
          Value: true
        base_link:
          Value: true
        camera_link:
          Value: true
        front_caster_link:
          Value: true
        left_wheel_link:
          Value: true
        right_wheel_link:
          Value: true
      Marker Scale: 0.200000003
      Name: TF
      Show Arrows: true
      Show Axes: true
      Show Names: true
      Tree:
        base_link:
          back_caster_link:
            {}
          camera_link:
            {}
          front_caster_link:
            {}
          left_wheel_link:
            {}
          right_wheel_link:
            {}
      Update Interval: 0
      Value: true
  Enabled: true
  Global Options:
    Background Color: 48; 48; 48
    Default Light: true
    Fixed Frame: base_link
    Frame Rate: 30
  Name: root
  Tools:
    - Class: rviz/Interact
      Hide Inactive Objects: true
    - Class: rviz/MoveCamera
    - Class: rviz/Select
    - Class: rviz/FocusCamera
    - Class: rviz/Measure
    - Class: rviz/SetInitialPose
      Topic: /initialpose
    - Class: rviz/SetGoal
      Topic: /move_base_simple/goal
    - Class: rviz/PublishPoint
      Single click: true
      Topic: /clicked_point
  Value: true
  Views:
    Current:
      Class: rviz/Orbit
      Distance: 0.791995764
      Enable Stereo Rendering:
        Stereo Eye Separation: 0.0599999987
        Stereo Focal Distance: 1
        Swap Stereo Eyes: false
        Value: false
      Focal Point:
        X: -0.00707128178
        Y: 0.000214380445
        Z: 0.0199916083
      Focal Shape Fixed Size: true
      Focal Shape Size: 0.0500000007
      Invert Z Axis: false
      Name: Current View
      Near Clip Distance: 0.00999999978
      Pitch: 0.305397928
      Target Frame: <Fixed Frame>
      Value: Orbit (rviz)
      Yaw: 0.725397766
    Saved: ~
Window Geometry:
  Displays:
    collapsed: false
  Height: 754
  Hide Left Dock: false
  Hide Right Dock: false
  QMainWindow State: 000000ff00000000fd00000004000000000000016a000002acfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000028000002ac000000d700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000242fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000002800000242000000ad00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a70000003efc0100000002fb0000000800540069006d00650000000000000004a70000030000fffffffb0000000800540069006d0065010000000000000450000000000000000000000337000002ac00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
  Selection:
    collapsed: false
  Time:
    collapsed: false
  Tool Properties:
    collapsed: false
  Views:
    collapsed: false
  Width: 1191
  X: 297
  Y: 107
# mbot_base.urdf文件内容(请勿直接全部粘贴,需删减头部尾部的注释)
<?xml version="1.0" ?>
<robot name="mbot">

    <link name="base_link">
        <visual>
            <origin xyz=" 0 0 0" rpy="0 0 0" />
            <geometry>
                <cylinder length="0.16" radius="0.20"/>
            </geometry>
            <material name="yellow">
                <color rgba="1 0.4 0 1"/>
            </material>
        </visual>
    </link>

    <joint name="left_wheel_joint" type="continuous">
        <origin xyz="0 0.19 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="left_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="left_wheel_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.06" length = "0.025"/>
            </geometry>
            <material name="white">
                <color rgba="1 1 1 0.9"/>
            </material>
        </visual>
    </link>

    <joint name="right_wheel_joint" type="continuous">
        <origin xyz="0 -0.19 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="right_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="right_wheel_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.06" length = "0.025"/>
            </geometry>
            <material name="white">
                <color rgba="1 1 1 0.9"/>
            </material>
        </visual>
    </link>

    <joint name="front_caster_joint" type="continuous">
        <origin xyz="0.18 0 -0.095" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="front_caster_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="front_caster_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.015" />
            </geometry>
            <material name="black">
                <color rgba="0 0 0 0.95"/>
            </material>
        </visual>
    </link>

    <joint name="back_caster_joint" type="continuous">
        <origin xyz="-0.18 0 -0.095" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="back_caster_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="back_caster_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.015" />
            </geometry>
            <material name="black">
                <color rgba="0 0 0 0.95"/>
            </material>
        </visual>
    </link>

</robot>
5.2 实战二的相关文件
# display_fuxi_urdf.launch内容(请勿直接全部粘贴,需删减头部尾部的注释)
<launch>
	<param name="robot_description" textfile="$(find mbot_description)/urdf/fuxi.urdf" />

	<!-- 设置GUI参数,显示关节控制插件 -->
	<param name="use_gui" value="true"/>
	
	<!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
	<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
	
	<!-- 运行robot_state_publisher节点,发布tf  -->
	<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
	
	<!-- 运行rviz可视化界面 -->
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_urdf.rviz" required="true" />
</launch>
#fuxi.urdf文件内容(请勿直接全部粘贴,需删减头部尾部的注释)
<?xml version="1.0" ?>
<robot name="mbot">
	
	<link name="base_link">
		<visual>
			<origin xyz="0 0 0" rpy="0 0 0" />
			<geometry>
				<box size="0.8 0.5 0.12" />
			</geometry>
			<material name="white">
				<color rgba="1 1 1 1"/>
			</material>
		</visual>
	</link>
	
	<joint name="front_left_wheel_joint" type="continuous">
		<origin xyz="0.2 0.25 -0.05" rpy="0 0 0" />
		<parent link="base_link" />
		<child link="front_left_wheel_link" />
		<axis xyz="0 1 0" />
	</joint>
	
	<link name="front_left_wheel_link">
		<visual>
			<origin xyz="0 0 0" rpy="1.5707 0 0" />
			<geometry>
				<cylinder radius="0.08" length="0.05" />
			</geometry>
			<material name="yellow">
				<color rgba="1 0.4 0 1" />
			</material>
		</visual>
	</link>
	
	<joint name="behind_left_wheel_joint" type="continuous">
		<origin xyz="-0.2 0.25 -0.05" rpy="0 0 0" />
		<parent link="base_link" />
		<child link="behind_left_wheel_link" />
		<axis xyz="0 1 0" />
	</joint>
	
	<link name="behind_left_wheel_link">
		<visual>
			<origin xyz="0 0 0" rpy="1.5707 0 0" />
			<geometry>
				<cylinder radius="0.08" length="0.05" />
			</geometry>
			<material name="yellow">
				<color rgba="1 0.4 0 1" />
			</material>
		</visual>
	</link>
	
	<joint name="front_right_wheel_joint" type="continuous">
		<origin xyz="0.2 -0.25 -0.05" rpy="0 0 0" />
		<parent link="base_link" />
		<child link="front_right_wheel_link" />
		<axis xyz="0 1 0" />
	</joint>
	
	<link name="front_right_wheel_link">
		<visual>
			<origin xyz="0 0 0" rpy="1.5707 0 0" />
			<geometry>
				<cylinder radius="0.08" length="0.05" />
			</geometry>
			<material name="yellow">
				<color rgba="1 0.4 0 1" />
			</material>
		</visual>
	</link>
	
	<joint name="behind_right_wheel_joint" type="continuous">
		<origin xyz="-0.2 -0.25 -0.05" rpy="0 0 0" />
		<parent link="base_link" />
		<child link="behind_right_wheel_link" />
		<axis xyz="0 1 0" />
	</joint>
	
	<link name="behind_right_wheel_link">
		<visual>
			<origin xyz="0 0 0" rpy="1.5707 0 0" />
			<geometry>
				<cylinder radius="0.08" length="0.05" />
			</geometry>
			<material name="yellow">
				<color rgba="1 0.4 0 1" />
			</material>
		</visual>
	</link>
	
	<link name="laser_link">
	    <visual>
	        <origin xyz="0 0 0" rpy="0 0 0" />
	        <geometry>
	            <cylinder length="0.05" radius="0.05" />
	        </geometry>
	        <material name="black">
	            <color rgba="0 0 0 1" />
	        </material>
	    </visual>
	</link>
	
	<joint name="laser_joint" type="fixed">
	    <origin xyz="0 0 0.085" rpy="0 0 0" />
	    <parent link="base_link" />
	    <child link="laser_link" />
	</joint>
</robot>
# mbot_urdf.rviz文件内容(请勿直接全部粘贴,需删减头部尾部的注释)
Panels:
  - Class: rviz/Displays
    Help Height: 78
    Name: Displays
    Property Tree Widget:
      Expanded:
        - /Global Options1
        - /Status1
        - /TF1
      Splitter Ratio: 0.5
    Tree Height: 541
  - Class: rviz/Selection
    Name: Selection
  - Class: rviz/Tool Properties
    Expanded:
      - /2D Pose Estimate1
      - /2D Nav Goal1
      - /Publish Point1
    Name: Tool Properties
    Splitter Ratio: 0.588679016
  - Class: rviz/Views
    Expanded:
      - /Current View1
    Name: Views
    Splitter Ratio: 0.5
  - Class: rviz/Time
    Experimental: false
    Name: Time
    SyncMode: 0
    SyncSource: ""
Visualization Manager:
  Class: ""
  Displays:
    - Alpha: 0.5
      Cell Size: 1
      Class: rviz/Grid
      Color: 160; 160; 164
      Enabled: true
      Line Style:
        Line Width: 0.0299999993
        Value: Lines
      Name: Grid
      Normal Cell Count: 0
      Offset:
        X: 0
        Y: 0
        Z: 0
      Plane: XY
      Plane Cell Count: 10
      Reference Frame: <Fixed Frame>
      Value: true
    - Alpha: 1
      Class: rviz/RobotModel
      Collision Enabled: false
      Enabled: true
      Links:
        All Links Enabled: true
        Expand Joint Details: false
        Expand Link Details: false
        Expand Tree: false
        Link Tree Style: Links in Alphabetic Order
        back_caster_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        base_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        camera_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        front_caster_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        left_wheel_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
        right_wheel_link:
          Alpha: 1
          Show Axes: false
          Show Trail: false
          Value: true
      Name: RobotModel
      Robot Description: robot_description
      TF Prefix: ""
      Update Interval: 0
      Value: true
      Visual Enabled: true
    - Class: rviz/TF
      Enabled: true
      Frame Timeout: 15
      Frames:
        All Enabled: true
        back_caster_link:
          Value: true
        base_link:
          Value: true
        camera_link:
          Value: true
        front_caster_link:
          Value: true
        left_wheel_link:
          Value: true
        right_wheel_link:
          Value: true
      Marker Scale: 0.200000003
      Name: TF
      Show Arrows: true
      Show Axes: true
      Show Names: true
      Tree:
        base_link:
          back_caster_link:
            {}
          camera_link:
            {}
          front_caster_link:
            {}
          left_wheel_link:
            {}
          right_wheel_link:
            {}
      Update Interval: 0
      Value: true
  Enabled: true
  Global Options:
    Background Color: 48; 48; 48
    Default Light: true
    Fixed Frame: base_link
    Frame Rate: 30
  Name: root
  Tools:
    - Class: rviz/Interact
      Hide Inactive Objects: true
    - Class: rviz/MoveCamera
    - Class: rviz/Select
    - Class: rviz/FocusCamera
    - Class: rviz/Measure
    - Class: rviz/SetInitialPose
      Topic: /initialpose
    - Class: rviz/SetGoal
      Topic: /move_base_simple/goal
    - Class: rviz/PublishPoint
      Single click: true
      Topic: /clicked_point
  Value: true
  Views:
    Current:
      Class: rviz/Orbit
      Distance: 0.791995764
      Enable Stereo Rendering:
        Stereo Eye Separation: 0.0599999987
        Stereo Focal Distance: 1
        Swap Stereo Eyes: false
        Value: false
      Focal Point:
        X: -0.00707128178
        Y: 0.000214380445
        Z: 0.0199916083
      Focal Shape Fixed Size: true
      Focal Shape Size: 0.0500000007
      Invert Z Axis: false
      Name: Current View
      Near Clip Distance: 0.00999999978
      Pitch: 0.305397928
      Target Frame: <Fixed Frame>
      Value: Orbit (rviz)
      Yaw: 0.725397766
    Saved: ~
Window Geometry:
  Displays:
    collapsed: false
  Height: 754
  Hide Left Dock: false
  Hide Right Dock: false
  QMainWindow State: 000000ff00000000fd00000004000000000000016a000002acfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000028000002ac000000d700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000242fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000002800000242000000ad00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a70000003efc0100000002fb0000000800540069006d00650000000000000004a70000030000fffffffb0000000800540069006d0065010000000000000450000000000000000000000337000002ac00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
  Selection:
    collapsed: false
  Time:
    collapsed: false
  Tool Properties:
    collapsed: false
  Views:
    collapsed: false
  Width: 1191
  X: 297
  Y: 107

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无忧·企业文档自助配置完成单点登录配置,对接企业原有组织架构

我作为企业文档的产品负责人&#xff0c;常常被问及企业文档和其他在线文档有啥差不一样的地方&#xff1f;我大致总结了下&#xff0c;有几个方面&#xff1a;1、企业文档定位于企业内部的内容管理工具&#xff0c;侧重于私有化部署。核心的是数据的控制权在企业自己手中&…

类和对象-对象特性

前言&#xff1a;主要讲述对象的初始化与清理&#xff0c;构造函数与析构函数&#xff0c;其分类和调用&#xff0c;以及调用时机等相关内容对象的初始化与清理&#xff1a;1.生活中我们买的电子产品都基本会有出厂设置&#xff0c;在某一天我们不用的时候也会删除一些自己的信…

Java基础多线程下篇

本篇本文目录:一.线程死锁1.重入锁2.释放锁3.死锁4.wait和notify二.锁1.ReentrantLock2.Condition3.ReadWriteLock4.StampedLock5.Semaphore6.线程并发安全(1) concurrent(2) atomic三.线程池1.通过线程池分配线程2.FixedThreadPool3.CachedThreadPool4.ScheduledThreadPool四.…

粒子输运的蒙特卡罗方法介绍

蒙特卡罗大部分改概念和方法不依赖空间的维度&#xff0c;可以先讨论一维情况下粒子的蒙特卡罗输运。单能粒子输运的玻尔兹曼方程可以写为&#xff1a;仅考虑散射和吸收EtEsEa吸收意味着粒子生命周期的终结。图2.1示例&#xff1a;通过蒙特卡罗方法确定目标几何体内外的中子分布…

宕机了,Redis 如何避免数据丢失?

前言 如果有人问你&#xff1a;"你会把 Redis 用在什么业务场景下&#xff1f;" 我想你大概率会说&#xff1a;"我会把它当作缓存使用&#xff0c;因为它把后端数据库中的数据存储在内存中&#xff0c;然后直接从内存中读取数据&#xff0c;响应速度会非常快。…

机器学习实战(第二版)读书笔记(5)——Embedding

一、使用范围(作者经验)&#xff1a; 类别 < 10 通常采用独热编码方式。类别 > 50( 通常这种情况需要使用哈希桶)&#xff0c;通常最好使用嵌入。10 - 50 可以尝试两种方式&#xff0c;选择最优。 目的&#xff1a;同义词具有非常接近的嵌入&#xff08;将嵌入向量当作嵌…

股票接口自动下单怎么处理?

股票接口自动下单怎么处理的&#xff1f;经过小编的小编的了解&#xff0c;股票交易接口是由很多资源和开发源码的设计来构建的&#xff0c;有的专业开发团队将这些开发研究和完善&#xff0c;但是&#xff0c;这些股票接口不一定就是由其自身提供的&#xff0c;可以是投资者个…

C语言基础(一)—— C语言概述(领域、编译过程、IDE)

1. 什么是C语言语言是人和人交流&#xff0c;C语言就是人和计算机交流的一种语言2. 为什么要学习C语言2.1 C语言特点优点&#xff1a;代码量小执行速度快功能强大编程自由缺点&#xff1a;写代码实现周期长可移植性较差过于自由&#xff0c;经验不足易出错对平台库依赖较多2.2 …

Hystrix执行时内部原理

Hystrix最基本的支持高可用的技术资源隔离和限流。创建command,执行这个command,配置这个command对应的group和线程池。这里分析一下开始执行这个command,调用了这个command的execute()方法之后,Hystrix底层的执行流程和步骤以及原理是什么。整个8大步骤的流程图: 步骤一:…

Hive(6):数据定义语言(DDL)案例

1 原生数据类型案例 文件archer.txt中记录了相关信息&#xff0c;内容如下所示&#xff0c;其中字段之间分隔符为制表符\t,要求在Hive中建表映射成功该文件。 1 后羿 5986 1784 396 336 remotely archer 2 马可波罗 5584 200 362 344 remotely archer 3 鲁班七号 5989 1756 4…

JVM笔记(5)—— 运行时数据区—— 方法区

上一篇&#xff1a;JVM笔记&#xff08;4&#xff09;—— 运行时数据区——堆空间 一、栈、堆、方法区的交互关系 进程运行过程中&#xff0c;在方法中创建对象时通过方法区中的类型信息在堆中创建对应的对象&#xff0c;对象中又存有指向方法区中对应类型信息的指针&#xf…

Python采集热搜评论数据,制作词云分析,又是吃瓜的一天

前言 最近微博上的爆的热搜是不少啊&#xff0c;咳咳&#xff0c;23年1月31号记汪峰旷工一次 之前有营销号预言23年的娃瓜 已经爆出来一个了 好像是说还有两个来着 也不知道是谁的娃~ 现在已经没有什么可以震惊到我的了 胡歌都有娃了 彭于晏抓紧吧 有点点的无聊 就来用Pytho…

MySQL事件

文章目录事件介绍事件调度查询事件调度状态开关事件调度(临时)开关事件调度(永久)事件使用创建事件语法子句分析执行计划子句事件主体子句查询事件修改事件删除事件事件介绍 MySQL事件(event)是根据指定时间表执行的任务&#xff0c;称为计划事件。事件包含一个或多个SQL语句的…

【刷题】二进制求和

当你觉得小学二年级教的的竖式学会了以后&#xff0c;此题又是一记重击。 目录 前言 一、题目 二、找规律 三、思想 1.位数相同 2.位数不同 3.注意事项 四、具体实现 总结 前言 同上次做过的的二进制求和相似&#xff08;按位异或求出的是无进位和&#xff0c;按位与求…

大数据技术架构(组件)14——Hive:掩码函数杂项函数

1.4.8、掩码函数1.4.8.1、mask-->Hive2.1.01.4.8.12、mask_first_n->Hive2.1.01.4.8.13、mask_last_n -->Hive2.1.01.4.8.14、mask_show_first_n-->Hive2.1.01.4.8.15、mask_show_last_n -->Hive2.1.01.4.8.16、mask_hash -->Hive2.1.0支持版本返回值类型函数…

让你深夜emo的“网抑云”,是如何做产品设计的?

网易云音乐作为国内首个以“歌单”为核心架构的音乐APP&#xff0c;有的人喜欢它的热评&#xff0c;有的人却觉得它的版权太少&#xff0c;虽然网易云音乐不是曲库最丰富的听歌软件&#xff0c;但绝对是听歌软件里情感体验最好的。 我很好奇它具有什么力量&#xff0c;能够使用…

ReentrantReadWriteLock可重入读写锁

目录 读写锁&#xff1a; 锁降级 锁饥饿&#xff1a; 读写锁&#xff1a; 定义&#xff1a;一个资源能够被多个读线程访问&#xff0c;或者被一个写线程访问&#xff0c;但是不能同时存在读写线程。 特点:读写互斥&#xff0c;写锁独占&#xff0c;读读可共享,读没有完…

分布式学习第三天—远程调用和网关

Feign远程调用 Feign的介绍 Feign是一个声明式的http客户端&#xff0c;官方地址&#xff1a;https://github.com/OpenFeign/feign 其作用就是帮助我们优雅的实现http请求的发送 Feign远程调用的使用步骤 1.引入依赖 在子模型服务的pom文件中引入feign的依赖&#xff1a; &l…

【计网】入门知识

一些基本认识网络传输基本要素&#xff1a;网络编程&#xff1a;python的网络编程方式TCP和UDP一些编程技巧socket实现TCP通信网络传输基本要素&#xff1a; 有连接通道、传输字节数据、输入输出遵守一样的协议 网络编程&#xff1a; CS&#xff08;QQ下载客户端&#xff09…

linux防火墙究竟如何使用?iptables的原理与简单应用

1. 什么是防火墙&#xff1f; 在计算机体系中&#xff0c;防火墙是基于预定安全规则来监视和控制传入和传出网络流量的网络安全系统。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描&#xff0c;这样能够过滤掉一些攻击&#xff0c;以免其…