移動(dòng)pos機(jī)結(jié)構(gòu), 阿克曼結(jié)構(gòu)移動(dòng)機(jī)器人的gazebo仿真

 新聞資訊  |   2023-03-08 09:00  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于移動(dòng)pos機(jī)結(jié)構(gòu), 阿克曼結(jié)構(gòu)移動(dòng)機(jī)器人的gazebo仿真的知識(shí),也有很多人為大家解答關(guān)于移動(dòng)pos機(jī)結(jié)構(gòu)的問(wèn)題,今天pos機(jī)之家(www.afbey.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來(lái)看下吧!

本文目錄一覽:

1、移動(dòng)pos機(jī)結(jié)構(gòu)

2、移動(dòng)POS支付是什么意思?

移動(dòng)pos機(jī)結(jié)構(gòu)

第四章、用xacro優(yōu)化URDF并配置gazebo仿真插件

1?前言

上節(jié)用簡(jiǎn)易模型寫(xiě)了一個(gè)小車的URDF代碼,這一節(jié)將用xacro對(duì)其進(jìn)行優(yōu)化,這里我并不打算用宏對(duì)參數(shù)進(jìn)行封裝,因?yàn)槲覀€(gè)人覺(jué)得這樣看起來(lái)會(huì)比較直觀,方便讀者閱讀。

2?配置主xacro文件

新建racecar.xacro文件,將上一節(jié)racebot.urdf中的代碼復(fù)制過(guò)來(lái)并進(jìn)行修改,整體代碼如下:

<?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>

代碼起始和末尾添加了兩個(gè)文件,通過(guò)xacro封裝引用進(jìn)來(lái)。這兩個(gè)xacro文件是接下去要配置的傳動(dòng)文件macros.xacro以及gazebo插件racecar.gazebo。

3?添加傳動(dòng)transmission

創(chuàng)建macro.xacro文件,該代碼給前后輪以及前輪擺轉(zhuǎn)配置了傳動(dòng)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>

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

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

4?配置gazebo插件

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

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

配置各個(gè)link的顏色:

由于車輪實(shí)際上會(huì)接觸地面,因此會(huì)與地面發(fā)生物理相互作用,將各個(gè)link添加部件材料的附加信息,并且定義各個(gè)link的顏色信息。參考gazebo官網(wǎng) :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并沒(méi)阿克曼車型的插件,要鏈接gazebo與ros,我們先添加ros_control插件,它讀取所有transmission標(biāo)記,以及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>

注意命名空間要設(shè)置為/racebot。

配置激光雷達(dá)插件:

<!-- 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>

配置深度相機(jī)插件:

由于配置realsense插件過(guò)于復(fù)雜,因此這里用kinect插件來(lái)代替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" />

配置單目相機(jī)插件:

<!-- 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中顯示并演示傳感器效果

創(chuàng)建racebot_gazebo功能包,并創(chuàng)建如下文件夾:


在launch文件夾中創(chuàng)建racebot.launch文件:

<?xml version="1.0"?><launch> <!-- 設(shè)置launch文件的參數(shù) --> <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"/> <!--模型車的起點(diǎn)放置位置--> <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"/> <!--運(yùn)行g(shù)azebo仿真環(huán)境--> <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> <!-- 加載機(jī)器人模型描述參數(shù) --> <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find racebot_description)/urdf/ackermann/racecar.xacro'"/> <!-- 在gazebo中加載機(jī)器人模型--> <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仿真環(huán)境中。

roslaunch racebot_gazebo racebot.launch



可以看到小車已經(jīng)加載到gazebo環(huán)境中,然而此時(shí)無(wú)法控制小車運(yùn)動(dòng),因?yàn)檫€未配置controllers,但是我們可以讀取到傳感器參數(shù)。

讀取imu參數(shù):

rostopic echo /imu



讀取雷達(dá)數(shù)據(jù):

打開(kāi)rviz

rviz

將fixed_frame改為base_footprint, 點(diǎn)擊add-->by topic-->laserScan,此時(shí)在rviz中即可顯示雷達(dá)點(diǎn)云



單目攝像頭:

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



深度攝像頭:

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




只是在添加pointcloud2時(shí)會(huì)出現(xiàn)問(wèn)題,add-->by topic-->realsense/depth/points/pointcloud2,會(huì)發(fā)現(xiàn)彩色點(diǎn)云出現(xiàn)在小車正上方,原因是在kinect中圖像數(shù)據(jù)與點(diǎn)云數(shù)據(jù)使用了兩套坐標(biāo)系統(tǒng),且兩套坐標(biāo)系統(tǒng)位姿并不一致。



解決方法有兩種:

1.可以在launch文件中加入坐標(biāo)變換,即可解決這一現(xiàn)象。

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

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

2.第二種方法是在urdf中加入新的link,即使用點(diǎn)云數(shù)據(jù)的link,并通過(guò)joint做坐標(biāo)變換來(lái)解決。

<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?小結(jié)

本節(jié)內(nèi)容關(guān)于小車傳動(dòng)的添加,以及配置了小車上面的一些插件,下一節(jié)內(nèi)容,通過(guò)配置controller讓小車動(dòng)起來(lái)。

參考資料:

1.古月老師的《ROS機(jī)器人開(kāi)發(fā)實(shí)踐》

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

3.gazebo官網(wǎng) http://gazebosim.org/tutorials/?tut=ros_urdf

移動(dòng)POS支付是什么意思?

  一、貨到付款,移動(dòng)POS機(jī)支付的意思就是等貨到了之后,快遞會(huì)拿出移動(dòng)POS機(jī)出來(lái),讓收貨方刷卡支付,快遞會(huì)給發(fā)票的。   二、貨到付款,在電子商務(wù)(網(wǎng)上購(gòu)物)中指的是由快遞公司代收買家貨款,貨先送到客戶手上,客戶驗(yàn)貨之后再客戶把錢給送貨員,也就是我們常說(shuō)的"一手交錢一手交貨",之后貨款再轉(zhuǎn)到賣家賬戶里去。   三、貨到付款的優(yōu)勢(shì):   1、對(duì)賣家和買家來(lái)說(shuō)風(fēng)險(xiǎn)較高,賣家來(lái)說(shuō)的風(fēng)險(xiǎn),就是買家惡意拍下,再惡意拒收。對(duì)于買家來(lái)說(shuō)的風(fēng)險(xiǎn)就是付款后售后就結(jié)束了。唯一的優(yōu)點(diǎn)就是見(jiàn)貨后表面情況滿意了就付款。   2、貨到付款增加了網(wǎng)購(gòu)者的信任度,便于發(fā)展誠(chéng)信的網(wǎng)上購(gòu)物,有利于銷量上升。   3、消費(fèi)者和快遞員見(jiàn)貨后錢貨兩清,避免了消費(fèi)者和銷售者之間的惡意糾紛。但增加了售后糾紛,電視臺(tái)上已經(jīng)爆光過(guò)多次。   4、由于是快遞員收款,快遞公司為了自己的利益,避免了野蠻裝卸、野蠻運(yùn)輸,減少的貨物在運(yùn)輸途中的損壞。   5、增加了快遞公司業(yè)務(wù),刺激了經(jīng)濟(jì)發(fā)展。

以上就是關(guān)于移動(dòng)pos機(jī)結(jié)構(gòu), 阿克曼結(jié)構(gòu)移動(dòng)機(jī)器人的gazebo仿真的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于移動(dòng)pos機(jī)結(jié)構(gòu)的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)發(fā)請(qǐng)帶上網(wǎng)址:http://www.afbey.com/news/6396.html

你可能會(huì)喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。