pos機演示教程, 阿克曼結構移動機器人的gazebo仿真

 新聞資訊  |   2023-03-27 08:13  |  投稿人:pos機之家

網上有很多關于pos機演示教程, 阿克曼結構移動機器人的gazebo仿真的知識,也有很多人為大家解答關于pos機演示教程的問題,今天pos機之家(www.tonybus.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機演示教程

2、pos機的操作步驟

3、收銀結賬的的步驟和要領?

pos機演示教程

第四章、用xacro優化URDF并配置gazebo仿真插件

1?前言

上節用簡易模型寫了一個小車的URDF代碼,這一節將用xacro對其進行優化,這里我并不打算用宏對參數進行封裝,因為我個人覺得這樣看起來會比較直觀,方便讀者閱讀。

2?配置主xacro文件

新建racecar.xacro文件,將上一節racebot.urdf中的代碼復制過來并進行修改,整體代碼如下:

<?xml version="1.0" encoding="utf-8"?><robot name="racebot" xmlns:xacro="http://www.ros.org/wiki/xacro"> <xacro:include filename="$(find racebot_description)/urdf/ackermann/macros.xacro" /> <link name="base_footprint"> </link> <link name="base_link"> <visual> <geometry> <box size="0.28 0.1 0.03"/> <!-- <mesh filename="package://tianracer_description/meshes/base_link.STL" /> --> </geometry> <!-- <origin xyz="0 0 -0.023" rpy="0 0 0" /> --> <origin xyz="0 0 0" rpy="0 0 0" /> <material name="yellow"> <color rgba="0.8 0.3 0.1 0.5" /> </material> </visual> <collision> <geometry> <box size="0.28 0.1 0.03" /> </geometry> <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" /> </collision> </link> <joint name="base_link2base_footprint" type="fixed"> <parent link="base_footprint" /> <child link="base_link"/> <origin xyz="0 0 0.032" rpy="0 0 0" /> </joint> <link name="base_inertia"> <inertial> <origin xyz="0 0 0" /> <mass value="4" /> <inertia ixx="0.0264" ixy="0" ixz="0" iyy="0.0294" iyz="0" izz="0.00364" /> </inertial> </link> <joint name="chassis_inertia_joint" type="fixed"> <origin xyz="0 0 0" rpy="0 0 0" /> <parent link="base_link" /> <child link="base_inertia" /> </joint> <link name="left_steering_hinge"> <visual> <geometry> <cylinder radius="0.01" length="0.005" /> <!-- <sphere radius="0.015" /> --> </geometry> <origin xyz="0 0 0" rpy="1.57 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <cylinder radius="0.01" length="0.005" /> <!-- <sphere radius="0.015" /> --> </geometry> <origin xyz="0.0 0.0 0.0" rpy="1.57 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="0.5" /> <inertia ixx="1.35E-05" ixy="0" ixz="0" iyy="1.35E-05" iyz="0" izz="2.5E-05" /> </inertial> </link> <joint name="left_steering_hinge_joint" type="revolute"> <parent link="base_link" /> <child link="left_steering_hinge" /> <origin xyz="0.13 0.065 0" /> <axis xyz="0 0 1" /> <limit lower="-0.6" upper="0.6" effort="5.0" velocity="1000.0"/> </joint> <xacro:steering_hinge_transmission name="left_steering_hinge" /> <link name="left_front_wheel"> <visual> <geometry> <cylinder radius="0.033" length="0.02" /> </geometry> <origin xyz="0 0 0" rpy="1.57 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <cylinder radius="0.032" length="0.02" /> </geometry> <origin xyz="0.0 0.0 0.0" rpy="1.57 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="2.0" /> <inertia ixx="6.64E-04" ixy="0" ixz="0" iyy="6.64E-04" iyz="0" izz="1.02E-03" /> </inertial> </link> <joint name="left_front_wheel_joint" type="continuous"> <parent link="left_steering_hinge" /> <child link="left_front_wheel" /> <origin xyz="0 0.025 0" /> <axis xyz="0 1 0" /> <limit effort="10" velocity="1000" /> </joint> <xacro:wheel_transmission name="left_front_wheel" /><link name="right_steering_hinge"> <visual> <geometry> <cylinder radius="0.01" length="0.005" /> </geometry> <origin xyz="0 0 0" rpy="1.57 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <cylinder radius="0.01" length="0.005" /> </geometry> <origin xyz="0.0 0.0 0.0" rpy="1.57 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="0.5" /> <inertia ixx="1.35E-05" ixy="0" ixz="0" iyy="1.35E-05" iyz="0" izz="2.5E-05" /> </inertial> </link> <joint name="right_steering_hinge_joint" type="revolute"> <parent link="base_link" /> <child link="right_steering_hinge" /> <origin xyz="0.13 -0.065 0" /> <axis xyz="0 0 1" /> <limit lower="-0.6" upper="0.6" effort="5.0" velocity="1000.0"/> </joint> <xacro:steering_hinge_transmission name="right_steering_hinge" /> <link name="right_front_wheel"> <visual> <geometry> <cylinder radius="0.033" length="0.02" /> </geometry> <origin xyz="0 0 0" rpy="1.57 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <cylinder radius="0.032" length="0.02" /> </geometry> <origin xyz="0.0 0.0 0.0" rpy="1.57 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="2.0" /> <inertia ixx="6.64E-04" ixy="0" ixz="0" iyy="6.64E-04" iyz="0" izz="1.02E-03" /> </inertial> </link> <joint name="right_front_wheel_joint" type="continuous"> <parent link="right_steering_hinge" /> <child link="right_front_wheel" /> <origin xyz="0 -0.025 0" /> <axis xyz="0 1 0" /> <limit effort="10" velocity="1000" /> </joint> <xacro:wheel_transmission name="right_front_wheel" /> <link name="left_rear_wheel"> <visual> <geometry> <cylinder radius="0.032" length="0.02" /> </geometry> <origin xyz="0 0 0" rpy="1.57 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <cylinder radius="0.032" length="0.02" /> </geometry> <origin xyz="0.0 0.0 0.0" rpy="1.57 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="2.0" /> <inertia ixx="6.64E-04" ixy="0" ixz="0" iyy="6.64E-04" iyz="0" izz="1.02E-03" /> </inertial> </link> <joint name="left_rear_wheel_joint" type="continuous"> <parent link="base_link" /> <child link="left_rear_wheel" /> <origin xyz="-0.13 0.09 0" /> <axis xyz="0 1 0" /> <limit effort="10" velocity="1000" /> </joint> <xacro:wheel_transmission name="left_rear_wheel" /> <link name="right_rear_wheel"> <visual> <geometry> <cylinder radius="0.032" length="0.02" /> </geometry> <origin xyz="0 0 0" rpy="1.57 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <cylinder radius="0.032" length="0.02" /> </geometry> <origin xyz="0.0 0.0 0.0" rpy="1.57 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="2.0" /> <inertia ixx="6.64E-04" ixy="0" ixz="0" iyy="6.64E-04" iyz="0" izz="1.02E-03" /> </inertial> </link> <joint name="right_rear_wheel_joint" type="continuous"> <parent link="base_link" /> <child link="right_rear_wheel" /> <origin xyz="-0.13 -0.09 0" /> <axis xyz="0 1 0" /> <limit effort="10" velocity="1000" /> </joint> <xacro:wheel_transmission name="right_rear_wheel" /> <link name="camera"> <visual> <geometry> <box size="0.005 0.03 0.03"/> </geometry> <origin xyz="0 0 0" rpy="0 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <box size="0.005 0.03 0.03"/> </geometry> <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="0.05" /> <inertia ixx="6.64E-04" ixy="0" ixz="0" iyy="6.64E-04" iyz="0" izz="1.02E-03" /> </inertial> </link> <joint name="camera_joint" type="fixed"> <parent link="base_link" /> <child link="camera" /> <origin xyz="0.14851 0.0022137 0.0975" /> <axis xyz="0 0 1" /> </joint> <link name="real_sense"> <visual> <geometry> <box size="0.01 0.1 0.02"/> </geometry> <origin xyz="0 0 0" rpy="0 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <box size="0.01 0.1 0.02"/> </geometry> <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="0.05" /> <inertia ixx="6.64E-04" ixy="0" ixz="0" iyy="6.64E-04" iyz="0" izz="1.02E-03" /> </inertial> </link> <joint name="realsense_joint" type="fixed"> <parent link="base_link" /> <child link="real_sense" /> <origin xyz="0.19864 0.0038046 0.052021" /> <axis xyz="0 0 1" /> </joint> <link name="lidar"> <visual> <geometry> <cylinder radius="0.03" length="0.06" /> </geometry> <origin xyz="0 0 0" rpy="0 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <cylinder radius="0.03" length="0.06" /> </geometry> <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="0.1" /> <inertia ixx="6.64E-04" ixy="0" ixz="0" iyy="6.64E-04" iyz="0" izz="1.02E-03" /> </inertial> </link> <joint name="lidar_joint" type="fixed"> <parent link="base_link" /> <child link="lidar" /> <origin xyz="0.093603 0 0.12377" /> <axis xyz="0 0 1" /> </joint> <link name="imu"> <visual> <geometry> <box size="0.01 0.01 0.005"/> </geometry> <origin xyz="0 0 0" rpy="0 0 0" /> <material name="black"> <color rgba="0.0 0.0 0.0 1.0" /> </material> </visual> <collision> <geometry> <box size="0.01 0.01 0.005"/> </geometry> <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" /> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="0.05" /> <inertia ixx="6.64E-04" ixy="0" ixz="0" iyy="6.64E-04" iyz="0" izz="1.02E-03" /> </inertial> </link> <joint name="imu_joint" type="fixed"> <parent link="base_link" /> <child link="imu" /> <origin xyz="0 0 0.02" /> <axis xyz="0 0 1" /> </joint> <xacro:include filename="$(find racebot_description)/urdf/ackermann/racecar.gazebo" /></robot>

代碼起始和末尾添加了兩個文件,通過xacro封裝引用進來。這兩個xacro文件是接下去要配置的傳動文件macros.xacro以及gazebo插件racecar.gazebo。

3?添加傳動transmission

創建macro.xacro文件,該代碼給前后輪以及前輪擺轉配置了傳動transmission元素,代碼如下:

<?xml version="1.0"?><robot name="racebot" xmlns:xacro="http://www.ros.org/wiki/xacro"><!-- transmission macros --><xacro:macro name="wheel_transmission" params="name"> <transmission name="${name}_transmission" type="SimpleTransmission"> <type>transmission_interface/SimpleTransmission</type> <joint name="${name}_joint"> <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface> </joint> <actuator name="${name}_motor"> <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface> <mechanicalReduction>1</mechanicalReduction> </actuator> </transmission></xacro:macro><xacro:macro name="steering_hinge_transmission" params="name"> <transmission name="${name}_transmission" type="SimpleTransmission"> <type>transmission_interface/SimpleTransmission</type> <joint name="${name}_joint"> <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface> </joint> <actuator name="${name}_motor"> <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface> <mechanicalReduction>1</mechanicalReduction> </actuator> </transmission></xacro:macro></robot>

值得注意的是,引用該文件時,要將路徑代碼放置到racecar.xacro代碼的最上端位置,如上代碼所示,否則將無法引用到,并且在需要添加傳動的link后面添加宏定義,以左前輪以及左前輪擺轉為例:

<xacro:wheel_transmission name="left_front_wheel" /> . . . <xacro:steering_hinge_transmission name="right_steering_hinge" />

4?配置gazebo插件

要讓小車在gazebo中仿真,并且讓小車能夠進行建圖導航,需要給小車的攝像頭,激光雷達等link添加傳感器插件,下面將進行配置,新建racecar.gazebo文件,開頭代碼:

<?xml version="1.0"?><robot name="racebot" xmlns:xacro="http://www.ros.org/wiki/xacro">。。。</robot>

配置各個link的顏色:

由于車輪實際上會接觸地面,因此會與地面發生物理相互作用,將各個link添加部件材料的附加信息,并且定義各個link的顏色信息。參考gazebo官網 :http://gazebosim.org/tutorials/?tut=ros_urdf

<!-- Gazebo references --><gazebo reference="base_link"> <mu1 value="0.0"/> <mu2 value="0.0"/> <kp value="10000000.0" /> <kd value="1.0" /> <material>Gazebo/Red</material></gazebo><gazebo reference="left_rear_wheel"> <mu1 value="2.0"/> <mu2 value="2.0"/> <kp value="10000000.0" /> <kd value="1.0" /> <fdir1 value="1 0 0"/> <material>Gazebo/Black</material></gazebo><gazebo reference="right_rear_wheel"> <mu1 value="2.0"/> <mu2 value="2.0"/> <kp value="10000000.0" /> <kd value="1.0" /> <fdir1 value="1 0 0"/> <material>Gazebo/Black</material></gazebo><gazebo reference="left_front_wheel"> <mu1 value="2.0"/> <mu2 value="2.0"/> <kp value="10000000.0" /> <kd value="1.0" /> <fdir1 value="0 0 1"/> <material>Gazebo/Black</material></gazebo><gazebo reference="right_front_wheel"> <mu1 value="2.0"/> <mu2 value="2.0"/> <kp value="10000000.0" /> <kd value="1.0" /> <fdir1 value="0 0 1"/> <material>Gazebo/Black</material></gazebo><gazebo reference="lidar"> <material>Gazebo/Black</material></gazebo><gazebo reference="camera"> <material>Gazebo/Black</material></gazebo><gazebo reference="real_sense"> <material>Gazebo/Grey</material></gazebo>

配置ros_control:

由于gazebo并沒阿克曼車型的插件,要鏈接gazebo與ros,我們先添加ros_control插件,它讀取所有transmission標記,以及joint_state_publisher插件。

<!-- Gazebo Plugins --><gazebo> <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so"> <robotNamespace>/racebot</robotNamespace> <robotParam>robot_description</robotParam> <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType> <legacyModeNS>true</legacyModeNS> </plugin></gazebo>

注意命名空間要設置為/racebot。

配置激光雷達插件:

<!-- hokuyo --> <gazebo reference="lidar"> <material>Gazebo/Grey</material> <sensor type="ray" name="hokuyo_sensor"> <pose>0 0 0.0124 0 0 0</pose> <visualize>false</visualize> <update_rate>40</update_rate> <ray> <scan> <horizontal> <samples>1081</samples> <resolution>1</resolution> <min_angle>-2.3561944902</min_angle> <max_angle>2.3561944902</max_angle> </horizontal> </scan> <range> <min>0.1</min> <max>10.0</max> <resolution>0.01</resolution> </range> <noise> <mean>0.0</mean> <stddev>0.01</stddev> </noise> </ray> <plugin name="gazebo_ros_hokuyo_controller" filename="libgazebo_ros_laser.so"> <topicName>/scan</topicName> <frameName>lidar</frameName> </plugin> </sensor> </gazebo>

配置深度相機插件:

由于配置realsense插件過于復雜,因此這里用kinect插件來代替realsense插件。

<gazebo reference="real_sense"> <sensor type="depth" name="real_sense"> <always_on>true</always_on> <update_rate>20.0</update_rate> <camera> <horizontal_fov>${60.0*3.14/180.0}</horizontal_fov> <image> <format>R8G8B8</format> <width="360px",height="auto" />

配置單目相機插件:

<!-- camera --><gazebo reference="camera"> <material>Gazebo/Grey</material> <sensor type="camera" name="camera"> <update_rate>30.0</update_rate> <camera name="camera"> <horizontal_fov>1.3962634</horizontal_fov> <image> <width="360px",height="auto" />

配置imu插件:

<gazebo reference="imu"> <material>Gazebo/Orange</material> <gravity>true</gravity> <sensor name="imu_sensor" type="imu"> <always_on>true</always_on> <update_rate>100</update_rate> <visualize>true</visualize> <topic>__default_topic__</topic> <plugin filename="libgazebo_ros_imu_sensor.so" name="imu_plugin"> <topicName>imu</topicName> <bodyName>imu</bodyName> <updateRateHZ>100.0</updateRateHZ> <gaussianNoise>0.0</gaussianNoise> <xyzOffset>0 0 0</xyzOffset> <rpyOffset>0 0 0</rpyOffset> <frameName>imu_link</frameName> </plugin> <pose>0 0 0 0 0 0</pose> </sensor></gazebo>

5?在gazebo中顯示并演示傳感器效果

創建racebot_gazebo功能包,并創建如下文件夾:


在launch文件夾中創建racebot.launch文件:

<?xml version="1.0"?><launch> <!-- 設置launch文件的參數 --> <arg name="paused" default="false"/> <arg name="use_sim_time" default="true"/> <arg name="gui" default="true"/> <arg name="headless" default="false"/> <arg name="debug" default="false"/> <!--模型車的起點放置位置--> <arg name="x_pos" default="0"/> <arg name="y_pos" default="0"/> <arg name="z_pos" default="0"/> <arg name="R_pos" default="0"/> <arg name="P_pos" default="0"/> <arg name="Y_pos" default="0"/> <!--運行gazebo仿真環境--> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="debug" value="$(arg debug)" /> <arg name="gui" value="$(arg gui)" /> <arg name="paused" value="$(arg paused)"/> <arg name="use_sim_time" value="$(arg use_sim_time)"/> <arg name="headless" value="$(arg headless)"/> <arg name="world_name" value="$(find racebot_gazebo)/worlds/room_mini.world"/> <!-- .world文件的地址--> </include> <!-- 加載機器人模型描述參數 --> <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find racebot_description)/urdf/ackermann/racecar.xacro'"/> <!-- 在gazebo中加載機器人模型--> <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen" args="-urdf -model racebot -param robot_description -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -R $(arg R_pos) -P $(arg P_pos) -Y $(arg Y_pos)"/> <!-- <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen" args="-urdf -model tianracer -param robot_description -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos)"/> --> <!-- ros_control racecar launch file --> <!--Launch the simulation joystick control--><!-- <node pkg="tf2_ros" type="static_transform_publisher" name="static_transform_publisher" args="0 0 0 -1.57 0 -1.57 /real_sense /real_sense_depth" /> --></launch>

在worlds文件夾中,將之前用于mini小車仿真的room_mini.world文件放入,使得racebot載入有room_mini地圖的gazebo仿真環境中。

roslaunch racebot_gazebo racebot.launch



可以看到小車已經加載到gazebo環境中,然而此時無法控制小車運動,因為還未配置controllers,但是我們可以讀取到傳感器參數。

讀取imu參數:

rostopic echo /imu



讀取雷達數據:

打開rviz

rviz

將fixed_frame改為base_footprint, 點擊add-->by topic-->laserScan,此時在rviz中即可顯示雷達點云



單目攝像頭:

在rviz中add-->by topic-->/rrbot/camera1/image_raw/camera即可添加相機插件,并顯示圖像:



深度攝像頭:

深度攝像頭查看深度圖像與單目攝像頭同理add-->by topic-->realsense/depth/image_raw/camera




只是在添加pointcloud2時會出現問題,add-->by topic-->realsense/depth/points/pointcloud2,會發現彩色點云出現在小車正上方,原因是在kinect中圖像數據與點云數據使用了兩套坐標系統,且兩套坐標系統位姿并不一致。



解決方法有兩種:

1.可以在launch文件中加入坐標變換,即可解決這一現象。

<node pkg="tf2_ros" type="static_transform_publisher" name="static_transform_publisher" args="0 0 0 -1.57 0 -1.57 /support /support_depth" />

詳細參考奧特學園《kinect信息仿真以及顯示》https://sourl.cn/ziwDEU

2.第二種方法是在urdf中加入新的link,即使用點云數據的link,并通過joint做坐標變換來解決。

<link name="realsense_depth"/> <joint name="realsense_depth_joint" type="fixed"> <origin xyz="0 0 0" rpy="-1.5708 0 -1.5708"/> <parent link="real_sense"/> <child link="realsense_depth"/> </joint>

修改插件

<gazebo reference="real_sense"> <sensor type="depth" name="real_sense"> <always_on>true</always_on> <update_rate>20.0</update_rate> <camera> <horizontal_fov>${60.0*3.14/180.0}</horizontal_fov> <image> <format>R8G8B8</format> <width="360px",height="auto" />


6?小結

本節內容關于小車傳動的添加,以及配置了小車上面的一些插件,下一節內容,通過配置controller讓小車動起來。

參考資料:

1.古月老師的《ROS機器人開發實踐》

2.奧特學園《6.7.4 kinect信息仿真以及顯示》https://sourl.cn/ziwDEU

3.gazebo官網 http://gazebosim.org/tutorials/?tut=ros_urdf

pos機的操作步驟

步驟如下:

1、確認pos機有電,長按開關鍵打開pos機,如下圖所示:

2、輸入操作員號碼01按確認,再輸入操作員密碼0000再按確認,依次操作如下圖所滑埋示:

3、pos機就自動打開了。然空讓運后就可以刷卡,輸入金額,讓持卡人輸入密碼。出完兩張小票之后第一張給持卡人簽名,另一張自己收好,方便對賬。

擴展資料

POS機是通過讀卡器讀取銀行卡上的持卡人磁條信息,由POS操作人員輸入交斗梁易金額,持卡人輸入個人識別信息(即密碼),POS把這些信息通過銀聯中心,上送發卡銀行系統,完成聯機交易,給出成功與否的信息,并打印相應的票據。

POS的應用實現了信用卡、借記卡等銀行卡的聯機消費,保證了交易的安全、快捷和準確,避免了手工查詢黑名單和壓單等繁雜勞動,提高了工作效率。

收銀結賬的的步驟和要領?

1、拿到一個pos機呢首先要開機,按紅色取消鍵聽到第一聲響的時候松開手指等待聯機,聯機成功之后會提示您按任意鍵簽到,接著會提示您輸入操作員號碼,按確認鍵之后會提示您輸入操作員密碼,輸入成功后就會進入操作主界面,上面有消費、撤銷、退貨、預授權等提示?! ?/p>

2、由于它的待機時間是有限的,當出現銀聯這個界面的時候按功能鍵就會返回剛才的界面,然后輸入消費前面的數字1進入,接著會有兩個選項供您選擇,1、借記卡消費2、信用卡消費,下面我用農行的借記卡個大家操作,按它對應的數字1進入借記卡消費界面,提示您請刷卡,按照操作銀行卡磁條向下面對自己,將銀行卡從左到右輕輕勻速劃過,然后按確認鍵輸入金額,輸入之后按確認會提示您輸入聯機密碼,聯機密碼也就是您的銀行卡密碼,在輸入密碼之前和消費者之間雙方確認金額,輸入密碼,確認成功之后就會自動打印憑條,然后捏住憑條上方面向自己稍微傾斜撕下,然后在憑條下方持卡人簽名處簽上客戶姓名上交財務處,接著上面會有提示:按任意鍵繼續,那么點擊任意一個數字再次打印,這張憑條交由客戶自己保存?! ?/p>

3、如發現金額輸入錯誤,按功能鍵出現主界面,按數字2選擇撤銷,確認后會提示您輸入主管密碼,輸入成功之后提示您輸入原憑證號碼,憑證號在憑條中間位置,輸入憑證號,按確認會出現原銀行卡交易信息,再次按確認鍵,這兒輸入卡號和刷卡都可以,刷卡方式跟上面是一樣的,之后按確認鍵會提示您輸入銀行卡密碼,輸入之后按確認,會自動打印憑條,接下來的操作跟上面消費操作步驟一樣。這兒要提醒大家,撤銷操作只在消費當天有效,其他的一些操作由于用的不是很多這兒就不給大家多做演示,根據上面的提示操作就可以了。

以上就是關于pos機演示教程, 阿克曼結構移動機器人的gazebo仿真的知識,后面我們會繼續為大家整理關于pos機演示教程的知識,希望能夠幫助到大家!

轉發請帶上網址:http://www.tonybus.com/news/12477.html

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。